From 344bc9df8a7bde56c2916544a8b90a2196084bf3 Mon Sep 17 00:00:00 2001 From: Joseph Doherty Date: Tue, 10 Nov 2026 11:02:27 -0500 Subject: [PATCH] test(opcua): assert alarm UA type across supported adapters --- .../NodeManagerAlarmSourceFieldsTests.cs | 3 ++- .../SdkAddressSpaceSinkTests.cs | 8 +++++--- 2 files changed, 7 insertions(+), 4 deletions(-) diff --git a/tests/Server/ZB.MOM.WW.OtOpcUa.OpcUaServer.Tests/NodeManagerAlarmSourceFieldsTests.cs b/tests/Server/ZB.MOM.WW.OtOpcUa.OpcUaServer.Tests/NodeManagerAlarmSourceFieldsTests.cs index 8373bd8f..b3cee68e 100644 --- a/tests/Server/ZB.MOM.WW.OtOpcUa.OpcUaServer.Tests/NodeManagerAlarmSourceFieldsTests.cs +++ b/tests/Server/ZB.MOM.WW.OtOpcUa.OpcUaServer.Tests/NodeManagerAlarmSourceFieldsTests.cs @@ -120,7 +120,8 @@ public sealed class NodeManagerAlarmSourceFieldsTests : IDisposable var condition = nm.TryGetAlarmCondition("alm-x", AddressSpaceRealm.Uns); condition.ShouldNotBeNull(); - condition.GetType().ShouldBe(typeof(AlarmConditionState)); // base-type fallback + condition.ShouldBeAssignableTo(); + condition.TypeDefinitionId.ShouldBe(ObjectTypeIds.AlarmConditionType); condition.EventType!.Value.ShouldBe(ObjectTypeIds.AlarmConditionType); } diff --git a/tests/Server/ZB.MOM.WW.OtOpcUa.OpcUaServer.Tests/SdkAddressSpaceSinkTests.cs b/tests/Server/ZB.MOM.WW.OtOpcUa.OpcUaServer.Tests/SdkAddressSpaceSinkTests.cs index 5e24fc53..228cc4da 100644 --- a/tests/Server/ZB.MOM.WW.OtOpcUa.OpcUaServer.Tests/SdkAddressSpaceSinkTests.cs +++ b/tests/Server/ZB.MOM.WW.OtOpcUa.OpcUaServer.Tests/SdkAddressSpaceSinkTests.cs @@ -369,8 +369,9 @@ public sealed class SdkAddressSpaceSinkTests : IDisposable var condition = nm.TryGetAlarmCondition("alm-x"); condition.ShouldNotBeNull(); - // Base type exactly — NOT a LimitAlarmState (no limits to populate for a script alarm). - condition.GetType().ShouldBe(typeof(AlarmConditionState)); + // The supported method adapter preserves the base UA type (there are no script limits). + condition.ShouldBeAssignableTo(); + condition.TypeDefinitionId.ShouldBe(ObjectTypeIds.AlarmConditionType); await host.DisposeAsync(); } @@ -437,7 +438,8 @@ public sealed class SdkAddressSpaceSinkTests : IDisposable var condition = nm.TryGetAlarmCondition("alm-base"); condition.ShouldNotBeNull(); - condition.GetType().ShouldBe(typeof(AlarmConditionState)); // base type + condition.ShouldBeAssignableTo(); + condition.TypeDefinitionId.ShouldBe(ObjectTypeIds.AlarmConditionType); // Simulate a build where the optional Confirm sub-state machine was NOT created. condition.ConfirmedState = null;