XmlSchemaAssertion.cs 3.4 KB

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