public void TestSelfCopy() { TestClassA a = new TestClassA() { TestClassC = new TestClassC() { MyProperty = "string" }, List = new List <TestClassC>() { new TestClassC() { MyProperty = "cstring" } } }; var a2 = a.Copy(); Assert.Equal(a.TestClassC.MyProperty, a2.TestClassC.MyProperty); Assert.Equal(a.List.Count, a2.List.Count); }