using ZB.MOM.WW.ScadaBridge.Commons.Types.Audit; using ZB.MOM.WW.ScadaBridge.Commons.Types.Enums; namespace ZB.MOM.WW.ScadaBridge.Commons.Tests.Audit; /// /// Flow Debugger (design 2026-09-05): the ScriptTrace channel and its four kinds must /// fit the central AuditLog.Category/Kind columns and never move existing ordinals. /// public class ScriptTraceEnumTests { /// Verifies that each script trace kind fits the central audit columns. /// The script trace audit kind under test. [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)); } /// Verifies that the script trace values are appended after the cluster values so existing ordinals stay stable. [Fact] public void ScriptTrace_IsAppendedAfterCluster_SoExistingOrdinalsAreStable() { Assert.True((int)AuditChannel.ScriptTrace > (int)AuditChannel.Cluster); Assert.True((int)AuditKind.RouteCall > (int)AuditKind.ManualFailover); } }