コード例 #1
0
ファイル: CloningTests.cs プロジェクト: kskjer/IlCloner
        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>()));
        }
コード例 #2
0
ファイル: CloningTests.cs プロジェクト: kskjer/IlCloner
        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]));
        }