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
15 using ValidationException = System.Xml.Schema.XmlSchemaValidationException;
\r
17 using ValidationException = System.Xml.Schema.XmlSchemaException;
\r
20 namespace MonoTests.System.Xml
\r
22 // using XmlValidatingReader = XmlTextReader;
\r
25 public class XsdParticleValidationTests
\r
29 XmlValidatingReader xvr;
\r
31 private void PrepareReader1 (string xsdUrl, string xml)
\r
33 schema = XmlSchema.Read (new XmlTextReader ("Test/XmlFiles/XsdValidation/" + xsdUrl), null);
\r
34 xr = new XmlTextReader (xml, XmlNodeType.Document, null);
\r
35 xvr = new XmlValidatingReader (xr);
\r
36 xvr.Schemas.Add (schema);
\r
37 // xvr = xr as XmlValidatingReader;
\r
41 public void ValidateRootElementOnlyValid ()
\r
43 PrepareReader1 ("1.xsd", "<root xmlns='urn:foo' />");
\r
45 PrepareReader1 ("1.xsd", "<root xmlns='urn:foo'></root>");
\r
52 [Category ("NotDotNet")]
\r
53 // MS.NET throws XmlSchemaException, not -ValidationException.
\r
55 [ExpectedException (typeof (ValidationException))]
\r
56 public void ValidateRootElementOnlyInvalid ()
\r
58 PrepareReader1 ("1.xsd", "<invalid xmlns='urn:foo' />");
\r
63 [ExpectedException (typeof (ValidationException))]
\r
64 public void ValidateRootElementOnlyInvalid2 ()
\r
66 PrepareReader1 ("1.xsd", "<root xmlns='urn:foo'><invalid_child/></root>");
\r
72 public void ValidateElementContainsElementValid1 ()
\r
74 PrepareReader1 ("2.xsd", "<root xmlns='urn:foo'><child/></root>");
\r
80 public void ValidateElementContainsElementValid2 ()
\r
82 PrepareReader1 ("2.xsd", "<root xmlns='urn:foo'><child/><child/></root>");
\r
88 [ExpectedException (typeof (ValidationException))]
\r
89 public void ValidateElementContainsElementInvalid1 ()
\r
91 PrepareReader1 ("2.xsd", "<root xmlns='urn:foo'></root>");
\r
97 [ExpectedException (typeof (ValidationException))]
\r
98 public void ValidateElementContainsElementInvalid2 ()
\r
100 PrepareReader1 ("2.xsd", "<root xmlns='urn:foo'><child/><child/><child/></root>");
\r
106 public void ValidateSequenceValid ()
\r
108 PrepareReader1 ("3.xsd", "<root xmlns='urn:foo'><child1/><child2/></root>");
\r
112 PrepareReader1 ("3.xsd", "<root xmlns='urn:foo'><child1/><child2/><child1/><child2/></root>");
\r
118 [ExpectedException (typeof (ValidationException))]
\r
119 public void ValidateSequenceInvalid1 ()
\r
121 PrepareReader1 ("3.xsd", "<root xmlns='urn:foo'></root>");
\r
127 [ExpectedException (typeof (ValidationException))]
\r
128 public void ValidateSequenceInvalid2 ()
\r
130 PrepareReader1 ("3.xsd", "<root xmlns='urn:foo'><child1/></root>");
\r
136 [ExpectedException (typeof (ValidationException))]
\r
137 public void ValidateSequenceInvalid3 ()
\r
139 PrepareReader1 ("3.xsd", "<root xmlns='urn:foo'><child1/><child2/><child1/></root>");
\r
145 [ExpectedException (typeof (ValidationException))]
\r
146 public void ValidateSequenceInvalid4 ()
\r
148 PrepareReader1 ("3.xsd", "<root xmlns='urn:foo'><child1/><child2/><child1/><child2/><child1/></root>");
\r
154 [ExpectedException (typeof (ValidationException))]
\r
155 public void ValidateSequenceInvalid5 ()
\r
157 PrepareReader1 ("3.xsd", "<root xmlns='urn:foo'><child1/><child2/><child1/><child2/><child1/><child2/></root>");
\r
163 public void ValidateChoiceValid ()
\r
165 PrepareReader1 ("4.xsd", "<root xmlns='urn:foo'><child1/></root>");
\r
169 PrepareReader1 ("4.xsd", "<root xmlns='urn:foo'><child2/></root>");
\r
173 PrepareReader1 ("4.xsd", "<root xmlns='urn:foo'><child1/><child2/></root>");
\r
177 PrepareReader1 ("4.xsd", "<root xmlns='urn:foo'><child2/><child2/></root>");
\r
181 PrepareReader1 ("4.xsd", "<root xmlns='urn:foo'><child2/><child2/><child2/><child2/></root>");
\r
185 PrepareReader1 ("4.xsd", "<root xmlns='urn:foo'><child2/><child2/><child1/></root>");
\r
189 PrepareReader1 ("4.xsd", "<root xmlns='urn:foo'></root>");
\r
196 [ExpectedException (typeof (ValidationException))]
\r
197 public void ValidateChoiceInvalid1 ()
\r
199 PrepareReader1 ("4.xsd", "<root xmlns='urn:foo'><child1/><child1/><child1/></root>");
\r
205 [ExpectedException (typeof (ValidationException))]
\r
206 public void ValidateChoiceInvalid2 ()
\r
208 PrepareReader1 ("3.xsd", "<root xmlns='urn:foo'><child2/><child2/><child2/><child2/><child2/></root>");
\r
214 [ExpectedException (typeof (ValidationException))]
\r
215 public void ValidateChoiceInvalid3 ()
\r
217 PrepareReader1 ("3.xsd", "<root xmlns='urn:foo'><child2/><child2/><child2/><child1/></root>");
\r
223 [ExpectedException (typeof (ValidationException))]
\r
224 public void ValidateChoiceInvalid4 ()
\r
226 PrepareReader1 ("3.xsd", "<root xmlns='urn:foo'><child1/><child2/><child2/><child2/></root>");
\r