예제 #1
0
        public void SubtypeTest()
        {
            var expected = new SubtypeClass {
                Field = new SubclassB {
                    SomethingForClassB = 33
                }, Field2 = new SubclassA()
            };
            var actual = Roundtrip(expected);

            Assert.AreEqual(SubclassType.B, actual.Subtype);
            Assert.IsTrue(actual.Field is SubclassB);
        }
예제 #2
0
        public void SubSubtypeTest()
        {
            var expected = new SubtypeClass
            {
                Field = new SubSubclassC(3)
                {
                    SomeSuperStuff     = 1,
                    SomethingForClassB = 2
                },
                Field2 = new SubclassA()
            };
            var actual = Roundtrip(expected);

            Assert.AreEqual(SubclassType.C, actual.Subtype);
            Assert.IsTrue(actual.Field is SubSubclassC);
            Assert.AreEqual(actual.Field.SomeSuperStuff, expected.Field.SomeSuperStuff);
            Assert.AreEqual(((SubSubclassC)actual.Field).SomethingForClassB,
                            ((SubSubclassC)expected.Field).SomethingForClassB);
            Assert.AreEqual(((SubSubclassC)actual.Field).SomethingForClassC,
                            ((SubSubclassC)expected.Field).SomethingForClassC);
        }