Пример #1
0
        public void TestArrayEmbedded()
        {
            var       xml = new CXmlDeserializer();
            var       ser = new CXmlSerializer();
            SArrayEmb foo = xml.DeserializeString <SArrayEmb>(_XmlListEmb);

            Assert.AreEqual(foo.Ints.Length, 1, "Deserialization failed");
            Assert.AreEqual(foo.Ints[0].I, 1, "Deserialization failed");
            string res = ser.Serialize(foo);

            Assert.AreEqual(_XmlListEmb, res, "Serialization failed");
            foo = xml.DeserializeString <SArrayEmb>(_XmlListEmb2);
            Assert.AreEqual(foo.Ints.Length, 2, "Deserialization failed");
            Assert.AreEqual(foo.Ints[1].I, 2, "Deserialization failed");
            res = ser.Serialize(foo);
            Assert.AreEqual(_XmlListEmb2, res, "Serialization failed");
            foo = xml.DeserializeString <SArrayEmb>(_XmlListEmb3);
            Assert.AreEqual(foo.Ints.Length, 0, "Deserialization failed");
            res = ser.Serialize(foo);
            Assert.AreEqual(_XmlListEmb3, res, "Serialization failed");
            ser      = new CXmlSerializer(true);
            foo.Ints = new SEntry[0];
            res      = ser.Serialize(foo);
            Assert.AreEqual(_XmlListEmb4, res, "Serialization failed");
            _AssertFail <SArrayEmb, CXmlException>(_Empty);
        }
Пример #2
0
        public void TestBasic()
        {
            const string s          = @"<root>
  <I>1</I>
  <S>2</S>
  <F>3</F>
  <D>4</D>
</root>";
            const string sUnordered = @"<root>
  <D>4</D>
  <I>1</I>
  <F>3</F>
  <S>2</S>
</root>";
            var          xml        = new CXmlDeserializer();
            SBasic       foo        = xml.DeserializeString <SBasic>(s);

            Assert.AreEqual(1, foo.I);
            Assert.AreEqual("2", foo.S);
            Assert.AreEqual(3, foo.F, 0.0001);
            Assert.AreEqual(4, foo.D, 0.0001);
            foo = xml.DeserializeString <SBasic>(sUnordered);
            Assert.AreEqual(1, foo.I);
            Assert.AreEqual("2", foo.S);
            Assert.AreEqual(3, foo.F, 0.0001);
            Assert.AreEqual(4, foo.D, 0.0001);
        }
