public void ReplacePropertyInNestedObject() { var doc = new SimpleDTOWithNestedDTO() { IntegerValue = 1 }; // create patch JsonPatchDocument<SimpleDTOWithNestedDTO> patchDoc = new JsonPatchDocument<SimpleDTOWithNestedDTO>(); patchDoc.Replace<string>(o => o.NestedDTO.StringProperty, "B"); patchDoc.ApplyTo(doc); Assert.Equal("B", doc.NestedDTO.StringProperty); }
public void ReplacePropertyInNestedObjectWithSerialization() { var doc = new SimpleDTOWithNestedDTO() { IntegerValue = 1 }; // create patch JsonPatchDocument<SimpleDTOWithNestedDTO> patchDoc = new JsonPatchDocument<SimpleDTOWithNestedDTO>(); patchDoc.Replace<string>(o => o.NestedDTO.StringProperty, "B"); // serialize & deserialize var serialized = JsonConvert.SerializeObject(patchDoc); var deserialized = JsonConvert.DeserializeObject<JsonPatchDocument<SimpleDTOWithNestedDTO>>(serialized); deserialized.ApplyTo(doc); Assert.Equal("B", doc.NestedDTO.StringProperty); }
public void Replace() { var doc = new SimpleDTOWithNestedDTO() { SimpleDTO = new SimpleDTO() { StringProperty = "A", DecimalValue = 10 } }; // create patch JsonPatchDocument<SimpleDTOWithNestedDTO> patchDoc = new JsonPatchDocument<SimpleDTOWithNestedDTO>(); patchDoc.Replace<string>(o => o.SimpleDTO.StringProperty, "B"); patchDoc.Replace(o => o.SimpleDTO.DecimalValue, 12); patchDoc.ApplyTo(doc); Assert.Equal("B", doc.SimpleDTO.StringProperty); Assert.Equal(12, doc.SimpleDTO.DecimalValue); }
public void RemoveWithSerialization() { var doc = new SimpleDTOWithNestedDTO() { SimpleDTO = new SimpleDTO() { StringProperty = "A" } }; // create patch JsonPatchDocument<SimpleDTOWithNestedDTO> patchDoc = new JsonPatchDocument<SimpleDTOWithNestedDTO>(); patchDoc.Remove<string>(o => o.SimpleDTO.StringProperty); var serialized = JsonConvert.SerializeObject(patchDoc); var deserialized = JsonConvert.DeserializeObject<JsonPatchDocument<SimpleDTOWithNestedDTO>>(serialized); deserialized.ApplyTo(doc); Assert.Equal(null, doc.SimpleDTO.StringProperty); }
public void Remove() { var doc = new SimpleDTOWithNestedDTO() { SimpleDTO = new SimpleDTO() { StringProperty = "A" } }; // create patch JsonPatchDocument<SimpleDTOWithNestedDTO> patchDoc = new JsonPatchDocument<SimpleDTOWithNestedDTO>(); patchDoc.Remove<string>(o => o.SimpleDTO.StringProperty); patchDoc.ApplyTo(doc); Assert.Equal(null, doc.SimpleDTO.StringProperty); }
public void Copy() { var doc = new SimpleDTOWithNestedDTO() { SimpleDTO = new SimpleDTO() { StringProperty = "A", AnotherStringProperty = "B" } }; // create patch JsonPatchDocument<SimpleDTOWithNestedDTO> patchDoc = new JsonPatchDocument<SimpleDTOWithNestedDTO>(); patchDoc.Copy<string>(o => o.SimpleDTO.StringProperty, o => o.SimpleDTO.AnotherStringProperty); patchDoc.ApplyTo(doc); Assert.Equal("A", doc.SimpleDTO.AnotherStringProperty); }
public void ReplaceInListInvalidInvalidPositionTooLarge() { var doc = new SimpleDTOWithNestedDTO() { SimpleDTO = new SimpleDTO() { IntegerList = new List<int>() { 1, 2, 3 } } }; // create patch JsonPatchDocument<SimpleDTOWithNestedDTO> patchDoc = new JsonPatchDocument<SimpleDTOWithNestedDTO>(); patchDoc.Replace<int>(o => o.SimpleDTO.IntegerList, 5, 3); Assert.Throws<JsonPatchException>(() => { patchDoc.ApplyTo(doc); }); }
public void ReplaceAtEndOfList() { var doc = new SimpleDTOWithNestedDTO() { SimpleDTO = new SimpleDTO() { IntegerList = new List<int>() { 1, 2, 3 } } }; // create patch JsonPatchDocument<SimpleDTOWithNestedDTO> patchDoc = new JsonPatchDocument<SimpleDTOWithNestedDTO>(); patchDoc.Replace<int>(o => o.SimpleDTO.IntegerList, 5); patchDoc.ApplyTo(doc); Assert.Equal(new List<int>() { 1, 2, 5 }, doc.SimpleDTO.IntegerList); }
public void MoveToEndOfList() { var doc = new SimpleDTOWithNestedDTO() { SimpleDTO = new SimpleDTO() { IntegerValue = 5, IntegerList = new List<int>() { 1, 2, 3 } } }; // create patch JsonPatchDocument<SimpleDTOWithNestedDTO> patchDoc = new JsonPatchDocument<SimpleDTOWithNestedDTO>(); patchDoc.Move<int>(o => o.SimpleDTO.IntegerValue, o => o.SimpleDTO.IntegerList); patchDoc.ApplyTo(doc); Assert.Equal(0, doc.IntegerValue); Assert.Equal(new List<int>() { 1, 2, 3, 5 }, doc.SimpleDTO.IntegerList); }
public void MoveFomListToNonListBetweenHierarchy() { var doc = new SimpleDTOWithNestedDTO() { SimpleDTO = new SimpleDTO() { IntegerList = new List<int>() { 1, 2, 3 } } }; // create patch JsonPatchDocument<SimpleDTOWithNestedDTO> patchDoc = new JsonPatchDocument<SimpleDTOWithNestedDTO>(); patchDoc.Move<int>(o => o.SimpleDTO.IntegerList, 0, o => o.IntegerValue); patchDoc.ApplyTo(doc); Assert.Equal(new List<int>() { 2, 3 }, doc.SimpleDTO.IntegerList); Assert.Equal(1, doc.IntegerValue); }
public void MoveFromNonListToListWithSerialization() { var doc = new SimpleDTOWithNestedDTO() { SimpleDTO = new SimpleDTO() { IntegerValue = 5, IntegerList = new List<int>() { 1, 2, 3 } } }; // create patch JsonPatchDocument<SimpleDTOWithNestedDTO> patchDoc = new JsonPatchDocument<SimpleDTOWithNestedDTO>(); patchDoc.Move<int>(o => o.SimpleDTO.IntegerValue, o => o.SimpleDTO.IntegerList, 0); var serialized = JsonConvert.SerializeObject(patchDoc); var deserialized = JsonConvert.DeserializeObject<JsonPatchDocument<SimpleDTOWithNestedDTO>>(serialized); deserialized.ApplyTo(doc); Assert.Equal(0, doc.IntegerValue); Assert.Equal(new List<int>() { 5, 1, 2, 3 }, doc.SimpleDTO.IntegerList); }
public void MoveInList() { var doc = new SimpleDTOWithNestedDTO() { SimpleDTO = new SimpleDTO() { IntegerList = new List<int>() { 1, 2, 3 } } }; // create patch JsonPatchDocument<SimpleDTOWithNestedDTO> patchDoc = new JsonPatchDocument<SimpleDTOWithNestedDTO>(); patchDoc.Move<int>(o => o.SimpleDTO.IntegerList, 0, o => o.SimpleDTO.IntegerList, 1); patchDoc.ApplyTo(doc); Assert.Equal(new List<int>() { 2, 1, 3 }, doc.SimpleDTO.IntegerList); }
public void CopyFromNonListToList() { var doc = new SimpleDTOWithNestedDTO() { SimpleDTO = new SimpleDTO() { IntegerValue = 5, IntegerList = new List<int>() { 1, 2, 3 } } }; // create patch JsonPatchDocument<SimpleDTOWithNestedDTO> patchDoc = new JsonPatchDocument<SimpleDTOWithNestedDTO>(); patchDoc.Copy<int>(o => o.SimpleDTO.IntegerValue, o => o.SimpleDTO.IntegerList, 0); patchDoc.ApplyTo(doc); Assert.Equal(new List<int>() { 5, 1, 2, 3 }, doc.SimpleDTO.IntegerList); }
public void AddResultsInReplace() { var doc = new SimpleDTOWithNestedDTO() { SimpleDTO = new SimpleDTO() { StringProperty = "A" } }; // create patch JsonPatchDocument<SimpleDTOWithNestedDTO> patchDoc = new JsonPatchDocument<SimpleDTOWithNestedDTO>(); patchDoc.Add<string>(o => o.SimpleDTO.StringProperty, "B"); patchDoc.ApplyTo(doc); Assert.Equal("B", doc.SimpleDTO.StringProperty); }
public void SerializationTests() { var doc = new SimpleDTOWithNestedDTO() { SimpleDTO = new SimpleDTO() { StringProperty = "A", DecimalValue = 10, DoubleValue = 10, FloatValue = 10, IntegerValue = 10 } }; // create patch JsonPatchDocument<SimpleDTOWithNestedDTO> patchDoc = new JsonPatchDocument<SimpleDTOWithNestedDTO>(); patchDoc.Replace(o => o.SimpleDTO.StringProperty, "B"); patchDoc.Replace(o => o.SimpleDTO.DecimalValue, 12); patchDoc.Replace(o => o.SimpleDTO.DoubleValue, 12); patchDoc.Replace(o => o.SimpleDTO.FloatValue, 12); patchDoc.Replace(o => o.SimpleDTO.IntegerValue, 12); // serialize & deserialize var serialized = JsonConvert.SerializeObject(patchDoc); var deserizalized = JsonConvert.DeserializeObject<JsonPatchDocument<SimpleDTOWithNestedDTO>>(serialized); deserizalized.ApplyTo(doc); Assert.Equal("B", doc.SimpleDTO.StringProperty); Assert.Equal(12, doc.SimpleDTO.DecimalValue); Assert.Equal(12, doc.SimpleDTO.DoubleValue); Assert.Equal(12, doc.SimpleDTO.FloatValue); Assert.Equal(12, doc.SimpleDTO.IntegerValue); }
public void AddToListInList() { var doc = new SimpleDTOWithNestedDTO() { ListOfSimpleDTO = new List<SimpleDTO>() { new SimpleDTO() { IntegerList = new List<int>() { 1, 2, 3 } } } }; // create patch JsonPatchDocument<SimpleDTOWithNestedDTO> patchDoc = new JsonPatchDocument<SimpleDTOWithNestedDTO>(); patchDoc.Add<int>(o => o.ListOfSimpleDTO[0].IntegerList, 4, 0); var serialized = JsonConvert.SerializeObject(patchDoc); var deserialized = JsonConvert.DeserializeObject<JsonPatchDocument<SimpleDTOWithNestedDTO>>(serialized); deserialized.ApplyTo(doc); Assert.Equal(new List<int>() { 4, 1, 2, 3 }, doc.ListOfSimpleDTO[0].IntegerList); }
public void ReplaceFullListWithCollection() { var doc = new SimpleDTOWithNestedDTO() { SimpleDTO = new SimpleDTO() { IntegerList = new List<int>() { 1, 2, 3 } } }; // create patch JsonPatchDocument<SimpleDTOWithNestedDTO> patchDoc = new JsonPatchDocument<SimpleDTOWithNestedDTO>(); patchDoc.Replace<IEnumerable<int>>(o => o.SimpleDTO.IntegerList, new Collection<int>() { 4, 5, 6 }); patchDoc.ApplyTo(doc); Assert.Equal(new List<int>() { 4, 5, 6 }, doc.SimpleDTO.IntegerList); }
public void AddToListInvalidPositionTooSmall() { var doc = new SimpleDTOWithNestedDTO() { SimpleDTO = new SimpleDTO() { IntegerList = new List<int>() { 1, 2, 3 } } }; // create patch JsonPatchDocument<SimpleDTOWithNestedDTO> patchDoc = new JsonPatchDocument<SimpleDTOWithNestedDTO>(); patchDoc.Add<int>(o => o.SimpleDTO.IntegerList, 4, -1); Assert.Throws<JsonPatchException>(() => { patchDoc.ApplyTo(doc); }); }
public void ReplaceAtEndOfListWithSerialization() { var doc = new SimpleDTOWithNestedDTO() { SimpleDTO = new SimpleDTO() { IntegerList = new List<int>() { 1, 2, 3 } } }; // create patch JsonPatchDocument<SimpleDTOWithNestedDTO> patchDoc = new JsonPatchDocument<SimpleDTOWithNestedDTO>(); patchDoc.Replace<int>(o => o.SimpleDTO.IntegerList, 5); var serialized = JsonConvert.SerializeObject(patchDoc); var deserialized = JsonConvert.DeserializeObject<JsonPatchDocument<SimpleDTOWithNestedDTO>>(serialized); deserialized.ApplyTo(doc); Assert.Equal(new List<int>() { 1, 2, 5 }, doc.SimpleDTO.IntegerList); }
public void AddToListAppend() { var doc = new SimpleDTOWithNestedDTO() { SimpleDTO = new SimpleDTO() { IntegerList = new List<int>() { 1, 2, 3 } } }; // create patch JsonPatchDocument<SimpleDTOWithNestedDTO> patchDoc = new JsonPatchDocument<SimpleDTOWithNestedDTO>(); patchDoc.Add<int>(o => o.SimpleDTO.IntegerList, 4); patchDoc.ApplyTo(doc); Assert.Equal(new List<int>() { 1, 2, 3, 4 }, doc.SimpleDTO.IntegerList); }
public void ReplaceInListInvalidInvalidPositionTooLargeWithSerialization() { var doc = new SimpleDTOWithNestedDTO() { SimpleDTO = new SimpleDTO() { IntegerList = new List<int>() { 1, 2, 3 } } }; // create patch JsonPatchDocument<SimpleDTOWithNestedDTO> patchDoc = new JsonPatchDocument<SimpleDTOWithNestedDTO>(); patchDoc.Replace<int>(o => o.SimpleDTO.IntegerList, 5, 3); var serialized = JsonConvert.SerializeObject(patchDoc); var deserialized = JsonConvert.DeserializeObject<JsonPatchDocument<SimpleDTOWithNestedDTO>>(serialized); Assert.Throws<JsonPatchException>(() => { deserialized.ApplyTo(doc); }); }
public void SerializeAndReplaceNestedObjectTest() { var doc = new SimpleDTOWithNestedDTO() { SimpleDTO = new SimpleDTO() { IntegerValue = 5, IntegerList = new List<int>() { 1, 2, 3 } } }; var newDTO = new SimpleDTO() { DoubleValue = 1 }; // create patch JsonPatchDocument<SimpleDTOWithNestedDTO> patchDoc = new JsonPatchDocument<SimpleDTOWithNestedDTO>(); patchDoc.Replace(o => o.SimpleDTO, newDTO); // serialize & deserialize var serialized = JsonConvert.SerializeObject(patchDoc); var deserialized = JsonConvert.DeserializeObject<JsonPatchDocument<SimpleDTOWithNestedDTO>>(serialized); deserialized.ApplyTo(doc); Assert.Equal(1, doc.SimpleDTO.DoubleValue); Assert.Equal(0, doc.SimpleDTO.IntegerValue); Assert.Equal(null, doc.SimpleDTO.IntegerList); }