public void TryReplace_RemovesExistingValue_BeforeAddingNewValue() { // Arrange var adapter = new DynamicObjectAdapter(); dynamic target = new WriteOnceDynamicTestObject(); target.NewProperty = new object(); var segment = "NewProperty"; var resolver = new DefaultContractResolver(); // Act var status = adapter.TryReplace(target, segment, resolver, "new", out string errorMessage); // Assert Assert.True(status); Assert.Null(errorMessage); Assert.Equal("new", target.NewProperty); }
public void TryReplace_RemovesExistingValue_BeforeAddingNewValue() { // Arrange var adapter = new DynamicObjectAdapter(); dynamic target = new WriteOnceDynamicTestObject(); target.NewProperty = new object(); var segment = "NewProperty"; var options = new JsonSerializerOptions(); // Act var status = adapter.TryReplace(target, typeof(WriteOnceDynamicTestObject), segment, options, "new", out string errorMessage); // Assert Assert.True(status); Assert.Null(errorMessage); Assert.Equal("new", target.NewProperty); }
public void TryReplace_UsesCustomConverter() { // Arrange var adapter = new DynamicObjectAdapter(); dynamic target = new WriteOnceDynamicTestObject(); target.NewProperty = new Rectangle(); var segment = "NewProperty"; var resolver = new RectangleContractResolver(); // Act var status = adapter.TryReplace(target, segment, resolver, "new", out string errorMessage); // Assert Assert.True(status); Assert.Null(errorMessage); Assert.True(target.NewProperty is Rectangle); var rect = (Rectangle)target.NewProperty; Assert.Equal("new", rect.RectangleProperty); }