diff --git a/tests/ZB.MOM.WW.ScadaBridge.TemplateEngine.Tests/Flattening/ConnectionBindingOverrideTests.cs b/tests/ZB.MOM.WW.ScadaBridge.TemplateEngine.Tests/Flattening/ConnectionBindingOverrideTests.cs index cfbe30f6..f3db7c93 100644 --- a/tests/ZB.MOM.WW.ScadaBridge.TemplateEngine.Tests/Flattening/ConnectionBindingOverrideTests.cs +++ b/tests/ZB.MOM.WW.ScadaBridge.TemplateEngine.Tests/Flattening/ConnectionBindingOverrideTests.cs @@ -80,4 +80,40 @@ public class ConnectionBindingOverrideTests var attr = result.Value.Attributes.Single(a => a.CanonicalName == "Speed"); Assert.Equal("TemplateDefault", attr.DataSourceReference); } + + [Fact] + public void Override_change_changes_revision_hash() + { + var template = CreateTemplateWithDataSourcedAttribute("Speed", dataSourceReference: "TemplateDefault"); + + var instance1 = CreateInstance(); + instance1.ConnectionBindings.Add(new InstanceConnectionBinding("Speed") + { + DataConnectionId = 1, + DataSourceReferenceOverride = "ns=2;s=Pump1.Speed" + }); + + var instance2 = CreateInstance(); + instance2.ConnectionBindings.Add(new InstanceConnectionBinding("Speed") + { + DataConnectionId = 1, + DataSourceReferenceOverride = "ns=2;s=Pump2.Speed" + }); + + var connections = SingleConnection(id: 1); + var compositionMap = new Dictionary>(); + var composedChains = new Dictionary>(); + + var result1 = _sut.Flatten(instance1, [template], compositionMap, composedChains, connections); + var result2 = _sut.Flatten(instance2, [template], compositionMap, composedChains, connections); + + Assert.True(result1.IsSuccess); + Assert.True(result2.IsSuccess); + + var hasher = new RevisionHashService(); + var hash1 = hasher.ComputeHash(result1.Value); + var hash2 = hasher.ComputeHash(result2.Value); + + Assert.NotEqual(hash1, hash2); + } }