Example #1
0
        public void TryReplace_OverwritesExistingValue()
        {
            // Arrange
            var adapter          = new PocoAdapter();
            var contractResolver = new DefaultContractResolver();
            var model            = new Customer
            {
                Name = "Joana"
            };

            // Act
            var replaceStatus = adapter.TryReplace(model, "Name", contractResolver, "John", out var errorMessage);

            // Assert
            Assert.Equal("John", model.Name);
            Assert.True(replaceStatus);
            Assert.True(string.IsNullOrEmpty(errorMessage), "Expected no error message");
        }
Example #2
0
        public void TryReplace_ThrowsJsonPatchException_IfPropertyDoesNotExist()
        {
            // Arrange
            var adapter          = new PocoAdapter();
            var contractResolver = new DefaultContractResolver();
            var model            = new Customer
            {
                Name = "Joana"
            };
            var expectedErrorMessage = "The target location specified by path segment 'LastName' was not found.";

            // Act
            var replaceStatus = adapter.TryReplace(model, "LastName", contractResolver, "Smith", out var errorMessage);

            // Assert
            Assert.Equal("Joana", model.Name);
            Assert.False(replaceStatus);
            Assert.Equal(expectedErrorMessage, errorMessage);
        }
Example #3
0
        public void TryReplace_ThrowsJsonPatchException_IfNewValueIsInvalidType()
        {
            // Arrange
            var adapter          = new PocoAdapter();
            var contractResolver = new DefaultContractResolver();
            var model            = new Customer
            {
                Age = 25
            };

            var expectedErrorMessage = "The value 'TwentySix' is invalid for target location.";

            // Act
            var replaceStatus = adapter.TryReplace(model, "Age", contractResolver, "TwentySix", out var errorMessage);

            // Assert
            Assert.Equal(25, model.Age);
            Assert.False(replaceStatus);
            Assert.Equal(expectedErrorMessage, errorMessage);
        }