Files
ScadaBridge/tests/ZB.MOM.WW.ScadaBridge.Commons.Tests/Audit/ScriptTraceEnumTests.cs
T
Joseph Doherty 352e0bfa37 feat(audit): ScriptTrace channel + RouteCall/ScriptRun/AttributeWrite/AttributeWait kinds
Flow Debugger (design 2026-09-05 §5.1): trace steps are audit rows. New
AuditChannel.ScriptTrace appended after Cluster and four kinds appended after
ManualFailover so stored ordinals never move; lock-in tests + alog.md §4 updated.

Claude-Session: https://claude.ai/code/session_01GSLkkHKz9JrAtmJjmQK3cP
2026-09-05 23:41:50 -04:00

32 lines
1.2 KiB
C#

using ZB.MOM.WW.ScadaBridge.Commons.Types.Audit;
using ZB.MOM.WW.ScadaBridge.Commons.Types.Enums;
namespace ZB.MOM.WW.ScadaBridge.Commons.Tests.Audit;
/// <summary>
/// Flow Debugger (design 2026-09-05): the <c>ScriptTrace</c> channel and its four kinds must
/// fit the central <c>AuditLog.Category</c>/<c>Kind</c> columns and never move existing ordinals.
/// </summary>
public class ScriptTraceEnumTests
{
[Theory]
[InlineData(AuditKind.RouteCall)]
[InlineData(AuditKind.ScriptRun)]
[InlineData(AuditKind.AttributeWrite)]
[InlineData(AuditKind.AttributeWait)]
public void ScriptTraceKinds_FitTheCentralColumns(AuditKind kind)
{
// AuditLog.Category / Kind are nvarchar(32) (AuditLogEntityTypeConfiguration).
Assert.True(kind.ToString().Length <= 32);
Assert.True(AuditChannel.ScriptTrace.ToString().Length <= 32);
Assert.Equal($"ScriptTrace.{kind}", AuditFieldBuilders.BuildAction(AuditChannel.ScriptTrace, kind));
}
[Fact]
public void ScriptTrace_IsAppendedAfterCluster_SoExistingOrdinalsAreStable()
{
Assert.True((int)AuditChannel.ScriptTrace > (int)AuditChannel.Cluster);
Assert.True((int)AuditKind.RouteCall > (int)AuditKind.ManualFailover);
}
}