2007-09-25 Atsushi Enomoto <atsushi@ximian.com>
authorAtsushi Eno <atsushieno@gmail.com>
Tue, 25 Sep 2007 17:56:10 +0000 (17:56 -0000)
committerAtsushi Eno <atsushieno@gmail.com>
Tue, 25 Sep 2007 17:56:10 +0000 (17:56 -0000)
* XmlSerializerTests.cs : another XmlSchemaProvider test; use it
  as a member of an array.

svn path=/trunk/mcs/; revision=86350

mcs/class/System.XML/Test/System.Xml.Serialization/ChangeLog
mcs/class/System.XML/Test/System.Xml.Serialization/XmlSerializerTests.cs

index d32fe791c44ed0040f45b9efb4e8034b7c3de5c0..7b9a171d50fc5309197038176243f6894e9e3bd7 100644 (file)
@@ -1,3 +1,8 @@
+2007-09-25  Atsushi Enomoto  <atsushi@ximian.com>
+
+       * XmlSerializerTests.cs : another XmlSchemaProvider test; use it
+         as a member of an array.
+
 2007-09-25  Atsushi Enomoto  <atsushi@ximian.com>
 
        * XmlSerializerTests.cs : added deserialization test for
index cf4aa520a79be5d742d37bccd25f7d83c9d53841..f945d95bf6712d195588a0bd7d75c7d7cbc735ae 100644 (file)
@@ -2671,6 +2671,16 @@ namespace MonoTests.System.XmlSerialization
                        Assert.AreEqual (Infoset ("<foo />"), WriterText);
                        xs.Deserialize (new StringReader ("<foo/>"));
                }
+
+               [Test]
+               public void XmlSchemaProviderQNameBecomesRootName2 ()
+               {
+                       string xml = "<XmlSchemaProviderQNameBecomesRootNameType2 xmlns:xsi=\"http://www.w3.org/2001/XMLSchema-instance\" xmlns:xsd=\"http://www.w3.org/2001/XMLSchema\"><Foo><foo /></Foo></XmlSchemaProviderQNameBecomesRootNameType2>";
+                       xs = new XmlSerializer (typeof (XmlSchemaProviderQNameBecomesRootNameType2));
+                       Serialize (new XmlSchemaProviderQNameBecomesRootNameType2 ());
+                       Assert.AreEqual (Infoset (xml), WriterText);
+                       xs.Deserialize (new StringReader (xml));
+               }
 #endif
 
                #endregion //GenericsSeralizationTests
@@ -2780,6 +2790,7 @@ namespace MonoTests.System.XmlSerialization
 
                        public void ReadXml (XmlReader reader)
                        {
+                               reader.Skip ();
                        }
 
                        public void WriteXml (XmlWriter writer)
@@ -2788,14 +2799,22 @@ namespace MonoTests.System.XmlSerialization
 
                        public static XmlQualifiedName GetXsdType (XmlSchemaSet xss)
                        {
-                               XmlSchema xs = new XmlSchema ();
-                               XmlSchemaComplexType ct = new XmlSchemaComplexType ();
-                               ct.Name = "foo";
-                               xs.Items.Add (ct);
-                               xss.Add (xs);
+                               if (xss.Count == 0) {
+                                       XmlSchema xs = new XmlSchema ();
+                                       XmlSchemaComplexType ct = new XmlSchemaComplexType ();
+                                       ct.Name = "foo";
+                                       xs.Items.Add (ct);
+                                       xss.Add (xs);
+                               }
                                return new XmlQualifiedName ("foo");
                        }
                }
+
+               public class XmlSchemaProviderQNameBecomesRootNameType2
+               {
+                       [XmlArrayItem (typeof (XmlSchemaProviderQNameBecomesRootNameType))]
+                       public object [] Foo = new object [] {new XmlSchemaProviderQNameBecomesRootNameType ()};
+               }
 #endif
 
                void CDataTextNodes_BadNode (object s, XmlNodeEventArgs e)