alarms: compose subtag reference from object's real Galaxy area for exact alarmmgr parity
This commit is contained in:
@@ -37,6 +37,28 @@ public sealed class SubtagAlarmStateMachineTests
|
||||
Assert.Equal("Area", e.Record.Group);
|
||||
}
|
||||
|
||||
[Fact]
|
||||
public void ActiveFalseToTrue_AlarmMgrShape_EmitsNativeProviderGroupTagName()
|
||||
{
|
||||
// Reference parity: a subtag target composed from the object's real Galaxy
|
||||
// area must round-trip to exactly the native alarmmgr (wnwrap) record fields:
|
||||
// Provider "Galaxy", Group = the real area "TestArea", and the object-rooted
|
||||
// TagName "TestMachine_001.TestAlarm001".
|
||||
var target = new AlarmSubtagTarget
|
||||
{
|
||||
AlarmFullReference = "Galaxy!TestArea.TestMachine_001.TestAlarm001",
|
||||
SourceObjectReference = "TestMachine_001",
|
||||
ActiveSubtag = "TestMachine_001.TestAlarm001.InAlarm",
|
||||
};
|
||||
var sm = new SubtagAlarmStateMachine(new[] { target });
|
||||
var ts = new DateTime(2026, 6, 13, 9, 0, 0, DateTimeKind.Utc);
|
||||
var events = sm.Apply("TestMachine_001.TestAlarm001.InAlarm", true, ts);
|
||||
var e = Assert.Single(events);
|
||||
Assert.Equal("Galaxy", e.Record.ProviderName);
|
||||
Assert.Equal("TestArea", e.Record.Group);
|
||||
Assert.Equal("TestMachine_001.TestAlarm001", e.Record.TagName);
|
||||
}
|
||||
|
||||
[Fact]
|
||||
public void ActiveFalseToTrue_NoProviderBang_UsesWholeReferenceAsTagName()
|
||||
{
|
||||
|
||||
Reference in New Issue
Block a user