public void PatchApplyingMappingFunction() { DeltaObjectMappingConfig <TestObject, TestObject> .GlobalConfig() .Map(p => p.DateTime1, t => t.DateTime1, (value) => value.AddDays(1)) .Map(p => p.Int1, t => t.Int1, (value) => value + 2); var jsonString = "{ int1: 1, string1: 'val1', dateTime1: '2018-12-04' }"; var testObject = new TestObject(); var targetObject = new TestObject(); var delta = JsonConvert.DeserializeObject <DeltaFor <TestObject> >(jsonString); delta.Patch(targetObject); targetObject.Int1.Should().Be(3); targetObject.String1.Should().Be("val1"); targetObject.DateTime1.Should().Be(new DateTime(2018, 12, 5)); }
public void PatchIgnoringNonMappedProperties() { DeltaObjectMappingConfig <TestObject, TestObject> .GlobalConfig() .Map(p => p.DateTime1, t => t.DateTime1) .Map(p => p.Int1, t => t.Int1) .IgnoreNonMapped(); var jsonString = "{ int1: 1, string1: 'val1', dateTime1: '2018-12-04' }"; var testObject = new TestObject(); var targetObject = new TestObject(); var delta = JsonConvert.DeserializeObject <DeltaFor <TestObject> >(jsonString); delta.Patch(targetObject); targetObject.Int1.Should().Be(1); targetObject.String1.Should().Be(default(string)); targetObject.DateTime1.Should().Be(new DateTime(2018, 12, 4)); }
public void PatchWithMappings() { DeltaObjectMappingConfig <TestObject, TestObject2> .GlobalConfig() .Map(p => p.Int1, t => t.Int2) .Map(p => p.String1, t => t.String2) .Map(p => p.Bool1, t => t.Bool3); var jsonString = "{ int1: 1, string1: 'val1', bool1: true }"; var testObject = new TestObject(); var targetObject = new TestObject2(); var delta = JsonConvert.DeserializeObject <DeltaFor <TestObject> >(jsonString); delta.Patch(targetObject); targetObject.Int2.Should().Be(1); targetObject.String2.Should().Be("val1"); targetObject.Bool3.Should().Be(true); }
public void PatchIgnoringProperties() { DeltaObjectMappingConfig <TestObject, TestObject2> .GlobalConfig() .Map(p => p.String1, t => t.String2) .Ignore(p => p.Int1) .Ignore(p => p.Bool1) .Ignore(p => p.DateTime1); var jsonString = "{ int1: 1, string1: 'val1', dateTime1: '2018-12-04' }"; var testObject = new TestObject(); var targetObject = new TestObject2(); var delta = JsonConvert.DeserializeObject <DeltaFor <TestObject> >(jsonString); delta.Patch(targetObject); targetObject.Int1.Should().Be(default(int)); targetObject.String2.Should().Be("val1"); targetObject.DateTime1.Should().Be(default(DateTime)); }