feat(commons): carry DataSourceReferenceOverride on ConnectionBinding (additive)

This commit is contained in:
Joseph Doherty
2026-05-28 11:53:24 -04:00
parent 7fc1f752f8
commit aff1323896
3 changed files with 45 additions and 6 deletions
@@ -51,4 +51,32 @@ public class ConnectionBindingSerializationTests
// ConnectionBinding is a record: each element compares by value.
Assert.Equal(original.Bindings, deserialized.Bindings);
}
[Fact]
public void Roundtrip_preserves_override_when_set()
{
var original = new ConnectionBinding("Speed", 7, "ns=2;s=Pump1.Speed");
var json = JsonSerializer.Serialize(original);
var roundtripped = JsonSerializer.Deserialize<ConnectionBinding>(json);
Assert.NotNull(roundtripped);
Assert.Equal(original, roundtripped);
Assert.Equal("ns=2;s=Pump1.Speed", roundtripped!.DataSourceReferenceOverride);
}
[Fact]
public void Roundtrip_defaults_override_to_null_when_absent()
{
// Older site builds will not emit the new field — deserialization
// must produce a null override and equal an explicit-null instance.
const string legacyJson = """{"AttributeName":"Speed","DataConnectionId":7}""";
var deserialized = JsonSerializer.Deserialize<ConnectionBinding>(legacyJson);
Assert.NotNull(deserialized);
Assert.Equal("Speed", deserialized!.AttributeName);
Assert.Equal(7, deserialized.DataConnectionId);
Assert.Null(deserialized.DataSourceReferenceOverride);
}
}