2 // System.Xml.XmlSchemaAssertion.cs
5 // Atsushi Enomoto <atsushi@ximian.com>
7 // (C) 2004 Atsushi Enomoto
13 using System.Xml.Schema;
14 using NUnit.Framework;
16 namespace MonoTests.System.Xml
18 public class XmlSchemaAssertion
20 public static XmlSchema GetSchema (string path)
22 XmlTextReader reader = new XmlTextReader (path);
23 XmlSchema schema = XmlSchema.Read (reader, null);
28 public static XmlQualifiedName QName (string name, string ns)
30 return new XmlQualifiedName (name, ns);
33 public static void AssertElement (XmlSchemaElement element,
34 string name, XmlQualifiedName refName, string id,
35 XmlQualifiedName schemaTypeName, XmlSchemaType schemaType)
37 Assert.IsNotNull (element);
38 Assert.AreEqual (name, element.Name);
39 Assert.AreEqual (refName, element.RefName);
40 Assert.AreEqual (id, element.Id);
41 Assert.AreEqual (schemaTypeName, element.SchemaTypeName);
42 Assert.AreEqual (schemaType, element.SchemaType);
45 public static void AssertElementEx (XmlSchemaElement element,
46 XmlSchemaDerivationMethod block, XmlSchemaDerivationMethod final,
47 string defaultValue, string fixedValue,
48 XmlSchemaForm form, bool isAbstract, bool isNillable,
49 XmlQualifiedName substGroup)
51 Assert.IsNotNull (element);
52 Assert.AreEqual (block, element.Block);
53 Assert.AreEqual (final, element.Final);
54 Assert.AreEqual (defaultValue, element.DefaultValue);
55 Assert.AreEqual (fixedValue, element.FixedValue);
56 Assert.AreEqual (form, element.Form);
57 Assert.AreEqual (isAbstract, element.IsAbstract);
58 Assert.AreEqual (isNillable, element.IsNillable);
59 Assert.AreEqual (substGroup, element.SubstitutionGroup);
62 public static void AssertCompiledComplexType (XmlSchemaComplexType cType,
63 XmlQualifiedName name,
64 int attributesCount, int attributeUsesCount,
65 bool existsAny, Type contentModelType,
66 bool hasContentTypeParticle,
67 XmlSchemaContentType contentType)
69 Assert.IsNotNull (cType);
70 Assert.AreEqual (name.Name, cType.Name);
71 Assert.AreEqual (name, cType.QualifiedName);
72 Assert.AreEqual (attributesCount, cType.Attributes.Count);
73 Assert.AreEqual (attributeUsesCount, cType.AttributeUses.Count);
74 Assert.IsTrue (existsAny == (cType.AttributeWildcard != null));
75 if (contentModelType == null)
76 Assert.IsNull (cType.ContentModel);
78 Assert.AreEqual (contentModelType, cType.ContentModel.GetType ());
79 Assert.AreEqual (hasContentTypeParticle, cType.ContentTypeParticle != null);
80 Assert.AreEqual (contentType, cType.ContentType);
83 public static void AssertCompiledComplexContentExtension (XmlSchemaComplexContentExtension xccx,
84 int attributeCount, bool hasAnyAttribute, XmlQualifiedName baseTypeName)
86 Assert.IsNotNull (xccx);
87 Assert.AreEqual (attributeCount, xccx.Attributes.Count);
88 Assert.AreEqual (hasAnyAttribute, xccx.AnyAttribute != null);
89 Assert.AreEqual (baseTypeName, xccx.BaseTypeName);
90 Assert.IsNotNull (xccx.Particle);
93 public static void AssertCompiledElement (XmlSchemaElement element,
94 XmlQualifiedName name, object elementType)
96 Assert.IsNotNull (element);
97 Assert.AreEqual (name, element.QualifiedName);
98 Assert.AreEqual (elementType, element.ElementType);