feat(templateengine): flatten native alarm sources (inherit/compose/override)
This commit is contained in:
@@ -666,4 +666,38 @@ public class FlatteningServiceTests
|
||||
// Parent module of a depth-2 script is the enclosing Pump module.
|
||||
Assert.Equal("MainPump", depth2.Scope.ParentPath);
|
||||
}
|
||||
|
||||
[Fact]
|
||||
public void Flatten_ResolvesNativeAlarmSources_FromTemplate()
|
||||
{
|
||||
var template = CreateTemplate(1, "Base");
|
||||
template.NativeAlarmSources.Add(new TemplateNativeAlarmSource("Pressure")
|
||||
{ ConnectionName = "Opc", SourceReference = "ns=2;s=P1" });
|
||||
var result = _sut.Flatten(CreateInstance(), [template],
|
||||
new Dictionary<int, IReadOnlyList<TemplateComposition>>(),
|
||||
new Dictionary<int, IReadOnlyList<Template>>(),
|
||||
new Dictionary<int, DataConnection>());
|
||||
Assert.True(result.IsSuccess);
|
||||
Assert.Single(result.Value.NativeAlarmSources);
|
||||
Assert.Equal("Pressure", result.Value.NativeAlarmSources[0].CanonicalName);
|
||||
Assert.Equal("ns=2;s=P1", result.Value.NativeAlarmSources[0].SourceReference);
|
||||
}
|
||||
|
||||
[Fact]
|
||||
public void Flatten_InstanceOverride_ReplacesNativeAlarmSourceReference()
|
||||
{
|
||||
var template = CreateTemplate(1, "Base");
|
||||
template.NativeAlarmSources.Add(new TemplateNativeAlarmSource("Pressure")
|
||||
{ ConnectionName = "Opc", SourceReference = "ns=2;s=DEFAULT" });
|
||||
var instance = CreateInstance();
|
||||
instance.NativeAlarmSourceOverrides.Add(new InstanceNativeAlarmSourceOverride("Pressure")
|
||||
{ SourceReferenceOverride = "ns=2;s=Tank07" });
|
||||
var result = _sut.Flatten(instance, [template],
|
||||
new Dictionary<int, IReadOnlyList<TemplateComposition>>(),
|
||||
new Dictionary<int, IReadOnlyList<Template>>(),
|
||||
new Dictionary<int, DataConnection>());
|
||||
Assert.True(result.IsSuccess);
|
||||
Assert.Equal("ns=2;s=Tank07", result.Value.NativeAlarmSources[0].SourceReference);
|
||||
Assert.Equal("Override", result.Value.NativeAlarmSources[0].Source);
|
||||
}
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user