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"); }
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); }
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); }