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);
    }
Esempio n. 2
0
        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);
        }
Esempio n. 3
0
    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);
    }