public void AbleToDeleteStringListItemThenRevertViaPatch() { var testObj = GetSimpleTestObject(); PopulateStringListOnTestClass(testObj); var updatedTestObj = GetSimpleTestObject(); PopulateStringListOnTestClass(updatedTestObj); updatedTestObj.ListOfStringProperty.Remove("list"); CollectionAssert.AreNotEqual(testObj.ListOfStringProperty, updatedTestObj.ListOfStringProperty); var diff = ObjectDiffPatch.GenerateDiff(testObj, updatedTestObj); var revertPatch = JsonConvert.SerializeObject(diff.OldValues); var revertedObj = ObjectDiffPatch.PatchObject(updatedTestObj, revertPatch); CollectionAssert.AreEqual(testObj.ListOfStringProperty, revertedObj.ListOfStringProperty); }
public void AbleToEditObjectInListThenRevertViaPatch() { var testObj = GetSimpleTestObject(); PopulateObjectListOnTestClass(testObj); var updatedTestObj = GetSimpleTestObject(); PopulateObjectListOnTestClass(updatedTestObj); updatedTestObj.ListOfObjectProperty[2].IntProperty = 30; updatedTestObj.ListOfObjectProperty[2].StringProperty = "this is an update to the last object in the list"; updatedTestObj.ListOfObjectProperty[2].DoubleProperty = 33.333; var diff = ObjectDiffPatch.GenerateDiff(testObj, updatedTestObj); var revertPatch = JsonConvert.SerializeObject(diff.OldValues); var revertedObj = ObjectDiffPatch.PatchObject(updatedTestObj, revertPatch); Assert.AreEqual(testObj.ListOfObjectProperty[2].IntProperty, revertedObj.ListOfObjectProperty[2].IntProperty); Assert.AreEqual(testObj.ListOfObjectProperty[2].StringProperty, revertedObj.ListOfObjectProperty[2].StringProperty); Assert.AreEqual(testObj.ListOfObjectProperty[2].DoubleProperty, revertedObj.ListOfObjectProperty[2].DoubleProperty); }