Пример #3
0
        public void TestDefaultValues()
        {
            const string s = _Head + @"<root>
  <I>1</I>
  <S>2</S>
  <F>3</F>
  <D>4</D>
  <Sub>
    <I>22</I>
  </Sub>
</root>";

            _AssertSerDeserMatch <SDefault>(s);
            var      xml = new CXmlDeserializer(new CXmlErrorHandler(exception => { }));
            SDefault foo = xml.DeserializeString <SDefault>(@"<root />");

            Assert.AreEqual(foo.I, 1337);
            Assert.AreEqual(foo.F, null);
            Assert.AreEqual(foo.S, "Foo");
            Assert.AreEqual(foo.D, 666);
            Assert.AreEqual(foo.Sub.I, 111);
            string newXml = new CXmlSerializer().Serialize(foo);

            Assert.AreEqual(_Head + @"<root>
  <Sub />
</root>", newXml);
        }
Пример #4
0
        private bool _ConvertProfile(ref Exception e)
        {
            var xml = new CXmlDeserializer();
            var ser = new CXmlSerializer();

            try
            {
                var    old    = xml.Deserialize <SOldXmlProfile>(FilePath);
                string newXml = ser.Serialize(old.Info);
                xml.DeserializeString(newXml, this);
                if (ID == null)
                {
                    ID = Guid.NewGuid();
                }
                ser.Serialize(FilePath, this);
            }
            catch (Exception e2)
            {
                if (!(e2 is CXmlException))
                {
                    e = e2;
                }
                return(false);
            }
            return(true);
        }
Пример #5
0
#pragma warning restore 169
#pragma warning restore 649

        private static void _AssertFail <T, T2>(String xmlString) where T2 : Exception where T : new()
        {
            var deserializer = new CXmlDeserializer();

            Exception exception =
                Assert.Catch(() => deserializer.DeserializeString <T>(xmlString));

            Assert.IsInstanceOf(typeof(T2), exception);
        }
Пример #6
0
        private static T _AssertSerDeserMatch <T>(string xmlString) where T : new()
        {
            var    deserializer = new CXmlDeserializer();
            var    serializer   = new CXmlSerializer();
            T      foo          = deserializer.DeserializeString <T>(xmlString);
            string xmlNew       = serializer.Serialize(foo);

            Assert.AreEqual(xmlString, xmlNew);
            return(foo);
        }
Пример #7
0
        public void TestExisting()
        {
            var foo = new SIgnore {
                I = 1
            };
            var     xml = new CXmlDeserializer();
            var     ser = new CXmlSerializer();
            SIgnore bar = xml.DeserializeString(_XmlIgnore, foo);

            Assert.AreEqual(1, bar.I);
            Assert.AreEqual(_XmlIgnore, ser.Serialize(bar));

            var foo2 = new CIgnore {
                I = 1
            };
            CIgnore bar2 = xml.DeserializeString(_XmlIgnore, foo2);

            Assert.AreEqual(1, bar2.I);
            Assert.AreEqual(foo2.J, bar2.J, "Original classes should be modified by the deserialization");
            Assert.AreEqual(_XmlIgnore, ser.Serialize(bar2));
        }
Пример #8
0
        public void TestArray()
        {
            var    xml = new CXmlDeserializer();
            var    ser = new CXmlSerializer();
            SArray foo = xml.DeserializeString <SArray>(_XmlList[0]);

            Assert.AreEqual(foo.Ints.Length, 2, "Deserialization failed");
            Assert.AreEqual(foo.Ints[0].I, 1, "Deserialization failed");
            Assert.AreEqual(foo.Ints[1].I, 1, "Deserialization failed");
            string res = ser.Serialize(foo);

            Assert.AreEqual(_XmlList[0], res, "Serialization failed");
            foo = xml.DeserializeString <SArray>(_XmlList[1]);
            Assert.AreEqual(foo.Ints.Length, 0, "Deserialization2 failed");
            res = ser.Serialize(foo);
            Assert.AreEqual(_XmlList[2], res, "Serialization2 failed");
            foo = xml.DeserializeString <SArray>(_XmlList[2]);
            Assert.AreEqual(foo.Ints.Length, 0, "Deserialization2 failed");
            res = ser.Serialize(foo);
            Assert.AreEqual(_XmlList[2], res, "Serialization2 failed");
            _AssertFail <SArray, CXmlException>(_Empty);
        }
Пример #9
0
        public void TestList()
        {
            var   xml = new CXmlDeserializer();
            var   ser = new CXmlSerializer();
            SList foo = xml.DeserializeString <SList>(_XmlList[0]);

            Assert.AreEqual(foo.Ints.Count, 2, "Deserialization failed");
            Assert.AreEqual(foo.Ints[0].I, 1, "Deserialization failed");
            Assert.AreEqual(foo.Ints[1].I, 1, "Deserialization failed");
            string res = ser.Serialize(foo);

            Assert.AreEqual(_XmlList[0], res, "Serialization failed");
            foo = xml.DeserializeString <SList>(_XmlList[1]);
            Assert.AreEqual(foo.Ints.Count, 0, "Deserialization2 failed");
            res = ser.Serialize(foo);
            Assert.AreEqual(_XmlList[2], res, "Serialization2 failed");
            foo = xml.DeserializeString <SList>(_XmlList[2]);
            Assert.AreEqual(foo.Ints.Count, 0, "Deserialization2 failed");
            _AssertSerDeserMatch <SList>(_XmlList[2]);
            res = ser.Serialize(foo);
            Assert.AreEqual(_XmlList[2], res, "Serialization2 failed");
            _AssertFail <SList, CXmlException>(_Empty);
        }
Пример #10
0
#pragma warning restore 169
#pragma warning restore 649

        private static void _AssertFail <T, T2>(String xmlString) where T2 : Exception where T : new()
        {
            var deserializer = new CXmlDeserializer();

            CTestHelpers.AssertFail <T2>(() => deserializer.DeserializeString <T>(xmlString));
        }