2006-11-01 Atsushi Enomoto <atsushi@ximian.com>
authorAtsushi Eno <atsushieno@gmail.com>
Wed, 1 Nov 2006 20:05:41 +0000 (20:05 -0000)
committerAtsushi Eno <atsushieno@gmail.com>
Wed, 1 Nov 2006 20:05:41 +0000 (20:05 -0000)
* XmlSerializerImplementationTests.cs : new testfixture.

* SchemaImporterExtensionCollectionTests.cs,
  SchemaImporterExtensionTests.cs : new testfixtures.

* System.Xml_test.dll.sources : added following tests:
  - XmlSerializerImplementationTests.cs
  - SchemaImporterExtensionTests.cs
  - SchemaImporterExtensionCollectionTests.cs

svn path=/branches/atsushi/mcs/; revision=67235

mcs/class/System.XML/ChangeLog
mcs/class/System.XML/System.Xml_test.dll.sources
mcs/class/System.XML/Test/System.Xml.Serialization.Advanced/ChangeLog [new file with mode: 0644]
mcs/class/System.XML/Test/System.Xml.Serialization.Advanced/SchemaImporterExtensionCollectionTests.cs [new file with mode: 0644]
mcs/class/System.XML/Test/System.Xml.Serialization.Advanced/SchemaImporterExtensionTests.cs [new file with mode: 0644]
mcs/class/System.XML/Test/System.Xml.Serialization/ChangeLog
mcs/class/System.XML/Test/System.Xml.Serialization/XmlSerializerImplementationTests.cs [new file with mode: 0644]

index 6a01d0b8ebecf5ea281a14c352a9b33fee884671..84d798cf860555fde42426108562e60e26bdbea2 100644 (file)
@@ -1,3 +1,10 @@
+2006-11-01  Atsushi Enomoto  <atsushi@ximian.com>
+
+       * System.Xml_test.dll.sources : added following tests:
+         - XmlSerializerImplementationTests.cs
+         - SchemaImporterExtensionTests.cs
+         - SchemaImporterExtensionCollectionTests.cs
+
 2006-11-01  Atsushi Enomoto  <atsushi@ximian.com>
 
        * Makefile : Now it supports (and expects) cyclic build. You need
index be4b7e82217b583f640746aaae680c3cbbba92a9..e40650bb801259543157ba1699d64b8f9b506f7e 100644 (file)
@@ -82,8 +82,11 @@ System.Xml.Serialization/XmlSerializationReaderTests.cs
 System.Xml.Serialization/XmlSerializationWriterTests.cs
 System.Xml.Serialization/XmlTextAttributeTests.cs
 System.Xml.Serialization/XmlTypeAttributeTests.cs
+System.Xml.Serialization/XmlSerializerImplementationTests.cs
 System.Xml.Serialization/XmlSerializerTests.cs
 System.Xml.Serialization/XmlSerializerTestClasses.cs
+System.Xml.Serialization.Advanced/SchemaImporterExtensionTests.cs
+System.Xml.Serialization.Advanced/SchemaImporterExtensionCollectionTests.cs
 System.Xml.XPath/SelectNodesTests.cs
 System.Xml.XPath/XPathEditableNavigatorTests.cs
 System.Xml.XPath/XPathNavigatorEvaluateTests.cs
