public void CanPatch() { var original = new AddressEntity { ID = 1, City = "Redmond", State = "WA", StreetAddress = "21110 NE 44th St", ZipCode = 98074 }; dynamic delta = new Delta<AddressEntity>(); delta.City = "Sammamish"; delta.StreetAddress = "23213 NE 15th Ct"; delta.Patch(original); // unchanged Assert.Equal(1, original.ID); Assert.Equal(98074, original.ZipCode); Assert.Equal("WA", original.State); // changed Assert.Equal("Sammamish", original.City); Assert.Equal("23213 NE 15th Ct", original.StreetAddress); }
public void CanCopyUnchangedValues() { var original = new AddressEntity { ID = 1, City = "Redmond", State = "WA", StreetAddress = "21110 NE 44th St", ZipCode = 98074 }; dynamic delta = new Delta<AddressEntity>(); delta.City = "Sammamish"; delta.StreetAddress = "23213 NE 15th Ct"; var idelta = delta as IDelta<AddressEntity>; idelta.CopyUnchangedValues(original); // unchanged values have been reset to defaults Assert.Equal(0, original.ID); Assert.Equal(0, original.ZipCode); Assert.Equal(null, original.State); // changed values have been left unmodified Assert.Equal("Redmond", original.City); Assert.Equal("21110 NE 44th St", original.StreetAddress); }
public void CanGetChangedPropertyNames() { var original = new AddressEntity { ID = 1, City = "Redmond", State = "NY", StreetAddress = "21110 NE 44th St", ZipCode = 98074 }; dynamic delta = new Delta<AddressEntity>(); var idelta = delta as IDelta; // modify in the way we expect the formatter too. idelta.TrySetPropertyValue("City", "Sammamish"); Assert.Equal(1, idelta.GetChangedPropertyNames().Count()); Assert.Equal("City", idelta.GetChangedPropertyNames().Single()); // read the property back object city = null; Assert.True(idelta.TryGetPropertyValue("City", out city)); Assert.Equal("Sammamish", city); // modify the way people will through custom code delta.StreetAddress = "23213 NE 15th Ct"; var mods = idelta.GetChangedPropertyNames().ToArray(); Assert.Equal(2, mods.Count()); Assert.True(mods.Contains("StreetAddress")); Assert.True(mods.Contains("City")); Assert.Equal("23213 NE 15th Ct", delta.StreetAddress); }