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); }
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); }