diff --git a/mcs/class/System.XML/Test/System.Xml.Serialization.Advanced/ChangeLog b/mcs/class/System.XML/Test/System.Xml.Serialization.Advanced/ChangeLog
new file mode 100644 (file)
index 0000000..cf4a0bc
--- /dev/null
@@ -0,0 +1,4 @@
+2006-11-01  Atsushi Enomoto  <atsushi@ximian.com>
+
+       * SchemaImporterExtensionCollectionTests.cs,
+         SchemaImporterExtensionTests.cs : new testfixtures.
diff --git a/mcs/class/System.XML/Test/System.Xml.Serialization.Advanced/SchemaImporterExtensionCollectionTests.cs b/mcs/class/System.XML/Test/System.Xml.Serialization.Advanced/SchemaImporterExtensionCollectionTests.cs
new file mode 100644 (file)
index 0000000..718e62c
--- /dev/null
@@ -0,0 +1,136 @@
+// 
+// SchemaImporterExtensionCollectionTests.cs
+//
+// Author:
+//     Atsushi Enomoto  <atsushi@ximian.com>
+//
+// Copyright (C) 2006 Novell, Inc.
+//
+
+//
+// Permission is hereby granted, free of charge, to any person obtaining
+// a copy of this software and associated documentation files (the
+// "Software"), to deal in the Software without restriction, including
+// without limitation the rights to use, copy, modify, merge, publish,
+// distribute, sublicense, and/or sell copies of the Software, and to
+// permit persons to whom the Software is furnished to do so, subject to
+// the following conditions:
+// 
+// The above copyright notice and this permission notice shall be
+// included in all copies or substantial portions of the Software.
+// 
+// THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND,
+// EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF
+// MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND
+// NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE
+// LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION
+// OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION
+// WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.
+//
+
+#if NET_2_0
+
+using System;
+using System.CodeDom;
+using System.Xml;
+using System.Xml.Schema;
+using System.Xml.Serialization;
+using System.Xml.Serialization.Advanced;
+using NUnit.Framework;
+
+namespace MonoTests.System.Xml.Serialization.Advanced
+{
+       [TestFixture]
+       public class SchemaImporterExtensionCollectionTests
+       {
+               class MyExtension : SchemaImporterExtension
+               {
+               }
+
+               class MyExtension2 : SchemaImporterExtension
+               {
+               }
+
+               abstract class MyAbstractExtension : SchemaImporterExtension
+               {
+               }
+
+               [Test]
+               public void Add ()
+               {
+                       SchemaImporterExtensionCollection c =
+                               new SchemaImporterExtensionCollection ();
+                       Assert.AreEqual (0, c.Add ("foo", typeof (MyExtension)), "#1");
+                       Assert.IsTrue (c [0] is MyExtension, "#2");
+               }
+
+               [Test]
+               [ExpectedException (typeof (ArgumentNullException))]
+               public void AddNameNull ()
+               {
+                       SchemaImporterExtensionCollection c =
+                               new SchemaImporterExtensionCollection ();
+                       c.Add (null, typeof (MyExtension));
+               }
+
+               [Test]
+               [Category ("NotDotNet")] // NRE happens there.
+               [ExpectedException (typeof (ArgumentNullException))]
+               public void AddTypeNull ()
+               {
+                       SchemaImporterExtensionCollection c =
+                               new SchemaImporterExtensionCollection ();
+                       c.Add ("foo", null);
+               }
+
+               [Test]
+               [ExpectedException (typeof (ArgumentException))]
+               public void AddTypeNonExtension ()
+               {
+                       SchemaImporterExtensionCollection c =
+                               new SchemaImporterExtensionCollection ();
+                       c.Add ("foo", typeof (int));
+               }
+
+               [Test]
+               [ExpectedException (typeof (ArgumentException))]
+               public void AddTypeAbstract ()
+               {
+                       SchemaImporterExtensionCollection c =
+                               new SchemaImporterExtensionCollection ();
+                       c.Add ("foo", typeof (SchemaImporterExtension));
+               }
+
+               [Test]
+               public void AddTypeAbstract2 ()
+               {
+                       try {
+                               SchemaImporterExtensionCollection c =
+                                       new SchemaImporterExtensionCollection ();
+                               c.Add ("foo", typeof (MyAbstractExtension));
+                               Assert.Fail ("Abstract type should not be accepted.");
+                       } catch (Exception) {
+                       }
+               }
+
+               [Test]
+               [ExpectedException (typeof (InvalidOperationException))]
+               public void DuplicateNames ()
+               {
+                       SchemaImporterExtensionCollection c =
+                               new SchemaImporterExtensionCollection ();
+                       c.Add ("foo", typeof (MyExtension));
+                       c.Add ("foo", typeof (MyExtension2));
+               }
+
+               [Test]
+               public void RemoveNonExistent ()
+               {
+                       SchemaImporterExtensionCollection c =
+                               new SchemaImporterExtensionCollection ();
+                       c.Remove ("foo");
+               }
+       }
+}
+
+#endif
diff --git a/mcs/class/System.XML/Test/System.Xml.Serialization.Advanced/SchemaImporterExtensionTests.cs b/mcs/class/System.XML/Test/System.Xml.Serialization.Advanced/SchemaImporterExtensionTests.cs
new file mode 100644 (file)
index 0000000..5b8d9de
--- /dev/null
@@ -0,0 +1,75 @@
+// 
+// SchemaImporterExtensionTests.cs 
+//
+// Author:
+//     Atsushi Enomoto  <atsushi@ximian.com>
+//
+// Copyright (C) 2006 Novell, Inc.
+//
+
+//
+// Permission is hereby granted, free of charge, to any person obtaining
+// a copy of this software and associated documentation files (the
+// "Software"), to deal in the Software without restriction, including
+// without limitation the rights to use, copy, modify, merge, publish,
+// distribute, sublicense, and/or sell copies of the Software, and to
+// permit persons to whom the Software is furnished to do so, subject to
+// the following conditions:
+// 
+// The above copyright notice and this permission notice shall be
+// included in all copies or substantial portions of the Software.
+// 
+// THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND,
+// EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF
+// MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND
+// NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE
+// LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION
+// OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION
+// WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.
+//
+
+#if NET_2_0
+
+using System;
+using System.CodeDom;
+using System.Xml;
+using System.Xml.Schema;
+using System.Xml.Serialization;
+using System.Xml.Serialization.Advanced;
+using NUnit.Framework;
+
+namespace MonoTests.System.Xml.Serialization.Advanced
+{
+       [TestFixture]
+       public class SchemaImporterExtensionTests
+       {
+               class MyExtension : SchemaImporterExtension
+               {
+               }
+
+               [Test]
+               public void ImportAnyElement ()
+               {
+                       Assert.IsNull(new MyExtension ().ImportAnyElement (
+                               null, false, null, null, null, null, CodeGenerationOptions.None, null));
+               }
+
+               [Test]
+               public void ImportDefaultValue ()
+               {
+                       Assert.IsNull (new MyExtension ().ImportDefaultValue (null, null), "#1");
+                       Assert.IsNull (new MyExtension ().ImportDefaultValue ("test", "string"), "#2");
+               }
+
+               [Test]
+               public void ImportSchemaType ()
+               {
+                       Assert.IsNull (new MyExtension ().ImportSchemaType (
+                               null, null, null, null, null, null, CodeGenerationOptions.None, null), "#1");
+                       Assert.IsNull (new MyExtension ().ImportSchemaType (
+                               null, null, null, null, null, null, null, CodeGenerationOptions.None, null), "#2");
+               }
+       }
+}
+
+#endif
index 99c29de5ea1dcc4e1281b08db6286d7074e403e9..7ae8f71bdfa2ea33617769de42164e84d478b700 100644 (file)
@@ -1,3 +1,7 @@
+2006-11-01  Atsushi Enomoto  <atsushi@ximian.com>
+
+       * XmlSerializerImplementationTests.cs : new testfixture.
+
 2006-10-10  Gert Driesen  <drieseng@users.sourceforge.net>
 
        * XmlSerializerTests.cs: Added a few tests. Fixed coding style.
