Welcome to mirror list, hosted at ThFree Co, Russian Federation.

github.com/mono/mono.git - Unnamed repository; edit this file 'description' to name the repository.
summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorAtsushi Eno <atsushieno@gmail.com>2003-07-19 20:52:58 +0400
committerAtsushi Eno <atsushieno@gmail.com>2003-07-19 20:52:58 +0400
commita2ff2914af31d6695bc3b4bcacfc47a6df030970 (patch)
treea2e96ad30f679e0ffb6ce0049e97b432150a1028
parent0b036eec2529b01f945e7708b905ef90b87a8dc4 (diff)
2003-07-19 Atsushi Enomoto <ginga@kit.hi-ho.ne.jp>
* XmlSchemaTests.cs : rewrote TestRead() and added TestCompile(). svn path=/trunk/mcs/; revision=16433
-rw-r--r--mcs/class/System.XML/Test/System.Xml.Schema/ChangeLog4
-rw-r--r--mcs/class/System.XML/Test/System.Xml.Schema/XmlSchemaTests.cs120
2 files changed, 122 insertions, 2 deletions
diff --git a/mcs/class/System.XML/Test/System.Xml.Schema/ChangeLog b/mcs/class/System.XML/Test/System.Xml.Schema/ChangeLog
index d30b2db1461..3ec77241d9b 100644
--- a/mcs/class/System.XML/Test/System.Xml.Schema/ChangeLog
+++ b/mcs/class/System.XML/Test/System.Xml.Schema/ChangeLog
@@ -1,3 +1,7 @@
+2003-07-19 Atsushi Enomoto <ginga@kit.hi-ho.ne.jp>
+
+ * XmlSchemaTests.cs : rewrote TestRead() and added TestCompile().
+
2003-04-12 Atsushi Enomoto <ginga@kit.hi-ho.ne.jp>
* added this file as a new entry.
diff --git a/mcs/class/System.XML/Test/System.Xml.Schema/XmlSchemaTests.cs b/mcs/class/System.XML/Test/System.Xml.Schema/XmlSchemaTests.cs
index 26f909fb094..f3303d62acc 100644
--- a/mcs/class/System.XML/Test/System.Xml.Schema/XmlSchemaTests.cs
+++ b/mcs/class/System.XML/Test/System.Xml.Schema/XmlSchemaTests.cs
@@ -15,12 +15,128 @@ using NUnit.Framework;
namespace MonoTests.System.Xml
{
[TestFixture]
- public class XmlSchemaTests
+ public class XmlSchemaTests : Assertion
{
+ private XmlSchema GetSchema (string path)
+ {
+ return XmlSchema.Read (new XmlTextReader (path), null);
+ }
+
+ private XmlQualifiedName QName (string name, string ns)
+ {
+ return new XmlQualifiedName (name, ns);
+ }
+
+ private void AssertElement (XmlSchemaElement element,
+ string name, XmlQualifiedName refName, string id,
+ XmlQualifiedName schemaTypeName, XmlSchemaType schemaType)
+ {
+ AssertNotNull (element);
+ AssertEquals (name, element.Name);
+ AssertEquals (refName, element.RefName);
+ AssertEquals (id, element.Id);
+ AssertEquals (schemaTypeName, element.SchemaTypeName);
+ AssertEquals (schemaType, element.SchemaType);
+ }
+
+ private void AssertElementEx (XmlSchemaElement element,
+ XmlSchemaDerivationMethod block, XmlSchemaDerivationMethod final,
+ string defaultValue, string fixedValue,
+ XmlSchemaForm form, bool isAbstract, bool isNillable,
+ XmlQualifiedName substGroup)
+ {
+ AssertNotNull (element);
+ AssertEquals (block, element.Block);
+ AssertEquals (final, element.Final);
+ AssertEquals (defaultValue, element.DefaultValue);
+ AssertEquals (fixedValue, element.FixedValue);
+ AssertEquals (form, element.Form);
+ AssertEquals (isAbstract, element.IsAbstract);
+ AssertEquals (isNillable, element.IsNillable);
+ AssertEquals (substGroup, element.SubstitutionGroup);
+ }
+
+ private void AssertCompiledComplexType (XmlSchemaComplexType cType,
+ XmlQualifiedName name,
+ int attributesCount, int attributeUsesCount,
+ bool existsAny, Type contentModelType,
+ bool hasContentTypeParticle,
+ XmlSchemaContentType contentType)
+ {
+ AssertNotNull (cType);
+ AssertEquals (name.Name, cType.Name);
+ AssertEquals (name, cType.QualifiedName);
+ AssertEquals (attributesCount, cType.Attributes.Count);
+ AssertEquals (attributeUsesCount, cType.AttributeUses.Count);
+ Assert (existsAny == (cType.AttributeWildcard != null));
+ if (contentModelType == null)
+ AssertNull (cType.ContentModel);
+ else
+ AssertEquals (contentModelType, cType.ContentModel.GetType ());
+ AssertEquals (contentType, cType.ContentType);
+ AssertEquals (hasContentTypeParticle, cType.ContentTypeParticle != null);
+ }
+
+ private void AssertCompiledElement (XmlSchemaElement element,
+ XmlQualifiedName name, object elementType)
+ {
+ AssertNotNull (element);
+ AssertEquals (name, element.QualifiedName);
+ AssertEquals (elementType, element.ElementType);
+ }
+
[Test]
public void TestRead ()
{
- XmlSchema som = XmlSchema.Read (new XmlTextReader ("XmlFiles/xsd/xml.xsd"), null);
+ XmlSchema schema = GetSchema ("XmlFiles/xsd/1.xsd");
+ AssertEquals (6, schema.Items.Count);
+
+ bool fooValidated = false;
+ bool barValidated = false;
+ string ns = "urn:bar";
+
+ foreach (XmlSchemaObject obj in schema.Items) {
+ XmlSchemaElement element = obj as XmlSchemaElement;
+ if (element == null)
+ continue;
+ if (element.Name == "Foo") {
+ AssertElement (element, "Foo",
+ XmlQualifiedName.Empty, null,
+ QName ("string", XmlSchema.Namespace), null);
+ fooValidated = true;
+ }
+ if (element.Name == "Bar") {
+ AssertElement (element, "Bar",
+ XmlQualifiedName.Empty, null, QName ("FugaType", ns), null);
+ barValidated = true;
+ }
+ }
+ Assert (fooValidated);
+ Assert (barValidated);
+ }
+
+ [Test]
+ public void TestCompile ()
+ {
+ XmlSchema schema = GetSchema ("XmlFiles/xsd/1.xsd");
+ schema.Compile (null);
+ string ns = "urn:bar";
+
+ XmlQualifiedName qname = QName ("HogeType", ns);
+ XmlSchemaComplexType cType = schema.SchemaTypes [qname] as XmlSchemaComplexType;
+ AssertCompiledComplexType (cType, qname, 0, 0,
+ false, null, true, XmlSchemaContentType.ElementOnly);
+
+ qname = QName ("FugaType", ns);
+ cType = schema.SchemaTypes [qname] as XmlSchemaComplexType;
+ AssertCompiledComplexType (cType, qname, 0, 0,
+ false, typeof (XmlSchemaComplexContent),
+ true, XmlSchemaContentType.ElementOnly);
+ AssertNotNull (cType.BaseSchemaType);
+
+ qname = QName ("Bar", ns);
+ XmlSchemaElement element = schema.Elements [qname] as XmlSchemaElement;
+ AssertCompiledElement (element, qname, cType);
}
}
}