コード例 #1
0
        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"));
        }
コード例 #2
0
        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>()));
        }
コード例 #3
0
        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));
        }
コード例 #4
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)"));
        }