public void Child_Level_Changes_Are_Applied_Correctly() { var model = new _ComplexModel() { Id = 1, FirstName = "John", LastName = "Smith", Child = new _SimpleModel() { Id = 2, Value = "Original", Count = 3 } }; var json = JObject.Parse("{ 'LastName': 'Doe', 'Child': { 'Value': 'Updated', 'Count': 5 } }"); var delta = new TypedGraphDelta(typeof(_ComplexModel), json); delta.Patch(model); Assert.Equal(1, model.Id); Assert.Equal("John", model.FirstName); Assert.Equal("Doe", model.LastName); Assert.NotNull(model.Child); Assert.Equal(2, model.Child.Id); Assert.Equal("Updated", model.Child.Value); Assert.Equal(5, model.Child.Count); }
public void Child_Models_Are_Unset_Correctly() { var model = new _ComplexModel() { Child = new _SimpleModel() }; var json = JObject.Parse("{ 'Child': null }"); var delta = new TypedGraphDelta(typeof(_ComplexModel), json); delta.Patch(model); Assert.Null(model.Child); }
public void Child_Models_Are_Created_If_Null() { var model = new _ComplexModel() { Id = 1, FirstName = "John", LastName = "Smith" }; var json = JObject.Parse("{ 'LastName': 'Doe', 'Child': { 'Value': 'Updated', 'Count': 5 } }"); var delta = new TypedGraphDelta(typeof(_ComplexModel), json); delta.Patch(model); Assert.Equal(1, model.Id); Assert.Equal("John", model.FirstName); Assert.Equal("Doe", model.LastName); Assert.NotNull(model.Child); Assert.Equal(0, model.Child.Id); Assert.Equal("Updated", model.Child.Value); Assert.Equal(5, model.Child.Count); }