public void Deep_Clone_Custom_Enumerable_Property() { var test1 = new Test7() { MyTest1 = new List <Test1> { new Test1(), new Test1() } }; var clone = (Test7)test1.DeepClone(); Assert.AreNotSame(test1, clone); Assert.AreEqual(test1.MyTest1.Count(), clone.MyTest1.Count()); for (var i = 0; i < test1.MyTest1.Count(); i++) { Assert.IsNotNull(clone.MyTest1.ElementAt(i)); Assert.AreNotSame(clone.MyTest1.ElementAt(i), test1.MyTest1.ElementAt(i)); } }