2005-01-31 Zoltan Varga <vargaz@freemail.hu>
[mono.git] / mcs / class / System.XML / Test / System.Xml.Schema / XmlSchemaAssertion.cs
1 //
2 // System.Xml.XmlSchemaAssertion.cs
3 //
4 // Author:
5 //   Atsushi Enomoto <atsushi@ximian.com>
6 //
7 // (C) 2004 Atsushi Enomoto
8 //
9
10 using System;
11 using System.IO;
12 using System.Xml;
13 using System.Xml.Schema;
14 using NUnit.Framework;
15
16 namespace MonoTests.System.Xml
17 {
18         [TestFixture]
19         public class XmlSchemaAssertion : Assertion
20         {
21                 protected XmlSchema GetSchema (string path)
22                 {
23                         return XmlSchema.Read (new XmlTextReader (path), null);
24                 }
25
26                 protected XmlQualifiedName QName (string name, string ns)
27                 {
28                         return new XmlQualifiedName (name, ns);
29                 }
30
31                 protected void AssertElement (XmlSchemaElement element,
32                         string name, XmlQualifiedName refName, string id,
33                         XmlQualifiedName schemaTypeName, XmlSchemaType schemaType)
34                 {
35                         AssertNotNull (element);
36                         AssertEquals (name, element.Name);
37                         AssertEquals (refName, element.RefName);
38                         AssertEquals (id, element.Id);
39                         AssertEquals (schemaTypeName, element.SchemaTypeName);
40                         AssertEquals (schemaType, element.SchemaType);
41                 }
42
43                 protected void AssertElementEx (XmlSchemaElement element,
44                         XmlSchemaDerivationMethod block, XmlSchemaDerivationMethod final,
45                         string defaultValue, string fixedValue,
46                         XmlSchemaForm form, bool isAbstract, bool isNillable,
47                         XmlQualifiedName substGroup)
48                 {
49                         AssertNotNull (element);
50                         AssertEquals (block, element.Block);
51                         AssertEquals (final, element.Final);
52                         AssertEquals (defaultValue, element.DefaultValue);
53                         AssertEquals (fixedValue, element.FixedValue);
54                         AssertEquals (form, element.Form);
55                         AssertEquals (isAbstract, element.IsAbstract);
56                         AssertEquals (isNillable, element.IsNillable);
57                         AssertEquals (substGroup, element.SubstitutionGroup);
58                 }
59
60                 protected void AssertCompiledComplexType (XmlSchemaComplexType cType,
61                         XmlQualifiedName name,
62                         int attributesCount, int attributeUsesCount,
63                         bool existsAny, Type contentModelType,
64                         bool hasContentTypeParticle,
65                         XmlSchemaContentType contentType)
66                 {
67                         AssertNotNull (cType);
68                         AssertEquals (name.Name, cType.Name);
69                         AssertEquals (name, cType.QualifiedName);
70                         AssertEquals (attributesCount, cType.Attributes.Count);
71                         AssertEquals (attributeUsesCount, cType.AttributeUses.Count);
72                         Assert (existsAny == (cType.AttributeWildcard != null));
73                         if (contentModelType == null)
74                                 AssertNull (cType.ContentModel);
75                         else
76                                 AssertEquals (contentModelType, cType.ContentModel.GetType ());
77                         AssertEquals (hasContentTypeParticle, cType.ContentTypeParticle != null);
78                         AssertEquals (contentType, cType.ContentType);
79                 }
80
81                 protected void AssertCompiledComplexContentExtension (XmlSchemaComplexContentExtension xccx,
82                         int attributeCount, bool hasAnyAttribute, XmlQualifiedName baseTypeName)
83                 {
84                         AssertNotNull (xccx);
85                         AssertEquals (attributeCount, xccx.Attributes.Count);
86                         AssertEquals (hasAnyAttribute, xccx.AnyAttribute != null);
87                         AssertEquals (baseTypeName, xccx.BaseTypeName);
88                         AssertNotNull (xccx.Particle);
89                 }
90
91                 protected void AssertCompiledElement (XmlSchemaElement element,
92                         XmlQualifiedName name, object elementType)
93                 {
94                         AssertNotNull (element);
95                         AssertEquals (name, element.QualifiedName);
96                         AssertEquals (elementType, element.ElementType);
97                 }
98
99         }
100 }