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")); }
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)); }
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)); }
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")); }