test(#53): follow inline→Commons dedup — relocate OpcUa/MxGateway literal coverage to AlarmCapableProtocolsTests; pin TemplateEdit delegation
This commit is contained in:
+5
-4
@@ -39,11 +39,12 @@ public class TemplateNativeAlarmSourceEditorTests
|
||||
public void NativeAlarmsForm_HasConnectionSourceFilterAndLockFields()
|
||||
{
|
||||
var markup = TemplateEditMarkup;
|
||||
// Connection dropdown filtered to alarm-capable protocols.
|
||||
// Connection dropdown filtered to alarm-capable protocols via the
|
||||
// single-source-of-truth Commons helper. The OpcUa/MxGateway literal set
|
||||
// now lives in AlarmCapableProtocols (Commons) — pinned by
|
||||
// AlarmCapableProtocolsTests — so this page only needs to delegate to it.
|
||||
Assert.Contains("_alarmCapableConnections", markup);
|
||||
Assert.Contains("IsAlarmCapable", markup);
|
||||
Assert.Contains("OpcUa", markup);
|
||||
Assert.Contains("MxGateway", markup);
|
||||
Assert.Contains("AlarmCapableProtocols.IsAlarmCapable", markup);
|
||||
// The authoring form fields.
|
||||
Assert.Contains("@bind=\"_nasName\"", markup);
|
||||
Assert.Contains("@bind=\"_nasConnection\"", markup);
|
||||
|
||||
+36
@@ -0,0 +1,36 @@
|
||||
using ZB.MOM.WW.ScadaBridge.Commons.Interfaces.Protocol;
|
||||
|
||||
namespace ZB.MOM.WW.ScadaBridge.Commons.Tests.Interfaces.Protocol;
|
||||
|
||||
/// <summary>
|
||||
/// Single-source-of-truth coverage for <see cref="AlarmCapableProtocols.IsAlarmCapable"/>.
|
||||
/// The OpcUa/MxGateway literal set previously lived inline in the Central UI
|
||||
/// (TemplateEdit / InstanceConfigure); #53 collapsed those copies into this helper,
|
||||
/// so the literal set is pinned here rather than against page markup. Keep this in
|
||||
/// sync with the alarm-subscribable adapters registered in DataConnectionFactory.
|
||||
/// </summary>
|
||||
public class AlarmCapableProtocolsTests
|
||||
{
|
||||
[Theory]
|
||||
[InlineData("OpcUa")]
|
||||
[InlineData("opcua")] // case-insensitive — matches DataConnectionFactory's OrdinalIgnoreCase key lookup
|
||||
[InlineData("OPCUA")]
|
||||
[InlineData("MxGateway")]
|
||||
[InlineData("mxgateway")]
|
||||
public void IsAlarmCapable_True_ForAlarmSubscribableProtocols(string protocol)
|
||||
{
|
||||
Assert.True(AlarmCapableProtocols.IsAlarmCapable(protocol));
|
||||
}
|
||||
|
||||
[Theory]
|
||||
[InlineData(null)]
|
||||
[InlineData("")]
|
||||
[InlineData(" ")]
|
||||
[InlineData("ModbusTcp")]
|
||||
[InlineData("Custom")]
|
||||
[InlineData("Opc")] // partial / prefix must not match
|
||||
public void IsAlarmCapable_False_ForNonAlarmCapableOrBlank(string? protocol)
|
||||
{
|
||||
Assert.False(AlarmCapableProtocols.IsAlarmCapable(protocol));
|
||||
}
|
||||
}
|
||||
Reference in New Issue
Block a user