Author: lluis
Date: 2005-03-29 06:42:18 -0500 (Tue, 29 Mar 2005)
New Revision: 42329
Modified:
trunk/mcs/class/System.XML/Test/System.Xml.Serialization/ChangeLog
trunk/mcs/class/System.XML/Test/System.Xml.Serialization/DeserializeTests.cs
trunk/mcs/class/System.XML/Test/System.Xml.Serialization/XmlSerializerTestClasses.cs
trunk/mcs/class/System.XML/Test/System.Xml.Serialization/XmlSerializerTests.cs
Log:
2005-03-29 Lluis Sanchez Gual <[EMAIL PROTECTED]>
* XmlSerializerTests.cs:
* DeserializeTests.cs:
* XmlSerializerTestClasses.cs: Added some tests for xml node
serialization.
Modified: trunk/mcs/class/System.XML/Test/System.Xml.Serialization/ChangeLog
===================================================================
--- trunk/mcs/class/System.XML/Test/System.Xml.Serialization/ChangeLog
2005-03-29 11:41:57 UTC (rev 42328)
+++ trunk/mcs/class/System.XML/Test/System.Xml.Serialization/ChangeLog
2005-03-29 11:42:18 UTC (rev 42329)
@@ -1,3 +1,9 @@
+2005-03-29 Lluis Sanchez Gual <[EMAIL PROTECTED]>
+
+ * XmlSerializerTests.cs:
+ * DeserializeTests.cs:
+ * XmlSerializerTestClasses.cs: Added some tests for xml node
serialization.
+
2005-02-28 Atsushi Enomoto <[EMAIL PROTECTED]>
* XmlReflectionImporterTests.cs : set NotWorking for trivial empty
Modified:
trunk/mcs/class/System.XML/Test/System.Xml.Serialization/DeserializeTests.cs
===================================================================
---
trunk/mcs/class/System.XML/Test/System.Xml.Serialization/DeserializeTests.cs
2005-03-29 11:41:57 UTC (rev 42328)
+++
trunk/mcs/class/System.XML/Test/System.Xml.Serialization/DeserializeTests.cs
2005-03-29 11:42:18 UTC (rev 42329)
@@ -136,5 +136,46 @@
DeserializeEncoded (typeof(Sample), s);
}
+
+ [Test]
+ public void TestDeserializeXmlNodeArray ()
+ {
+ object ob = Deserialize (typeof(object), "<anyType
at=\"1\"><elem1/><elem2/></anyType>");
+ Assertion.Assert ("Is node array", ob is XmlNode[]);
+
+ XmlNode[] nods = (XmlNode[]) ob;
+ Assertion.AssertEquals ("lengh", 3, nods.Length);
+ Assertion.Assert ("#1", nods[0] is XmlAttribute);
+ Assertion.AssertEquals ("#2", "at",
((XmlAttribute)nods[0]).LocalName);
+ Assertion.AssertEquals ("#3", "1",
((XmlAttribute)nods[0]).Value);
+ Assertion.Assert ("#4", nods[1] is XmlElement);
+ Assertion.AssertEquals ("#5", "elem1",
((XmlElement)nods[1]).LocalName);
+ Assertion.Assert ("#6", nods[2] is XmlElement);
+ Assertion.AssertEquals ("#7", "elem2",
((XmlElement)nods[2]).LocalName);
+ }
+
+ [Test]
+ public void TestDeserializeXmlElement ()
+ {
+ object ob = Deserialize (typeof(XmlElement), "<elem/>");
+ Assertion.Assert ("#1", ob is XmlElement);
+ Assertion.AssertEquals ("#2", "elem",
((XmlElement)ob).LocalName);
+ }
+
+ [Test]
+ public void TestDeserializeXmlCDataSection ()
+ {
+ CDataContainer c = (CDataContainer) Deserialize
(typeof(CDataContainer), "<CDataContainer
xmlns:xsd='http://www.w3.org/2001/XMLSchema'
xmlns:xsi='http://www.w3.org/2001/XMLSchema-instance'><cdata><![CDATA[data
section contents]]></cdata></CDataContainer>");
+ Assertion.AssertNotNull ("#1", c.cdata);
+ Assertion.AssertEquals ("#2", "data section contents",
c.cdata.Value);
+ }
+
+ [Test]
+ public void TestDeserializeXmlNode ()
+ {
+ NodeContainer c = (NodeContainer) Deserialize
(typeof(NodeContainer), "<NodeContainer
xmlns:xsd='http://www.w3.org/2001/XMLSchema'
xmlns:xsi='http://www.w3.org/2001/XMLSchema-instance'><node>text</node></NodeContainer>");
+ Assertion.Assert ("#1", c.node is XmlText);
+ Assertion.AssertEquals ("#2", "text", c.node.Value);
+ }
}
}
Modified:
trunk/mcs/class/System.XML/Test/System.Xml.Serialization/XmlSerializerTestClasses.cs
===================================================================
---
trunk/mcs/class/System.XML/Test/System.Xml.Serialization/XmlSerializerTestClasses.cs
2005-03-29 11:41:57 UTC (rev 42328)
+++
trunk/mcs/class/System.XML/Test/System.Xml.Serialization/XmlSerializerTestClasses.cs
2005-03-29 11:42:18 UTC (rev 42329)
@@ -12,6 +12,7 @@
using System;
using System.Collections;
using System.Xml.Serialization;
+using System.Xml;
namespace MonoTests.System.Xml.TestClasses
{
@@ -115,5 +116,36 @@
public Container2 (bool b) {
Items = new MyList(this);
}
- }
+ }
+
+ public class MyElem: XmlElement
+ {
+ public MyElem (XmlDocument doc): base ("","myelem","", doc)
+ {
+ SetAttribute ("aa","1");
+ }
+
+ [XmlAttribute]
+ public int kk=1;
+ }
+
+ public class MyDocument: XmlDocument
+ {
+ public MyDocument ()
+ {
+ }
+
+ [XmlAttribute]
+ public int kk=1;
+ }
+
+ public class CDataContainer
+ {
+ public XmlCDataSection cdata;
+ }
+
+ public class NodeContainer
+ {
+ public XmlNode node;
+ }
}
Modified:
trunk/mcs/class/System.XML/Test/System.Xml.Serialization/XmlSerializerTests.cs
===================================================================
---
trunk/mcs/class/System.XML/Test/System.Xml.Serialization/XmlSerializerTests.cs
2005-03-29 11:41:57 UTC (rev 42328)
+++
trunk/mcs/class/System.XML/Test/System.Xml.Serialization/XmlSerializerTests.cs
2005-03-29 11:42:18 UTC (rev 42329)
@@ -651,8 +651,55 @@
Serialize(XmlSchemaForm.Unqualified);
AssertEquals(Infoset("<XmlSchemaForm>unqualified</XmlSchemaForm>"), WriterText);
+ }
+
+ [Test]
+ public void TestSerializeXmlNodeArray ()
+ {
+ XmlDocument doc = new XmlDocument ();
+ Serialize (new XmlNode [] { doc.CreateAttribute("at"),
doc.CreateElement("elem1"), doc.CreateElement("elem2") }, typeof(object));
+ AssertEquals(Infoset("<anyType
at=\"\"><elem1/><elem2/></anyType>"), WriterText);
}
+
+ [Test]
+ public void TestSerializeXmlElement ()
+ {
+ XmlDocument doc = new XmlDocument ();
+ Serialize (doc.CreateElement("elem"),
typeof(XmlElement));
+ AssertEquals(Infoset("<elem/>"), WriterText);
+ }
+
+ [Test]
+ public void TestSerializeXmlElementSubclass ()
+ {
+ XmlDocument doc = new XmlDocument ();
+ Serialize (new MyElem (doc), typeof(XmlElement));
+ AssertEquals(Infoset("<myelem aa=\"1\"/>"), WriterText);
+
+ Serialize (new MyElem (doc), typeof(MyElem));
+ AssertEquals(Infoset("<myelem aa=\"1\"/>"), WriterText);
+ }
+ [Test]
+ public void TestSerializeXmlCDataSection ()
+ {
+ XmlDocument doc = new XmlDocument ();
+ CDataContainer c = new CDataContainer ();
+ c.cdata = doc.CreateCDataSection("data section
contents");
+ Serialize (c);
+ AssertEquals(Infoset("<CDataContainer
xmlns:xsd='http://www.w3.org/2001/XMLSchema'
xmlns:xsi='http://www.w3.org/2001/XMLSchema-instance'><cdata><![CDATA[data
section contents]]></cdata></CDataContainer>"), WriterText);
+ }
+
+ [Test]
+ public void TestSerializeXmlNode ()
+ {
+ XmlDocument doc = new XmlDocument ();
+ NodeContainer c = new NodeContainer ();
+ c.node = doc.CreateTextNode("text");
+ Serialize (c);
+ AssertEquals(Infoset("<NodeContainer
xmlns:xsd='http://www.w3.org/2001/XMLSchema'
xmlns:xsi='http://www.w3.org/2001/XMLSchema-instance'><node>text</node></NodeContainer>"),
WriterText);
+ }
+
public static string Infoset (string sx)
{
XmlDocument doc = new XmlDocument ();
_______________________________________________
Mono-patches maillist - [email protected]
http://lists.ximian.com/mailman/listinfo/mono-patches