public void PolymorphismStruct() { PolymorphismTestClass a = new PolymorphismTestClass { A = new ThreeAttrsTestStruct { A = 1, B = "test", C = NanoState.SerializeSet } }; XmlDocument target = new XmlDocument(); Serializer.Serialize((SystemXmlAdapter)target, a); Assert.AreEqual(2, target.DocumentElement.ChildNodes.Count); XmlElement aEl = GetElement(target, "A"); Assert.NotNull(aEl); Assert.AreEqual(0, aEl.ChildNodes.Count); Assert.AreEqual(4, aEl.Attributes.Count); Assert.AreEqual("1", aEl.GetAttribute("A")); Assert.AreEqual("test", aEl.GetAttribute("B")); Assert.AreEqual("SerializeSet", aEl.GetAttribute("C")); PolymorphismTestClass b = Deserializer.Deserialize <PolymorphismTestClass>((SystemXmlAdapter)target); Assert.AreEqual(((ThreeAttrsTestStruct)a.A).A, ((ThreeAttrsTestStruct)b.A).A); Assert.AreEqual(((ThreeAttrsTestStruct)a.A).B, ((ThreeAttrsTestStruct)b.A).B); Assert.AreEqual(((ThreeAttrsTestStruct)a.A).C, ((ThreeAttrsTestStruct)b.A).C); }
public void PolymorphismObject() { PolymorphismTestClass a = new PolymorphismTestClass { A = new CustomConstructorTestClass("testString", NanoState.Serialize, 333), }; XmlDocument target = new XmlDocument(); Serializer.Serialize((SystemXmlAdapter)target, a); Assert.AreEqual(2, target.DocumentElement.ChildNodes.Count); XmlElement aEl = GetElement(target, "A"); Assert.NotNull(aEl); Assert.AreEqual(1, aEl.ChildNodes.Count); Assert.AreEqual(3, aEl.Attributes.Count); Assert.AreEqual("333", GetXmlValue(aEl, "A")); Assert.AreEqual("testString", aEl.GetAttribute("B")); Assert.AreEqual("Serialize", aEl.GetAttribute("C")); PolymorphismTestClass b = Deserializer.Deserialize <PolymorphismTestClass>((SystemXmlAdapter)target); Assert.AreEqual(((CustomConstructorTestClass)a.A).A, ((CustomConstructorTestClass)b.A).A); Assert.AreEqual(((CustomConstructorTestClass)a.A).B, ((CustomConstructorTestClass)b.A).B); Assert.AreEqual(((CustomConstructorTestClass)a.A).C, ((CustomConstructorTestClass)b.A).C); }
public void PolymorphismString() { PolymorphismTestClass a = new PolymorphismTestClass { A = "test", }; XmlDocument target = new XmlDocument(); Serializer.Serialize((SystemXmlAdapter)target, a); Assert.AreEqual(2, target.DocumentElement.ChildNodes.Count); XmlElement aEl = GetElement(target, "A"); Assert.NotNull(aEl); Assert.AreEqual(1, aEl.Attributes.Count); Assert.AreEqual(1, aEl.ChildNodes.Count); Assert.AreEqual("1", aEl.GetAttribute(SerializationBase.ATTRIBUTE_TYPE)); Assert.AreEqual("test", aEl.InnerText); PolymorphismTestClass b = Deserializer.Deserialize <PolymorphismTestClass>((SystemXmlAdapter)target); Assert.AreEqual(a.A, b.A); }
public void CrossReference() { CustomConstructorTestClass obj = new CustomConstructorTestClass("testString", NanoState.Serialize, 333); PolymorphismTestClass a = new PolymorphismTestClass { A = obj, B = obj, }; XmlDocument target = new XmlDocument(); Serializer.Serialize((SystemXmlAdapter)target, a); Assert.AreEqual(3, target.DocumentElement.ChildNodes.Count); XmlElement aEl = GetElement(target, "A"); Assert.NotNull(aEl); Assert.AreEqual(1, aEl.ChildNodes.Count); Assert.AreEqual(3, aEl.Attributes.Count); Assert.AreEqual("333", GetXmlValue(aEl, "A")); Assert.AreEqual("testString", aEl.GetAttribute("B")); Assert.AreEqual("Serialize", aEl.GetAttribute("C")); XmlElement bEl = GetElement(target, "B"); Assert.NotNull(bEl); Assert.AreEqual(0, bEl.ChildNodes.Count); Assert.AreEqual(1, bEl.Attributes.Count); Assert.AreEqual("2", bEl.GetAttribute(SerializationBase.ATTRIBUTE_OBJID)); PolymorphismTestClass b = Deserializer.Deserialize <PolymorphismTestClass>((SystemXmlAdapter)target); Assert.AreEqual(((CustomConstructorTestClass)a.A).A, ((CustomConstructorTestClass)b.A).A); Assert.AreEqual(((CustomConstructorTestClass)a.A).B, ((CustomConstructorTestClass)b.A).B); Assert.AreEqual(((CustomConstructorTestClass)a.A).C, ((CustomConstructorTestClass)b.A).C); Assert.AreEqual(b.A, b.B); }
public void CrossReference() { CustomConstructorTestClass obj = new CustomConstructorTestClass("testString", NanoState.Serialize, 333); PolymorphismTestClass a = new PolymorphismTestClass { A = obj, B = obj, }; JObject target = new JObject(); Serializer.Serialize((NewtonsoftJsonAdapter)target, a); AssertChildren(3, target); JObject aEl = (JObject)target["A"]; Assert.NotNull(aEl); AssertChildren(4, aEl); AssertChild("333", "A", aEl); AssertAttribute("testString", "B", aEl); AssertAttribute("Serialize", "C", aEl); JObject bEl = (JObject)target["B"]; Assert.NotNull(bEl); AssertChildren(1, aEl); AssertAttribute("2", SerializationBase.ATTRIBUTE_OBJID, bEl); PolymorphismTestClass b = Deserializer.Deserialize <PolymorphismTestClass>((NewtonsoftJsonAdapter)target); Assert.AreEqual(((CustomConstructorTestClass)a.A).A, ((CustomConstructorTestClass)b.A).A); Assert.AreEqual(((CustomConstructorTestClass)a.A).B, ((CustomConstructorTestClass)b.A).B); Assert.AreEqual(((CustomConstructorTestClass)a.A).C, ((CustomConstructorTestClass)b.A).C); Assert.AreEqual(b.A, b.B); }
public void SelfReference() { PolymorphismTestClass a = new PolymorphismTestClass(); a.A = a; XmlDocument target = new XmlDocument(); Serializer.Serialize((SystemXmlAdapter)target, a); Assert.AreEqual(1, target.DocumentElement.ChildNodes.Count); XmlElement aEl = GetElement(target, "A"); Assert.NotNull(aEl); Assert.AreEqual(0, aEl.ChildNodes.Count); Assert.AreEqual(1, aEl.Attributes.Count); Assert.AreEqual("1", aEl.GetAttribute(SerializationBase.ATTRIBUTE_OBJID)); PolymorphismTestClass b = Deserializer.Deserialize <PolymorphismTestClass>((SystemXmlAdapter)target); Assert.AreEqual(b.A, b); }