KickJava   Java API By Example, From Geeks To Geeks.

Java > Open Source Codes > test > dom4j > rule > TestRule


1 /*
2  * Copyright 2001 (C) MetaStuff, Ltd. All Rights Reserved.
3  *
4  * This software is open source.
5  * See the bottom of this file for the licence.
6  *
7  * $Id: TestRule.java,v 1.1 2003/07/07 10:30:30 per_nyfelt Exp $
8  */

9
10 package test.dom4j.rule;
11
12 import junit.framework.Test;
13 import junit.framework.TestCase;
14 import junit.framework.TestSuite;
15 import junit.textui.TestRunner;
16 import org.dom4j.CDATA;
17 import org.dom4j.Document;
18 import org.dom4j.DocumentFactory;
19 import org.dom4j.rule.Pattern;
20 import org.dom4j.rule.Rule;
21
22 import java.util.ArrayList JavaDoc;
23 import java.util.Collections JavaDoc;
24
25 /** Tests the ordering of Rules
26   *
27   * @author <a HREF="mailto:jstrachan@apache.org">James Strachan</a>
28   * @version $Revision: 1.1 $
29   */

30 public class TestRule extends TestCase {
31
32     protected DocumentFactory factory = new DocumentFactory();
33
34     public TestRule(String JavaDoc name) {
35         super( name );
36     }
37
38     public static void main(String JavaDoc[] args) {
39         TestRunner.run( suite() );
40     }
41
42     public static Test suite() {
43         return new TestSuite( TestRule.class );
44     }
45
46     public void testOrder() throws Exception JavaDoc {
47         testGreater( "foo", "*" );
48     }
49
50     protected void testGreater(String JavaDoc expr1, String JavaDoc expr2) throws Exception JavaDoc {
51         System.out.println( "parsing: " + expr1 + " and " + expr2 );
52
53         Rule r1 = createRule( expr1 );
54         Rule r2 = createRule( expr2 );
55
56         System.out.println( "rule1: " + r1 + " rule2: " + r2 );
57
58         int value = r1.compareTo( r2 );
59
60         System.out.println( "Comparison: " + value );
61
62         assertTrue( "r1 > r2", value > 0 );
63
64         ArrayList JavaDoc list = new ArrayList JavaDoc();
65         list.add( r1 );
66         list.add( r2 );
67
68         Collections.sort( list );
69
70         assertTrue( "r2 should be first", list.get(0) == r2 );
71         assertTrue( "r1 should be next", list.get(1) == r1 );
72
73         list = new ArrayList JavaDoc();
74         list.add( r2 );
75         list.add( r1 );
76
77         Collections.sort( list );
78
79         assertTrue( "r2 should be first", list.get(0) == r2 );
80         assertTrue( "r1 should be next", list.get(1) == r1 );
81 /*
82         TreeSet set = new TreeSet();
83         set.add( r1 );
84         set.add( r2 );
85
86         assertTrue( "r2 should be first", set.first() == r2 );
87         assertTrue( "r1 should be next", set.last() == r1 );
88
89         Object[] array = set.toArray();
90
91         assertTrue( "r2 should be first", array[0] == r2 );
92         assertTrue( "r1 should be next", array[1] == r1 );
93
94         set = new TreeSet();
95         set.add( r2 );
96         set.add( r1 );
97
98         assertTrue( "r2 should be first", set.first() == r2 );
99         assertTrue( "r1 should be next", set.last() == r1 );
100
101         array = set.toArray();
102
103         assertTrue( "r2 should be first", array[0] == r2 );
104         assertTrue( "r1 should be next", array[1] == r1 );
105 */

106     }
107
108     public void testDocument() {
109         Rule rule = createRule( "/" );
110         Document document = factory.createDocument();
111         document.addElement( "foo" );
112
113         assertTrue( "/ matches document", rule.matches( document ) );
114         assertTrue( "/ does not match root element", ! rule.matches( document.getRootElement() ) );
115     }
116
117     public void testTextMatchesCDATA() {
118         CDATA cdata = factory.createCDATA( "<>&" );
119         Rule rule = createRule( "text()" );
120
121         assertTrue( "text() matches CDATA", rule.matches( cdata ) );
122     }
123
124     protected Rule createRule(String JavaDoc expr) {
125         Pattern pattern = factory.createPattern( expr );
126         return new Rule( pattern );
127     }
128 }
129
Popular Tags