From: Atsushi Eno Date: Wed, 1 Nov 2006 20:05:41 +0000 (-0000) Subject: 2006-11-01 Atsushi Enomoto X-Git-Url: http://wien.tomnetworks.com/gitweb/?a=commitdiff_plain;h=922203ea7cf193f7e22d399a8bcbed1768e54ac8;p=mono.git 2006-11-01 Atsushi Enomoto * 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 --- diff --git a/mcs/class/System.XML/ChangeLog b/mcs/class/System.XML/ChangeLog index 6a01d0b8ebe..84d798cf860 100644 --- a/mcs/class/System.XML/ChangeLog +++ b/mcs/class/System.XML/ChangeLog @@ -1,3 +1,10 @@ +2006-11-01 Atsushi Enomoto + + * System.Xml_test.dll.sources : added following tests: + - XmlSerializerImplementationTests.cs + - SchemaImporterExtensionTests.cs + - SchemaImporterExtensionCollectionTests.cs + 2006-11-01 Atsushi Enomoto * Makefile : Now it supports (and expects) cyclic build. You need diff --git a/mcs/class/System.XML/System.Xml_test.dll.sources b/mcs/class/System.XML/System.Xml_test.dll.sources index be4b7e82217..e40650bb801 100644 --- a/mcs/class/System.XML/System.Xml_test.dll.sources +++ b/mcs/class/System.XML/System.Xml_test.dll.sources @@ -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 index 00000000000..cf4a0bc0ec9 --- /dev/null +++ b/mcs/class/System.XML/Test/System.Xml.Serialization.Advanced/ChangeLog @@ -0,0 +1,4 @@ +2006-11-01 Atsushi Enomoto + + * 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 index 00000000000..718e62c1fff --- /dev/null +++ b/mcs/class/System.XML/Test/System.Xml.Serialization.Advanced/SchemaImporterExtensionCollectionTests.cs @@ -0,0 +1,136 @@ +// +// SchemaImporterExtensionCollectionTests.cs +// +// Author: +// Atsushi Enomoto +// +// 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 index 00000000000..5b8d9de6dcc --- /dev/null +++ b/mcs/class/System.XML/Test/System.Xml.Serialization.Advanced/SchemaImporterExtensionTests.cs @@ -0,0 +1,75 @@ +// +// SchemaImporterExtensionTests.cs +// +// Author: +// Atsushi Enomoto +// +// 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 diff --git a/mcs/class/System.XML/Test/System.Xml.Serialization/ChangeLog b/mcs/class/System.XML/Test/System.Xml.Serialization/ChangeLog index 99c29de5ea1..7ae8f71bdfa 100644 --- a/mcs/class/System.XML/Test/System.Xml.Serialization/ChangeLog +++ b/mcs/class/System.XML/Test/System.Xml.Serialization/ChangeLog @@ -1,3 +1,7 @@ +2006-11-01 Atsushi Enomoto + + * XmlSerializerImplementationTests.cs : new testfixture. + 2006-10-10 Gert Driesen * 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 index 00000000000..eca4e37f4ba --- /dev/null +++ b/mcs/class/System.XML/Test/System.Xml.Serialization/XmlSerializerImplementationTests.cs @@ -0,0 +1,103 @@ +// +// XmlSerializerImplementation.cs +// +// Author: +// Atsushi Enomoto +// +// 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