예제 #1
0
        public void ImmutableTypesAreNotCopied()
        {
            var original = new ImmutablePoco {
                Reference = new object[] { 123, "hello!" }
            };
            var result = DeepCopier.Copy(original);

            Assert.Same(original.Reference, result.Reference);
            Assert.Same(original, result);
        }
예제 #2
0
        public void CanCopyArraysRank3WithImmutable()
        {
            var immutable = new ImmutablePoco();
            var original  = new object[, , ]
            {
                {
                    { "Hello", 2, immutable },
                    { 300.0f, immutable, 33 }
                },
                {
                    { immutable, 5.0m, 135 },
                    { 30, immutable, 3 }
                }
            };
            var result = DeepCopier.Copy(original);

            Assert.Equal(original, result);
            Assert.NotSame(original, result);
            Assert.Same(immutable, result[0, 0, 2]);
            Assert.Same(immutable, result[0, 1, 1]);
            Assert.Same(immutable, result[1, 0, 0]);
            Assert.Same(immutable, result[1, 1, 1]);
        }