public void CanApplyDiff_ObjectCreation() { var newObject = new ConnectivityNode { mRID = "123", description = "this is my connectivitivity nodode", name = "Connode" }; var change = new DataSetMember { mRID = Guid.NewGuid().ToString(), Change = new ObjectCreation { Object = newObject }, TargetObject = new TargetObject { @ref = newObject.mRID, referenceType = nameof(ConnectivityNode) }, }; var result = _differ.ApplyDiff(new IdentifiedObject[0], new[] { change }).ToList(); Assert.That(result.Count, Is.EqualTo(1)); var resultObject = result.First(); Assert.That(resultObject.mRID, Is.EqualTo("123")); Assert.That(resultObject.description, Is.EqualTo("this is my connectivitivity nodode")); Assert.That(resultObject.name, Is.EqualTo("Connode")); }
Dictionary <string, object> ReconstructObject <T>(string mRID, PropertyModification[] modifications) { var accessor = TypeAccessor.Create(typeof(T)); var target = (IdentifiedObject)accessor.CreateNew(); accessor[target, nameof(IdentifiedObject.mRID)] = mRID; var dataSetMember = new DataSetMember { mRID = Guid.NewGuid().ToString(), TargetObject = new TargetObject { @ref = mRID, referenceType = typeof(T).Name }, Change = new ObjectModification { Modifications = modifications } }; var result = new CimDiffer() .ApplyDiff(new[] { target }, new[] { dataSetMember }) .Single(); return(JObject.Parse(_serializer.SerializeObject(result)).Properties() .ToDictionary(p => p.Name, p => p.Value.ToObject <object>())); }
public void CanApplyDiff_ObjectDeletion() { var deletedObject = new ConnectivityNode { mRID = "123", description = "this is my connectivitivity nodode", name = "Connode" }; var change = new DataSetMember { mRID = Guid.NewGuid().ToString(), Change = new ObjectDeletion(), TargetObject = new TargetObject { @ref = deletedObject.mRID, referenceType = nameof(ConnectivityNode) }, ReverseChange = new ObjectReverseModification() }; var result = _differ.ApplyDiff(new[] { deletedObject }, new[] { change }).ToList(); Assert.That(result.Count, Is.EqualTo(0)); }
public void CanApplyDiff_ObjectModification() { var target = new ConnectivityNode { mRID = "123", description = "this is my connectivitivity nodode", name = "Connode" }; var change = new DataSetMember { mRID = Guid.NewGuid().ToString(), Change = new ObjectModification { Modifications = new[] { new PropertyModification { Name = "description", Value = "this is my connectivity node (spelning corected)" } } }, // not necessary for this test, but play it realistic ReverseChange = new ObjectReverseModification { Modifications = new[] { new PropertyModification { Name = "description", Value = "this is my connectivitivity nodode" } } }, TargetObject = new TargetObject { @ref = target.mRID, referenceType = nameof(ConnectivityNode) } }; var result = _differ.ApplyDiff(new[] { target }, new[] { change }).First(); Assert.That(result.description, Is.EqualTo("this is my connectivity node (spelning corected)")); }