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