test(transport): harden T5 native-source coverage — no-change zero-audit + IsInherited/LockedInDerived fidelity

Follow-up from the T5 code review: assert an idempotent Overwrite emits zero
TemplateNativeAlarmSource* audit rows, and round-trip IsInherited/LockedInDerived
as true through both the serializer and the importer BuildTemplate path.

Claude-Session: https://claude.ai/code/session_01MtdgwpEeCUn6cUA5f1LMPj
This commit is contained in:
Joseph Doherty
2026-07-09 17:05:02 -04:00
parent e4136cb920
commit 7b6d6bb805
2 changed files with 43 additions and 5 deletions
@@ -215,7 +215,7 @@ public sealed class EntitySerializerTests
SourceReference = "ns=3;s=Boiler.Alarm",
ConditionFilter = "severity>500",
IsLocked = true,
IsInherited = false,
IsInherited = true,
LockedInDerived = true,
});
@@ -230,6 +230,7 @@ public sealed class EntitySerializerTests
Assert.Equal("ns=3;s=Boiler.Alarm", dtoSrc.SourceReference);
Assert.Equal("severity>500", dtoSrc.ConditionFilter);
Assert.True(dtoSrc.IsLocked);
Assert.True(dtoSrc.IsInherited);
Assert.True(dtoSrc.LockedInDerived);
var rtSrc = Assert.Single(Assert.Single(sut.FromBundleContent(dto).Templates).NativeAlarmSources);
@@ -239,6 +240,7 @@ public sealed class EntitySerializerTests
Assert.Equal("ns=3;s=Boiler.Alarm", rtSrc.SourceReference);
Assert.Equal("severity>500", rtSrc.ConditionFilter);
Assert.True(rtSrc.IsLocked);
Assert.True(rtSrc.IsInherited);
Assert.True(rtSrc.LockedInDerived);
}