public void ReplaceInListInList() { var doc = new SimpleDTO() { SimpleDTOList = new List <SimpleDTO>() { new SimpleDTO() { IntegerList = new List <int>() { 1, 2, 3 } } } }; // create patch JsonPatchDocument patchDoc = new JsonPatchDocument(); patchDoc.Replace("SimpleDTOList/0/IntegerList/0", 4); var serialized = JsonConvert.SerializeObject(patchDoc); var deserialized = JsonConvert.DeserializeObject <JsonPatchDocument>(serialized); deserialized.ApplyTo(doc); Assert.Equal(4, doc.SimpleDTOList.First().IntegerList.First()); }
public void CopyFromListToEndOfList() { var doc = new SimpleDTO() { IntegerList = new List <int>() { 1, 2, 3 } }; // create patch JsonPatchDocument patchDoc = new JsonPatchDocument(); patchDoc.Copy("IntegerList/0", "IntegerList/-"); var serialized = JsonConvert.SerializeObject(patchDoc); var deserialized = JsonConvert.DeserializeObject <JsonPatchDocument>(serialized); deserialized.ApplyTo(doc); Assert.Equal(new List <int>() { 1, 2, 3, 1 }, doc.IntegerList); }
public void ReplaceFullListWithCollection() { var doc = new SimpleDTO() { IntegerList = new List <int>() { 1, 2, 3 } }; // create patch JsonPatchDocument patchDoc = new JsonPatchDocument(); patchDoc.Replace("IntegerList", new Collection <int>() { 4, 5, 6 }); var serialized = JsonConvert.SerializeObject(patchDoc); var deserialized = JsonConvert.DeserializeObject <JsonPatchDocument>(serialized); deserialized.ApplyTo(doc); Assert.Equal(new List <int>() { 4, 5, 6 }, doc.IntegerList); }
public void ReplaceInList() { var doc = new SimpleDTO() { IntegerList = new List <int>() { 1, 2, 3 } }; // create patch JsonPatchDocument patchDoc = new JsonPatchDocument(); patchDoc.Replace("IntegerList/0", 5); var serialized = JsonConvert.SerializeObject(patchDoc); var deserialized = JsonConvert.DeserializeObject <JsonPatchDocument>(serialized); deserialized.ApplyTo(doc); Assert.Equal(new List <int>() { 5, 2, 3 }, doc.IntegerList); }
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 patchDoc = new JsonPatchDocument(); patchDoc.Replace("SimpleDTO", newDTO); // serialize & deserialize var serialized = JsonConvert.SerializeObject(patchDoc); var deserialized = JsonConvert.DeserializeObject <JsonPatchDocument>(serialized); deserialized.ApplyTo(doc); Assert.Equal(1, doc.SimpleDTO.DoubleValue); Assert.Equal(0, doc.SimpleDTO.IntegerValue); Assert.Equal(null, doc.SimpleDTO.IntegerList); }
public void RemoveFromListInvalidPositionTooSmall() { var doc = new SimpleDTO() { IntegerList = new List <int>() { 1, 2, 3 } }; // create patch JsonPatchDocument patchDoc = new JsonPatchDocument(); patchDoc.Remove("IntegerList/-1"); var serialized = JsonConvert.SerializeObject(patchDoc); var deserialized = JsonConvert.DeserializeObject <JsonPatchDocument>(serialized); var exception = Assert.Throws <JsonPatchException>(() => { deserialized.ApplyTo(doc); }); Assert.Equal( "For operation 'remove' on array property at path '/IntegerList/-1', the index is negative.", exception.Message); }
public void MoveFomListToNonList() { var doc = new SimpleDTO() { IntegerList = new List <int>() { 1, 2, 3 } }; // create patch JsonPatchDocument patchDoc = new JsonPatchDocument(); patchDoc.Move("IntegerList/0", "IntegerValue"); var serialized = JsonConvert.SerializeObject(patchDoc); var deserialized = JsonConvert.DeserializeObject <JsonPatchDocument>(serialized); deserialized.ApplyTo(doc); Assert.Equal(new List <int>() { 2, 3 }, doc.IntegerList); Assert.Equal(1, doc.IntegerValue); }
public void ReplaceAtEndOfList() { var doc = new SimpleDTO() { IntegerList = new List<int>() { 1, 2, 3 } }; // create patch JsonPatchDocument patchDoc = new JsonPatchDocument(); patchDoc.Replace("IntegerList/-", 5); var serialized = JsonConvert.SerializeObject(patchDoc); var deserialized = JsonConvert.DeserializeObject<JsonPatchDocument>(serialized); deserialized.ApplyTo(doc); Assert.Equal(new List<int>() { 1, 2, 5 }, doc.IntegerList); }
public void ReplaceFullListFromEnumerable() { var doc = new SimpleDTO() { IntegerList = new List<int>() { 1, 2, 3 } }; // create patch JsonPatchDocument patchDoc = new JsonPatchDocument(); patchDoc.Replace("IntegerList", new List<int>() { 4, 5, 6 }); var serialized = JsonConvert.SerializeObject(patchDoc); var deserialized = JsonConvert.DeserializeObject<JsonPatchDocument>(serialized); deserialized.ApplyTo(doc); Assert.Equal(new List<int>() { 4, 5, 6 }, doc.IntegerList); }
public void Remove() { var doc = new SimpleDTO() { StringProperty = "A" }; // create patch JsonPatchDocument patchDoc = new JsonPatchDocument(); patchDoc.Remove("StringProperty"); var serialized = JsonConvert.SerializeObject(patchDoc); var deserialized = JsonConvert.DeserializeObject <JsonPatchDocument>(serialized); deserialized.ApplyTo(doc); Assert.Equal(null, doc.StringProperty); }
public void NonGenericPatchDocToGenericMustSerialize() { var doc = new SimpleDTO() { StringProperty = "A", AnotherStringProperty = "B" }; JsonPatchDocument patchDoc = new JsonPatchDocument(); patchDoc.Copy("StringProperty", "AnotherStringProperty"); var serialized = JsonConvert.SerializeObject(patchDoc); var deserialized = JsonConvert.DeserializeObject <JsonPatchDocument <SimpleDTO> >(serialized); deserialized.ApplyTo(doc); Assert.Equal("A", doc.AnotherStringProperty); }
public void Copy() { var doc = new SimpleDTO() { StringProperty = "A", AnotherStringProperty = "B" }; // create patch JsonPatchDocument patchDoc = new JsonPatchDocument(); patchDoc.Copy("StringProperty", "AnotherStringProperty"); var serialized = JsonConvert.SerializeObject(patchDoc); var deserialized = JsonConvert.DeserializeObject <JsonPatchDocument>(serialized); deserialized.ApplyTo(doc); Assert.Equal("A", doc.AnotherStringProperty); }
public void ReplaceGuidTest() { var doc = new SimpleDTO() { GuidValue = Guid.NewGuid() }; var newGuid = Guid.NewGuid(); // create patch JsonPatchDocument patchDoc = new JsonPatchDocument(); patchDoc.Replace("GuidValue", newGuid); // serialize & deserialize var serialized = JsonConvert.SerializeObject(patchDoc); var deserizalized = JsonConvert.DeserializeObject <JsonPatchDocument>(serialized); deserizalized.ApplyTo(doc); Assert.Equal(newGuid, doc.GuidValue); }
public void GenericPatchDocToNonGenericMustSerialize() { var doc = new SimpleDTO() { StringProperty = "A", AnotherStringProperty = "B" }; JsonPatchDocument<SimpleDTO> patchDocTyped = new JsonPatchDocument<SimpleDTO>(); patchDocTyped.Copy<string>(o => o.StringProperty, o => o.AnotherStringProperty); JsonPatchDocument patchDocUntyped = new JsonPatchDocument(); patchDocUntyped.Copy("StringProperty", "AnotherStringProperty"); var serializedTyped = JsonConvert.SerializeObject(patchDocTyped); var serializedUntyped = JsonConvert.SerializeObject(patchDocUntyped); var deserialized = JsonConvert.DeserializeObject<JsonPatchDocument>(serializedTyped); deserialized.ApplyTo(doc); Assert.Equal("A", doc.AnotherStringProperty); }
public void ReplaceGuidTest() { var doc = new SimpleDTO() { GuidValue = Guid.NewGuid() }; var newGuid = Guid.NewGuid(); // create patch JsonPatchDocument patchDoc = new JsonPatchDocument(); patchDoc.Replace("GuidValue", newGuid); // serialize & deserialize var serialized = JsonConvert.SerializeObject(patchDoc); var deserizalized = JsonConvert.DeserializeObject<JsonPatchDocument>(serialized); deserizalized.ApplyTo(doc); Assert.Equal(newGuid, doc.GuidValue); }
public void ReplaceInListInList() { var doc = new SimpleDTO() { SimpleDTOList = new List<SimpleDTO>() { new SimpleDTO() { IntegerList = new List<int>(){1,2,3} }} }; // create patch JsonPatchDocument patchDoc = new JsonPatchDocument(); patchDoc.Replace("SimpleDTOList/0/IntegerList/0", 4); var serialized = JsonConvert.SerializeObject(patchDoc); var deserialized = JsonConvert.DeserializeObject<JsonPatchDocument>(serialized); deserialized.ApplyTo(doc); Assert.Equal(4, doc.SimpleDTOList.First().IntegerList.First()); }
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 patchDoc = new JsonPatchDocument(); patchDoc.Replace("SimpleDTO", newDTO); // serialize & deserialize var serialized = JsonConvert.SerializeObject(patchDoc); var deserialized = JsonConvert.DeserializeObject<JsonPatchDocument>(serialized); deserialized.ApplyTo(doc); Assert.Equal(1, doc.SimpleDTO.DoubleValue); Assert.Equal(0, doc.SimpleDTO.IntegerValue); Assert.Equal(null, doc.SimpleDTO.IntegerList); }
public SimpleDTOWithNestedDTO() { NestedDTO = new NestedDTO(); SimpleDTO = new SimpleDTO(); ListOfSimpleDTO = new List<SimpleDTO>(); }
public void RemoveFromListInvalidPositionTooSmall() { var doc = new SimpleDTO() { IntegerList = new List<int>() { 1, 2, 3 } }; // create patch JsonPatchDocument patchDoc = new JsonPatchDocument(); patchDoc.Remove("IntegerList/-1"); var serialized = JsonConvert.SerializeObject(patchDoc); var deserialized = JsonConvert.DeserializeObject<JsonPatchDocument>(serialized); var exception = Assert.Throws<JsonPatchException>(() => { deserialized.ApplyTo(doc); }); Assert.Equal( "For operation 'remove' on array property at path '/IntegerList/-1', the index is negative.", exception.Message); }
public SimpleDTOWithNestedDTO() { NestedDTO = new NestedDTO(); SimpleDTO = new SimpleDTO(); ListOfSimpleDTO = new List <SimpleDTO>(); }
public void Remove() { var doc = new SimpleDTO() { StringProperty = "A" }; // create patch JsonPatchDocument patchDoc = new JsonPatchDocument(); patchDoc.Remove("StringProperty"); var serialized = JsonConvert.SerializeObject(patchDoc); var deserialized = JsonConvert.DeserializeObject<JsonPatchDocument>(serialized); deserialized.ApplyTo(doc); Assert.Equal(null, doc.StringProperty); }