public void TestSameNonGenericTypesClonedDifferently() { var ilCloner = new IlCloner(); var example = new TestTwoNonGenericMembersSameType() { ListA = new TestNonGenericList { "a", "b", "c", "d" }, ListB = new TestNonGenericList { 1, 2, 3, 4 } }; var cloner = ilCloner.CreateClonerDelegate(example); var exampleCloned = cloner(example); Assert.IsFalse(Object.ReferenceEquals(example, exampleCloned)); Assert.IsFalse(Object.ReferenceEquals(example.ListA, exampleCloned.ListA)); Assert.IsFalse(Object.ReferenceEquals(example.ListB, exampleCloned.ListB)); Assert.IsTrue(example.ListA.Cast <string>().SequenceEqual(exampleCloned.ListA.Cast <string>())); Assert.IsTrue(example.ListB.Cast <int>().SequenceEqual(exampleCloned.ListB.Cast <int>())); }
public void TestNonGenericListContainingNonGenericListOfSameType() { var ilCloner = new IlCloner(); var example = new TestTwoNonGenericMembersSameType() { ListC = new TestNonGenericList() }; example.ListC.Add(new TestNonGenericList { 1, 2, 3, 4 }); var cloner = IlCloner.CreateCloner(example); var exampleCloned = cloner(example); Assert.IsFalse(Object.ReferenceEquals(example.ListC, exampleCloned.ListC)); Assert.IsFalse(Object.ReferenceEquals(example.ListC[0], exampleCloned.ListC[0])); }