public void TestExternalSurrogate() { var x = new CStdBaseObject { Name = "Alyssa", Age = 21 }; var c = new CSerializationContext(); var s = new CSerializer(c); var doc = s.Serialize(x); Print(doc); var elem = doc.DocumentElement; Assert.AreEqual(2, elem.ChildNodes.Count, "Child Node Count is wrong"); Assert.AreEqual(x.Name, XmlExtensions.GetElementValue(elem, "Name"), "Name"); Assert.AreEqual(x.Age.ToString(), XmlExtensions.GetElementValue(elem, "Age"), "Age"); Console.WriteLine( "\r\n\r\n-----------------------------------------------------------------------------\r\n\r\n"); c.RegisterExternalSurrogate(typeof(CStdBaseObject), new CStdExternalSurrogate()); doc = s.Serialize(x); Print(doc); elem = doc.DocumentElement; Assert.AreEqual(0, elem.ChildNodes.Count, "Child Node Count is wrong"); Assert.AreEqual(x.Name, XmlExtensions.GetAttributeValue(elem, "NAME"), "Name"); Assert.AreEqual(x.Age.ToString(), XmlExtensions.GetAttributeValue(elem, "AGE"), "Age"); }
public void TestExternalBaseSurrogate() { var x = new CMySuperStd { Name = "Alyssa", Age = 21, Sex = "Yes" }; var c = new CSerializationContext(); var s = new CSerializer(c); var doc = s.Serialize(x); Print(doc); var elem = doc.DocumentElement; Assert.AreEqual(3, elem.ChildNodes.Count, "Child Node Count is wrong"); Assert.AreEqual(x.Name, XmlExtensions.GetElementValue(elem, "Name"), "Name"); Assert.AreEqual(x.Age.ToString(), XmlExtensions.GetElementValue(elem, "Age"), "Age"); Assert.AreEqual(x.Sex, XmlExtensions.GetElementValue(elem, "Sex"), "Sex"); PrintLine(); c.RegisterExternalSurrogate(typeof(CStdBaseObject), new CStdExternalSurrogate()); doc = s.Serialize(x); Print(doc); elem = doc.DocumentElement; Assert.AreEqual(1, elem.ChildNodes.Count, "Child Node Count is wrong"); Assert.AreEqual(x.Name, XmlExtensions.GetAttributeValue(elem, "NAME"), "Name"); Assert.AreEqual(x.Age.ToString(), XmlExtensions.GetAttributeValue(elem, "AGE"), "Age"); Assert.AreEqual(x.Sex, XmlExtensions.GetElementValue(elem, "Sex"), "Sex"); }
public void GetElementValueTest() { var actual = XmlExtensions.GetElementValue(m_xml, "/a/b"); Assert.AreEqual <string>("Bear", actual, "The value of /a/b is wrong"); var shouldBeNull = XmlExtensions.GetElementValue(m_xml, "/a/ff"); Assert.IsNull(shouldBeNull, "Should be null when the element can't be found"); }
public void TestCPersonExplicitArrays() { var x = new CPerson(); var c = new CSerializationContext { FixM_ = true, AllArraysHaveExplicitElements = true, ArrayElementsIncludeIndicies = true }; var s = new CSerializer(c); var doc = s.Serialize(x); Print(doc); var elem = doc.DocumentElement; Assert.AreEqual(x.m_name, XmlExtensions.GetElementValue(elem, "Name"), "Name"); Assert.AreEqual(x.m_age.ToString(), XmlExtensions.GetElementValue(elem, "Age"), "Age"); var e = (XmlElement)elem.SelectSingleNode("KidsNames"); Assert.IsNotNull(e, "Missing KidsNames element"); Assert.AreEqual("3", XmlExtensions.GetAttributeValue(e, s.Context.ArrayAttributeName), "Kids Array Count"); for (var i = 0; i < x.m_kidsNames.Length; i++) { Assert.AreEqual(x.m_kidsNames[i], e.ChildNodes[i].InnerText, "Kid " + i); Assert.AreEqual(i.ToString(), XmlExtensions.GetAttributeValue(e.ChildNodes[i], s.Context.ArrayIndexAttributeName), "Array Index " + i); } e = (XmlElement)elem.SelectSingleNode("ANullValue"); Assert.IsNotNull(e, "Missing ANullValue element"); Assert.AreEqual(s.Context.NullAttributeValue, XmlExtensions.GetAttributeValue(e, s.Context.NullAttributeName), "Null Attribute Error"); e = (XmlElement)elem.SelectSingleNode("Address"); Assert.IsNotNull(e, "Missing Address element"); Assert.AreEqual(x.m_address.m_city, XmlExtensions.GetElementValue(e, "City"), "Address-City"); Assert.AreEqual(x.m_address.m_street, XmlExtensions.GetElementValue(e, "Street"), "Address-Street"); Assert.AreEqual(x.m_address.m_zip.ToString(), XmlExtensions.GetElementValue(e, "Zip"), "Address-Zip"); e = (XmlElement)elem.SelectSingleNode("OtherAddress"); Assert.IsNotNull(e, "Other Address Missing"); var sa = x.m_otherAddress as CSuperAddress; Assert.AreEqual(sa.m_country, XmlExtensions.GetElementValue(e, "Country"), "OtherAddress-Country"); Assert.AreEqual(sa.m_city, XmlExtensions.GetElementValue(e, "City"), "Address-City"); Assert.AreEqual(sa.m_street, XmlExtensions.GetElementValue(e, "Street"), "Address-Street"); Assert.AreEqual(sa.m_zip.ToString(), XmlExtensions.GetElementValue(e, "Zip"), "Address-Zip"); }
public bool Deserialize(CWorkingObject _workingObject, XmlElement _parentNode, CDeserializer _framework) { _framework.IgnoreField("FriendPerson"); var sIdx = XmlExtensions.GetElementValue(_parentNode, "FriendPerson"); var idx = int.Parse(sIdx); if (m_indicies == null) { m_indicies = new List <int>(); } m_indicies.Add(idx); return(false); }
public void TestCPerson() { var x = new CPerson(); CSerializationContext.Global.FixM_ = true; var s = new CSerializer(); var doc = s.Serialize(x); Print(doc); var elem = doc.DocumentElement; Assert.AreEqual(x.m_name, XmlExtensions.GetElementValue(elem, "Name"), "Name"); Assert.AreEqual(x.m_age.ToString(), XmlExtensions.GetElementValue(elem, "Age"), "Age"); var e = (XmlElement)elem.SelectSingleNode("KidsNames"); Assert.IsNotNull(e, "Missing KidsNames element"); Assert.AreEqual("3", XmlExtensions.GetAttributeValue(e, s.Context.ArrayAttributeName), "Kids Array Count"); Assert.AreEqual("Maggie,Lisa,Bart", e.InnerText, "Kids Names"); e = (XmlElement)elem.SelectSingleNode("KidsAges"); Assert.IsNotNull(e, "Missing KidsNames element"); Assert.AreEqual("3", XmlExtensions.GetAttributeValue(e, s.Context.ArrayAttributeName), "KidsAges Array Count"); Assert.AreEqual("1,7,9", e.InnerText, "Kids Names"); e = (XmlElement)elem.SelectSingleNode("ANullValue"); Assert.IsNotNull(e, "Missing ANullValue element"); Assert.AreEqual(s.Context.NullAttributeValue, XmlExtensions.GetAttributeValue(e, s.Context.NullAttributeName), "Null Attribute Error"); e = (XmlElement)elem.SelectSingleNode("Address"); Assert.IsNotNull(e, "Missing Address element"); Assert.AreEqual(x.m_address.m_city, XmlExtensions.GetElementValue(e, "City"), "Address-City"); Assert.AreEqual(x.m_address.m_street, XmlExtensions.GetElementValue(e, "Street"), "Address-Street"); Assert.AreEqual(x.m_address.m_zip.ToString(), XmlExtensions.GetElementValue(e, "Zip"), "Address-Zip"); e = (XmlElement)elem.SelectSingleNode("OtherAddress"); Assert.IsNotNull(e, "Other Address Missing"); var sa = x.m_otherAddress as CSuperAddress; Assert.AreEqual(sa.m_country, XmlExtensions.GetElementValue(e, "Country"), "OtherAddress-Country"); Assert.AreEqual(sa.m_city, XmlExtensions.GetElementValue(e, "City"), "Address-City"); Assert.AreEqual(sa.m_street, XmlExtensions.GetElementValue(e, "Street"), "Address-Street"); Assert.AreEqual(sa.m_zip.ToString(), XmlExtensions.GetElementValue(e, "Zip"), "Address-Zip"); }
public void TestCircularReference() { var a = new CLinkedList { Data = 69 }; var b = new CLinkedList { Data = 70 }; a.Next = b; b.Next = a; var c = new CSerializationContext(); c.SetVerbose(); var s = new CSerializer(c); var doc = s.Serialize(a); Print(doc); var elem = doc.DocumentElement; var id = XmlExtensions.GetAttributeValue(elem, c.ReferenceIdAttributeName); Assert.AreEqual("69", XmlExtensions.GetElementValue(elem, "Data"), "The first node's data is wrong"); var e2 = (XmlElement)elem.SelectSingleNode("Next"); Assert.AreEqual("70", XmlExtensions.GetElementValue(e2, "Data"), "The second node's data is wrong"); var e3 = (XmlElement)e2.SelectSingleNode("Next"); var rid = XmlExtensions.GetAttributeValue(e3, c.ReferToAttributeName); Assert.AreEqual(id, rid, "The reference to the first node is wrong"); }