diff --git a/mcs/class/System.XML/Test/System.Xml.Serialization/XmlSerializerImplementationTests.cs b/mcs/class/System.XML/Test/System.Xml.Serialization/XmlSerializerImplementationTests.cs
new file mode 100644 (file)
index 0000000..eca4e37
--- /dev/null
@@ -0,0 +1,103 @@
+//
+// XmlSerializerImplementation.cs
+//
+// Author:
+//     Atsushi Enomoto  <atsushi@ximian.com>
+//
+// Copyright (C) 2006 Novell, Inc.
+//
+
+//
+// Permission is hereby granted, free of charge, to any person obtaining
+// a copy of this software and associated documentation files (the
+// "Software"), to deal in the Software without restriction, including
+// without limitation the rights to use, copy, modify, merge, publish,
+// distribute, sublicense, and/or sell copies of the Software, and to
+// permit persons to whom the Software is furnished to do so, subject to
+// the following conditions:
+// 
+// The above copyright notice and this permission notice shall be
+// included in all copies or substantial portions of the Software.
+// 
+// THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND,
+// EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF
+// MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND
+// NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE
+// LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION
+// OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION
+// WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.
+//
+
+#if NET_2_0
+using System;
+using System.Xml.Serialization;
+
+using NUnit.Framework;
+
+namespace MonoTests.System.XmlSerialization
+{
+       [TestFixture]
+       public class XmlSerializerImplementationTests
+       {
+               class MyImplementation : XmlSerializerImplementation
+               {
+               }
+
+               [Test]
+               [ExpectedException (typeof (NotSupportedException))]
+               public void DefaultReder ()
+               {
+                       MyImplementation impl = new MyImplementation ();
+                       Assert.IsNull (impl.Reader, "#1");
+               }
+
+               [Test]
+               [ExpectedException (typeof (NotSupportedException))]
+               public void DefaultRederMethods ()
+               {
+                       MyImplementation impl = new MyImplementation ();
+                       Assert.IsNull (impl.ReadMethods, "#2");
+               }
+
+               [Test]
+               [ExpectedException (typeof (NotSupportedException))]
+               public void DefaultWriter ()
+               {
+                       MyImplementation impl = new MyImplementation ();
+                       Assert.IsNull (impl.Writer, "#3");
+               }
+
+               [Test]
+               [ExpectedException (typeof (NotSupportedException))]
+               public void DefaultWriteMethods ()
+               {
+                       MyImplementation impl = new MyImplementation ();
+                       Assert.IsNull (impl.WriteMethods, "#4");
+               }
+
+               [Test]
+               [ExpectedException (typeof (NotSupportedException))]
+               public void DefaultTypedSerializers ()
+               {
+                       MyImplementation impl = new MyImplementation ();
+                       Assert.IsNull (impl.TypedSerializers, "#5");
+               }
+
+               [Test]
+               [ExpectedException (typeof (NotSupportedException))]
+               public void CanSerialize ()
+               {
+                       MyImplementation impl = new MyImplementation ();
+                       Assert.IsTrue (impl.CanSerialize (typeof (int)), "#1");
+               }
+
+               [Test]
+               [ExpectedException (typeof (NotSupportedException))]
+               public void GetSerializer ()
+               {
+                       MyImplementation impl = new MyImplementation ();
+                       Assert.IsNull (impl.GetSerializer (typeof (int)), "#1");
+               }
+       }
+}
+#endif