* roottypes.cs: Rename from tree.cs.
[mono.git] / mcs / class / System.XML / Test / System.Xml.Schema / XmlSchemaLengthFacetTests.cs
1 //\r
2 // Tests for the length facets.\r
3 // \r
4 // Author:\r
5 //   David Sheldon <dave-mono@earth.li>\r
6 //\r
7 //\r
8 \r
9 using System;\r
10 using System.Xml;\r
11 using System.Xml.Schema;\r
12 using NUnit.Framework;\r
13 \r
14 namespace MonoTests.System.Xml\r
15 {\r
16         [TestFixture]\r
17         public class XmlSchemaLengthFacetTests : Assertion\r
18         {\r
19 \r
20     [Test]\r
21     public void TestValidCombinations () {\r
22       CreateSimpletypeLength("5","-","-", true);\r
23       CreateSimpletypeLength("5","1","-", false);\r
24       CreateSimpletypeLength("5","-","1", false);\r
25       \r
26       CreateSimpletypeLength("-","1","10", true);\r
27       CreateSimpletypeLength("-","10","1", false);\r
28       CreateSimpletypeLength("-","1","-", true);\r
29       CreateSimpletypeLength("-","-","1", true);\r
30       \r
31       CreateSimpletypeLength("-5","-","-", false);\r
32       CreateSimpletypeLength("-","-1","-", false);\r
33       CreateSimpletypeLength("-","-","-1", false);\r
34 \r
35       CreateSimpletypeLength("5.4","-","-", false);\r
36       CreateSimpletypeLength("-","1.0","-", false);\r
37       CreateSimpletypeLength("-","-","1.3", false);\r
38 \r
39       CreateSimpletypeLength("+5","-","-", true);\r
40       CreateSimpletypeLength("-","+1","-", true);\r
41       CreateSimpletypeLength("-","-","+1", true);\r
42      }\r
43 \r
44     private void CreateSimpletypeLength(string length, string minLength, string maxLength, bool expected) {\r
45       passed = true;\r
46 \r
47       XmlSchema schema = new XmlSchema();\r
48 \r
49       XmlSchemaSimpleType testType = new XmlSchemaSimpleType();\r
50       testType.Name = "TestType";\r
51 \r
52       XmlSchemaSimpleTypeRestriction testTypeRestriction = new XmlSchemaSimpleTypeRestriction();\r
53       testTypeRestriction.BaseTypeName = new XmlQualifiedName("string", "http://www.w3.org/2001/XMLSchema");\r
54 \r
55       if (length != "-") {\r
56         XmlSchemaLengthFacet _length = new XmlSchemaLengthFacet();\r
57         _length.Value = length;\r
58         testTypeRestriction.Facets.Add(_length);\r
59       }\r
60       if (minLength != "-") {\r
61         XmlSchemaMinLengthFacet _minLength = new XmlSchemaMinLengthFacet();\r
62         _minLength.Value = minLength;\r
63         testTypeRestriction.Facets.Add(_minLength);\r
64       }\r
65       if (maxLength != "-") {\r
66         XmlSchemaMaxLengthFacet _maxLength = new XmlSchemaMaxLengthFacet();\r
67         _maxLength.Value = maxLength;\r
68         testTypeRestriction.Facets.Add(_maxLength);\r
69       }\r
70 \r
71       testType.Content = testTypeRestriction;\r
72       schema.Items.Add(testType);\r
73       schema.Compile(new ValidationEventHandler(ValidationCallbackOne));\r
74 \r
75       Assert( \r
76         (passed ? "Test passed, should have failed" : "Test failed, should have passed") +\r
77         ": " + length + " " + minLength + " " + maxLength,\r
78         expected == passed);\r
79       \r
80     }\r
81 \r
82     bool passed = true;\r
83 \r
84     private void ValidationCallbackOne(object sender, ValidationEventArgs args) {\r
85       passed = false;\r
86     }\r
87   }  \r
88 }\r