コード例 #1
0
    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());
    }
コード例 #2
0
        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());
        }