XmlSchemaAssertion.cs 3.3 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102
  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. public class XmlSchemaAssertion
  17. {
  18. public static XmlSchema GetSchema (string path)
  19. {
  20. XmlTextReader reader = new XmlTextReader (path);
  21. XmlSchema schema = XmlSchema.Read (reader, null);
  22. reader.Close ();
  23. return schema;
  24. }
  25. public static XmlQualifiedName QName (string name, string ns)
  26. {
  27. return new XmlQualifiedName (name, ns);
  28. }
  29. public static void AssertElement (XmlSchemaElement element,
  30. string name, XmlQualifiedName refName, string id,
  31. XmlQualifiedName schemaTypeName, XmlSchemaType schemaType)
  32. {
  33. Assert.IsNotNull (element);
  34. Assert.AreEqual (name, element.Name);
  35. Assert.AreEqual (refName, element.RefName);
  36. Assert.AreEqual (id, element.Id);
  37. Assert.AreEqual (schemaTypeName, element.SchemaTypeName);
  38. Assert.AreEqual (schemaType, element.SchemaType);
  39. }
  40. public static void AssertElementEx (XmlSchemaElement element,
  41. XmlSchemaDerivationMethod block, XmlSchemaDerivationMethod final,
  42. string defaultValue, string fixedValue,
  43. XmlSchemaForm form, bool isAbstract, bool isNillable,
  44. XmlQualifiedName substGroup)
  45. {
  46. Assert.IsNotNull (element);
  47. Assert.AreEqual (block, element.Block);
  48. Assert.AreEqual (final, element.Final);
  49. Assert.AreEqual (defaultValue, element.DefaultValue);
  50. Assert.AreEqual (fixedValue, element.FixedValue);
  51. Assert.AreEqual (form, element.Form);
  52. Assert.AreEqual (isAbstract, element.IsAbstract);
  53. Assert.AreEqual (isNillable, element.IsNillable);
  54. Assert.AreEqual (substGroup, element.SubstitutionGroup);
  55. }
  56. public static void AssertCompiledComplexType (XmlSchemaComplexType cType,
  57. XmlQualifiedName name,
  58. int attributesCount, int attributeUsesCount,
  59. bool existsAny, Type contentModelType,
  60. bool hasContentTypeParticle,
  61. XmlSchemaContentType contentType)
  62. {
  63. Assert.IsNotNull (cType);
  64. Assert.AreEqual (name.Name, cType.Name);
  65. Assert.AreEqual (name, cType.QualifiedName);
  66. Assert.AreEqual (attributesCount, cType.Attributes.Count);
  67. Assert.AreEqual (attributeUsesCount, cType.AttributeUses.Count);
  68. Assert.IsTrue (existsAny == (cType.AttributeWildcard != null));
  69. if (contentModelType == null)
  70. Assert.IsNull (cType.ContentModel);
  71. else
  72. Assert.AreEqual (contentModelType, cType.ContentModel.GetType ());
  73. Assert.AreEqual (hasContentTypeParticle, cType.ContentTypeParticle != null);
  74. Assert.AreEqual (contentType, cType.ContentType);
  75. }
  76. public static void AssertCompiledComplexContentExtension (XmlSchemaComplexContentExtension xccx,
  77. int attributeCount, bool hasAnyAttribute, XmlQualifiedName baseTypeName)
  78. {
  79. Assert.IsNotNull (xccx);
  80. Assert.AreEqual (attributeCount, xccx.Attributes.Count);
  81. Assert.AreEqual (hasAnyAttribute, xccx.AnyAttribute != null);
  82. Assert.AreEqual (baseTypeName, xccx.BaseTypeName);
  83. Assert.IsNotNull (xccx.Particle);
  84. }
  85. public static void AssertCompiledElement (XmlSchemaElement element,
  86. XmlQualifiedName name, object elementType)
  87. {
  88. Assert.IsNotNull (element);
  89. Assert.AreEqual (name, element.QualifiedName);
  90. Assert.AreEqual (elementType, element.ElementType);
  91. }
  92. }
  93. }