Merge pull request #925 from ermshiperete/novell-bug-602934
[mono.git] / mcs / class / System.XML / Test / System.Xml.Serialization / XmlSerializationReaderTests.cs
index 5d094084251c1843a2a69570267e895037609460..53e29d209c771ddf41db4af7f2d82c0097a4ea01 100644 (file)
@@ -123,6 +123,9 @@ namespace MonoTests.System.XmlSerialization
                }
 
                [Test]
+#if ONLY_1_1
+               [Category ("NotDotNet")] // hangs on .NET 1.1
+#endif
                public void HandleOutAttributeParameters ()
                {
                        XmlReflectionMember m = new XmlReflectionMember ();
@@ -148,6 +151,59 @@ namespace MonoTests.System.XmlSerialization
                        Assert.AreEqual (1, arr.Length, "#5");
                        Assert.AreEqual ("doh", arr [0], "#6");
                }
+
+               [Test]
+               public void ExplicitlyOrderedMembers1 ()
+               {
+                       var xs = new XmlSerializer (typeof (ExplicitlyOrderedMembersType1));
+                       var result = (ExplicitlyOrderedMembersType1) xs.Deserialize(new StringReader (@"
+<root>
+       <child>Hello</child>
+       <child>World</child>
+       <child0>test</child0>
+</root>"));
+                       Assert.AreEqual ("Hello", result.Child1, "#1");
+                       Assert.AreEqual ("World", result.Child2, "#2");
+                       Assert.AreEqual ("test", result.Child0, "#3");
+               }
+
+               [Test]
+               [ExpectedException (typeof (InvalidOperationException))]
+               public void ExplicitlyOrderedMembers2 ()
+               {
+                       new XmlSerializer (typeof (ExplicitlyOrderedMembersType2));
+               }
+
+               [Test]
+               public void ExplicitlyOrderedMembers3 ()
+               {
+                       var xs = new XmlSerializer (typeof (ExplicitlyOrderedMembersType3));
+                       var result = (ExplicitlyOrderedMembersType3) xs.Deserialize(new StringReader (@"
+<root>
+       <child>Hello</child>
+       <child>World</child>
+       <child0>test</child0>
+</root>"));
+                       Assert.AreEqual ("Hello", result.Child1, "#1");
+                       Assert.AreEqual ("World", result.Child2, "#2");
+                       Assert.IsNull (result.Child0, "#3"); // not "test"
+               }
+
+               [Test]
+               public void ExplicitlyOrderedMembers4 ()
+               {
+                       var xs = new XmlSerializer (typeof (ExplicitlyOrderedMembersType4));
+                       //Would result in an Inconsistent XML sequence error , see Bug 707434
+                       var result = (ExplicitlyOrderedMembersType4) xs.Deserialize(new StringReader (@"
+<root>
+       <child>Hello</child>
+       <child>World</child>
+       <child0>test</child0>
+</root>"));
+                       Assert.AreEqual ("Hello", result.Child1, "#1");
+                       Assert.AreEqual ("World", result.Child2, "#2");
+                       Assert.IsNull (result.Child0, "#3"); // not "test"
+               }
        }
 
        public class XmlSerializarionReaderTester : XmlSerializationReader