2 // MonoTests.System.Xml.XsdParticleValidationTests.cs
\r
5 // Atsushi Enomoto <ginga@kit.hi-ho.ne.jp>
\r
7 // (C)2003 Atsushi Enomoto
\r
11 using System.Xml.Schema;
\r
12 using NUnit.Framework;
\r
14 using ValidationException = System.Xml.Schema.XmlSchemaValidationException;
\r
16 namespace MonoTests.System.Xml
\r
18 // using XmlValidatingReader = XmlTextReader;
\r
21 public class XsdParticleValidationTests
\r
25 XmlValidatingReader xvr;
\r
27 private void PrepareReader1 (string xsdUrl, string xml)
\r
29 schema = XmlSchema.Read (new XmlTextReader ("Test/XmlFiles/XsdValidation/" + xsdUrl), null);
\r
30 xr = new XmlTextReader (xml, XmlNodeType.Document, null);
\r
31 xvr = new XmlValidatingReader (xr);
\r
32 xvr.Schemas.Add (schema);
\r
33 // xvr = xr as XmlValidatingReader;
\r
37 public void ValidateRootElementOnlyValid ()
\r
39 PrepareReader1 ("1.xsd", "<root xmlns='urn:foo' />");
\r
41 PrepareReader1 ("1.xsd", "<root xmlns='urn:foo'></root>");
\r
47 [Category ("NotDotNet")]
\r
48 // MS.NET throws XmlSchemaException, not -ValidationException.
\r
49 [ExpectedException (typeof (ValidationException))]
\r
50 public void ValidateRootElementOnlyInvalid ()
\r
52 PrepareReader1 ("1.xsd", "<invalid xmlns='urn:foo' />");
\r
57 [ExpectedException (typeof (ValidationException))]
\r
58 public void ValidateRootElementOnlyInvalid2 ()
\r
60 PrepareReader1 ("1.xsd", "<root xmlns='urn:foo'><invalid_child/></root>");
\r
66 public void ValidateElementContainsElementValid1 ()
\r
68 PrepareReader1 ("2.xsd", "<root xmlns='urn:foo'><child/></root>");
\r
74 public void ValidateElementContainsElementValid2 ()
\r
76 PrepareReader1 ("2.xsd", "<root xmlns='urn:foo'><child/><child/></root>");
\r
82 [ExpectedException (typeof (ValidationException))]
\r
83 public void ValidateElementContainsElementInvalid1 ()
\r
85 PrepareReader1 ("2.xsd", "<root xmlns='urn:foo'></root>");
\r
91 [ExpectedException (typeof (ValidationException))]
\r
92 public void ValidateElementContainsElementInvalid2 ()
\r
94 PrepareReader1 ("2.xsd", "<root xmlns='urn:foo'><child/><child/><child/></root>");
\r
100 public void ValidateSequenceValid ()
\r
102 PrepareReader1 ("3.xsd", "<root xmlns='urn:foo'><child1/><child2/></root>");
\r
106 PrepareReader1 ("3.xsd", "<root xmlns='urn:foo'><child1/><child2/><child1/><child2/></root>");
\r
112 [ExpectedException (typeof (ValidationException))]
\r
113 public void ValidateSequenceInvalid1 ()
\r
115 PrepareReader1 ("3.xsd", "<root xmlns='urn:foo'></root>");
\r
121 [ExpectedException (typeof (ValidationException))]
\r
122 public void ValidateSequenceInvalid2 ()
\r
124 PrepareReader1 ("3.xsd", "<root xmlns='urn:foo'><child1/></root>");
\r
130 [ExpectedException (typeof (ValidationException))]
\r
131 public void ValidateSequenceInvalid3 ()
\r
133 PrepareReader1 ("3.xsd", "<root xmlns='urn:foo'><child1/><child2/><child1/></root>");
\r
139 [ExpectedException (typeof (ValidationException))]
\r
140 public void ValidateSequenceInvalid4 ()
\r
142 PrepareReader1 ("3.xsd", "<root xmlns='urn:foo'><child1/><child2/><child1/><child2/><child1/></root>");
\r
148 [ExpectedException (typeof (ValidationException))]
\r
149 public void ValidateSequenceInvalid5 ()
\r
151 PrepareReader1 ("3.xsd", "<root xmlns='urn:foo'><child1/><child2/><child1/><child2/><child1/><child2/></root>");
\r
157 public void ValidateChoiceValid ()
\r
159 PrepareReader1 ("4.xsd", "<root xmlns='urn:foo'><child1/></root>");
\r
163 PrepareReader1 ("4.xsd", "<root xmlns='urn:foo'><child2/></root>");
\r
167 PrepareReader1 ("4.xsd", "<root xmlns='urn:foo'><child1/><child2/></root>");
\r
171 PrepareReader1 ("4.xsd", "<root xmlns='urn:foo'><child2/><child2/></root>");
\r
175 PrepareReader1 ("4.xsd", "<root xmlns='urn:foo'><child2/><child2/><child2/><child2/></root>");
\r
179 PrepareReader1 ("4.xsd", "<root xmlns='urn:foo'><child2/><child2/><child1/></root>");
\r
183 PrepareReader1 ("4.xsd", "<root xmlns='urn:foo'></root>");
\r
190 [ExpectedException (typeof (ValidationException))]
\r
191 public void ValidateChoiceInvalid1 ()
\r
193 PrepareReader1 ("4.xsd", "<root xmlns='urn:foo'><child1/><child1/><child1/></root>");
\r
199 [ExpectedException (typeof (ValidationException))]
\r
200 public void ValidateChoiceInvalid2 ()
\r
202 PrepareReader1 ("3.xsd", "<root xmlns='urn:foo'><child2/><child2/><child2/><child2/><child2/></root>");
\r
208 [ExpectedException (typeof (ValidationException))]
\r
209 public void ValidateChoiceInvalid3 ()
\r
211 PrepareReader1 ("3.xsd", "<root xmlns='urn:foo'><child2/><child2/><child2/><child1/></root>");
\r
217 [ExpectedException (typeof (ValidationException))]
\r
218 public void ValidateChoiceInvalid4 ()
\r
220 PrepareReader1 ("3.xsd", "<root xmlns='urn:foo'><child1/><child2/><child2/><child2/></root>");
\r