2007-12-14 Atsushi Enomoto <atsushi@ximian.com>
[mono.git] / mcs / class / Commons.Xml.Relaxng / Test / RdpPatternTests.cs
1 //
2 // RdpPatternTests.cs
3 //
4 // Authors:
5 //   Atsushi Enomoto <ginga@kit.hi-ho.ne.jp>
6 //
7 // (C) 2003 Atsushi Enomoto
8 //
9
10 using System;
11 using System.IO;
12 using System.Xml;
13 using Commons.Xml.Relaxng;
14 using Commons.Xml.Relaxng.Derivative;
15 using NUnit.Framework;
16
17 namespace MonoTests.Commons.Xml.Relaxng
18 {
19         [TestFixture]
20         public class RdpPatternTests : Assertion
21         {
22                 RelaxngValidatingReader reader;
23                 RdpPattern result;
24                 RdpPattern pattern1;
25
26                 [SetUp]
27                 public void SetUp ()
28                 {
29                         pattern1 = new RdpElement (new RdpName ("foo", "urn:foo"), RdpEmpty.Instance);
30                 }
31                 
32                 private void AssertPattern (string s, RelaxngPatternType expected, RdpPattern p)
33                 {
34                         AssertEquals (s, expected, p.PatternType);
35                 }
36
37                 [Test]
38                 public void ElementStartTagOpenDeriv ()
39                 {
40                         result = pattern1.StartTagOpenDeriv ("bar", "urn:foo");
41                         AssertPattern ("#element.start.1", RelaxngPatternType.NotAllowed, result);
42
43                         result = pattern1.StartTagOpenDeriv ("foo", "urn:bar");
44                         AssertPattern ("#element.start.2", RelaxngPatternType.NotAllowed, result);
45
46                         result = pattern1.StartTagOpenDeriv ("foo", "urn:foo");
47                         AssertPattern ("#element.start.3", RelaxngPatternType.After, result);
48                         RdpAfter after= result as RdpAfter;
49                         AssertPattern ("#element.start.4", RelaxngPatternType.Empty, after.LValue);
50                         AssertPattern ("#element.start.5", RelaxngPatternType.Empty, after.RValue);
51                 }
52         }
53 }