Esempio n. 1
0
        public void GetClone_DerivedTypeWithShadowedProperty_ClonnedProperly()
        {
            DerivedClassOne source = new DerivedClassOne()
            {
                MyField          = 1,
                Property         = 1,
                VirtualProperty  = 2,
                VirtualProperty2 = 3,
                AbstractProperty = 4,
                VirtualProperty3 = "test1"
            };

            Assert.AreEqual(2, ((BaseClassOne)source).VirtualProperty);
            Assert.AreEqual(3, ((BaseClassOne)source).VirtualProperty2);
            Assert.AreEqual(4, ((BaseClassOne)source).AbstractProperty);
            Assert.AreEqual("test1", ((BaseClassOne)source).VirtualProperty3);

            ((BaseClassOne)source).MyField          = 2;
            ((BaseClassOne)source).Property         = 5;
            ((BaseClassOne)source).VirtualProperty  = 6;
            ((BaseClassOne)source).VirtualProperty2 = 7;
            ((BaseClassOne)source).AbstractProperty = 8;
            ((BaseClassOne)source).VirtualProperty3 = "test2";

            Assert.AreEqual(1, source.MyField);
            Assert.AreEqual(2, ((BaseClassOne)source).MyField);

            Assert.AreEqual(1, source.Property);
            Assert.AreEqual(5, ((BaseClassOne)source).Property);

            Assert.AreEqual(6, source.VirtualProperty);
            Assert.AreEqual(6, ((BaseClassOne)source).VirtualProperty);

            Assert.AreEqual(7, source.VirtualProperty2);
            Assert.AreEqual(7, ((BaseClassOne)source).VirtualProperty2);

            Assert.AreEqual(8, source.AbstractProperty);
            Assert.AreEqual(8, ((BaseClassOne)source).AbstractProperty);

            Assert.AreEqual("test2", source.VirtualProperty3);
            Assert.AreEqual("test2", ((BaseClassOne)source).VirtualProperty3);

            var target = CloneFactory.GetClone(source);

            Assert.AreEqual(1, target.MyField);
            Assert.AreEqual(2, ((BaseClassOne)target).MyField);

            Assert.AreEqual(1, target.Property);
            Assert.AreEqual(5, ((BaseClassOne)target).Property);

            Assert.AreEqual(6, target.VirtualProperty);
            Assert.AreEqual(6, ((BaseClassOne)target).VirtualProperty);

            Assert.AreEqual(7, target.VirtualProperty2);
            Assert.AreEqual(7, ((BaseClassOne)target).VirtualProperty2);

            Assert.AreEqual(8, target.AbstractProperty);
            Assert.AreEqual(8, ((BaseClassOne)target).AbstractProperty);

            Assert.AreEqual("test2", target.VirtualProperty3);
            Assert.AreEqual("test2", ((BaseClassOne)target).VirtualProperty3);
        }
Esempio n. 2
0
        public virtual void ShadowFieldProps1()
        {
            DerivedClassOne source = new DerivedClassOne()
            {
                MyField          = 1,
                Property         = 1,
                VirtualProperty  = 2,
                VirtualProperty2 = 3,
                AbstractProperty = 4,
                VirtualProperty3 = "test1"
            };

            Assert.Equal(2, source.VirtualProperty);
            Assert.Equal(3, source.VirtualProperty2);
            Assert.Equal(4, source.AbstractProperty);
            Assert.Equal("test1", source.VirtualProperty3);

            ((BaseClassOne)source).MyField  = 2;
            ((BaseClassOne)source).Property = 5;
            source.VirtualProperty          = 6;
            source.VirtualProperty2         = 7;
            source.AbstractProperty         = 8;
            source.VirtualProperty3         = "test2";

            Assert.Equal(1, source.MyField);
            Assert.Equal(2, ((BaseClassOne)source).MyField);

            Assert.Equal(1, source.Property);
            Assert.Equal(5, ((BaseClassOne)source).Property);

            Assert.Equal(6, source.VirtualProperty);
            Assert.Equal(6, source.VirtualProperty);

            Assert.Equal(7, source.VirtualProperty2);
            Assert.Equal(7, source.VirtualProperty2);

            Assert.Equal(8, source.AbstractProperty);
            Assert.Equal(8, source.AbstractProperty);

            Assert.Equal("test2", source.VirtualProperty3);
            Assert.Equal("test2", source.VirtualProperty3);

            var target = GetClone(source, 1);

            Assert.Equal(1, target.MyField);
            Assert.Equal(2, ((BaseClassOne)target).MyField);

            Assert.Equal(1, target.Property);
            Assert.Equal(5, ((BaseClassOne)target).Property);

            Assert.Equal(6, target.VirtualProperty);
            Assert.Equal(6, target.VirtualProperty);

            Assert.Equal(7, target.VirtualProperty2);
            Assert.Equal(7, target.VirtualProperty2);

            Assert.Equal(8, target.AbstractProperty);
            Assert.Equal(8, target.AbstractProperty);

            Assert.Equal("test2", target.VirtualProperty3);
            Assert.Equal("test2", target.VirtualProperty3);
        }