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