XmlSchemaAssertion.cs 3.2 KB

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