Пример #1
0
        public void Compare_Nested_Null_Object_Does_Not_Throw_NullReferenceException()
        {
            var oldModel = new NestedModel()
            {
                Id    = 10,
                Child = null
            };

            var newModel = new NestedModel()
            {
                Id    = 10,
                Child = new ChildModel()
                {
                    Id         = 100,
                    Name       = "Child",
                    GrandChild = new GrandChildModel()
                    {
                        Id    = 1000,
                        Name  = "GrandChild",
                        Value = 500,
                    }
                }
            };

            var changes = SutEngine.Compare(oldModel, newModel);

            Assert.AreEqual(changes.Count(), 5);
            Assert.IsNotNull(changes.Single(x => x.Name == "Child.Id"));
            Assert.IsNotNull(changes.Single(x => x.Name == "Child.GrandChild.Value"));
            Assert.IsNotNull(changes.Single(x => x.Name == "Child.GrandChild.Name"));
        }
Пример #2
0
        public void Compare_Nestted_Objects()
        {
            var comparer = SutEngine.Get <NestedModel>();
            var oldModel = new NestedModel
            {
                Id    = 1,
                Child = new ChildModel
                {
                    Id         = 2,
                    Name       = "Child",
                    GrandChild = new GrandChildModel
                    {
                        Id    = 3,
                        Name  = "GrandChild",
                        Value = 100,
                    }
                }
            };
            var newModel = new NestedModel
            {
                Id    = 1,
                Child = new ChildModel
                {
                    Id         = 2,
                    Name       = "Child 2",
                    GrandChild = new GrandChildModel
                    {
                        Id    = 4,
                        Name  = "GrandChild 2",
                        Value = 200,
                    }
                }
            };

            var changes = comparer(oldModel, newModel);

            Assert.AreEqual(changes.Count(), 4);
            Assert.IsNotNull(changes.Single(x => x.Name == "Child.Name" && (string)x.OldValue == "Child" && (string)x.NewValue == "Child 2"));
            Assert.IsNotNull(changes.Single(x => x.Name == "Child.GrandChild.Name" && (string)x.OldValue == "GrandChild" && (string)x.NewValue == "GrandChild 2"));
            Assert.IsNotNull(changes.Single(x => x.Name == "Child.GrandChild.Id" && (long)x.OldValue == 3 && (long)x.NewValue == 4));
            Assert.IsNotNull(changes.Single(x => x.Name == "Child.GrandChild.Value" && (int)x.OldValue == 100 && (int)x.NewValue == 200));
        }
Пример #3
0
        public void When_I_Compare_Nested_Objects_I_Get_Nested_Properties()
        {
            var comparer = Comparer.GetComparer<NestedModel>();
            var oldModel = new NestedModel
            {
                Id = 1,
                Child = new ChildModel
                {
                    Id = 2,
                    Name = "Child",
                    GrandChild = new GrandChildModel
                    {
                        Id = 3,
                        Name = "GrandChild",
                        Value = 100,
                    }
                }
            };
            var newModel = new NestedModel
            {
                Id = 1,
                Child = new ChildModel
                {
                    Id = 2,
                    Name = "Child 2",
                    GrandChild = new GrandChildModel
                    {
                        Id = 4,
                        Name = "GrandChild 2",
                        Value = 200,
                    }
                }
            };

            var changes = comparer(oldModel, newModel);
            Assert.AreEqual(changes.Count(), 4);
            Assert.IsNotNull(changes.Single(x => x.Name == "Child.Name" && (string)x.OldValue == "Child" && (string)x.NewValue == "Child 2"));
            Assert.IsNotNull(changes.Single(x => x.Name == "Child.GrandChild.Name" && (string)x.OldValue == "GrandChild" && (string)x.NewValue == "GrandChild 2"));
            Assert.IsNotNull(changes.Single(x => x.Name == "Child.GrandChild.Id" && (long)x.OldValue == 3 && (long)x.NewValue == 4));
            Assert.IsNotNull(changes.Single(x => x.Name == "Child.GrandChild.Value" && (int)x.OldValue == 100 && (int)x.NewValue == 200));
        }
Пример #4
0
        public void When_I_Compare_Nested_Null_Objects_It_Works()
        {
            var oldModel = new NestedModel()
            {
                Id = 10,
                Child = null
            };

            var newModel = new NestedModel()
            {
                Id = 10,
                Child = new ChildModel()
                {
                    Id = 100,
                    Name = "Child",
                    GrandChild = new GrandChildModel()
                    {
                        Id = 1000,
                        Name = "GrandChild",
                        Value = 500,
                    }
                }
            };

            var changes = Comparer.Compare(oldModel, newModel);
            Assert.AreEqual(changes.Count(), 5);
            Assert.IsNotNull(changes.Single(x => x.Name == "Child.Id"));
            Assert.IsNotNull(changes.Single(x => x.Name == "Child.GrandChild.Value"));
            Assert.IsNotNull(changes.Single(x => x.Name == "Child.GrandChild.Name"));
        }
Пример #5
0
        public void Compare_Nested_Null_Object_Does_Not_Throw_NullReferenceException()
        {
            var oldModel = new NestedModel()
            {
                Id = 10,
                Child = null
            };

            var newModel = new NestedModel()
            {
                Id = 10,
                Child = new ChildModel()
                {
                    Id = 100,
                    Name = "Child",
                    GrandChild = new GrandChildModel()
                    {
                        Id = 1000,
                        Name = "GrandChild",
                        Value = 500,
                    }
                }
            };

            var changes = SutEngine.Compare(oldModel, newModel);
            Assert.AreEqual(changes.Count(), 5);
            Assert.IsNotNull(changes.Single(x => x.Name == "Child.Id"));
            Assert.IsNotNull(changes.Single(x => x.Name == "Child.GrandChild.Value"));
            Assert.IsNotNull(changes.Single(x => x.Name == "Child.GrandChild.Name"));
        }