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