public void RecursiveTwoLevelCheckingForChangedCollection() { var A = new TestLevelA(); A.NestedAs = new Collection<TestLevelA>(); A.NestedAs.Add(ShadowedObject.Create<TestLevelA>()); A.NestedAs.Add(ShadowedObject.Create<TestLevelA>()); A = ShadowedObject.CopyInto(A); A.BaselineOriginals(); Assert.IsTrue(!A.HasChanges()); A.NestedAs[0].name = "xyz"; Assert.IsTrue(A.HasChanges()); }