public void RecoverableMissingSubtypeTest() { var expected = new RecoverableMissingSubtypeClass <SuperclassContainer> { Items = new List <SuperclassContainer> { new SuperclassContainer { Value = new SubclassA() }, new SuperclassContainer { Value = new SubclassB() }, new SuperclassContainer { Value = new SubSubclassC(33) } } }; var stream = new MemoryStream(); Serializer.Serialize(stream, expected); stream.Position = 0; var actual = Serializer.Deserialize <RecoverableMissingSubtypeClass <SuperclassContainerWithMissingSubclass> >(stream); var actualItems = actual.Items; Assert.AreEqual(typeof(SubclassA), actualItems[0].Value.GetType()); Assert.IsNull(actualItems[1].Value); Assert.AreEqual(typeof(SubSubclassC), actualItems[2].Value.GetType()); }
public void RecoverableMissingSubtypeTest() { var expected = new RecoverableMissingSubtypeClass<SuperclassContainer> { Items = new List<SuperclassContainer> { new SuperclassContainer {Value = new SubclassA()}, new SuperclassContainer {Value = new SubclassB()}, new SuperclassContainer {Value = new SubSubclassC(33)} } }; var stream = new MemoryStream(); Serializer.Serialize(stream, expected); stream.Position = 0; var actual = Serializer.Deserialize<RecoverableMissingSubtypeClass<SuperclassContainerWithMissingSubclass>>(stream); var actualItems = actual.Items; Assert.AreEqual(typeof(SubclassA), actualItems[0].Value.GetType()); Assert.IsNull(actualItems[1].Value); Assert.AreEqual(typeof(SubSubclassC), actualItems[2].Value.GetType()); }