feat(commons): carry DataSourceReferenceOverride on ConnectionBinding (additive)
This commit is contained in:
+28
@@ -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);
|
||||
}
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user