KickJava   Java API By Example, From Geeks To Geeks.

Java > Open Source Codes > org > oddjob > arooa > handlers > RootHandlerTest


1 /*
2  * (c) Rob Gordon 2005.
3  */

4 package org.oddjob.arooa.handlers;
5
6 import java.io.ByteArrayInputStream JavaDoc;
7
8 import junit.framework.TestCase;
9
10 import org.oddjob.arooa.ArooaHandler;
11 import org.oddjob.arooa.ArooaContext;
12 import org.oddjob.arooa.xml.XMLDefinitionHelper;
13 import org.xml.sax.Attributes JavaDoc;
14 import org.xml.sax.InputSource JavaDoc;
15
16 /**
17  *
18  */

19 public class RootHandlerTest extends TestCase {
20
21     public void testContext() {
22         class TestHandler extends ArooaHandler {
23             public void onStartElement(String JavaDoc uri, String JavaDoc tag, String JavaDoc qname,
24                     Attributes JavaDoc attrs, ArooaContext context) {
25                 context.set("test", "something");
26             }
27
28             public ArooaHandler onStartChild(String JavaDoc uri, String JavaDoc tag,
29                     String JavaDoc qname, Attributes JavaDoc attrs, ArooaContext context) {
30                 assertEquals("context", "something", context.getLocal("test"));
31                 return this;
32             }
33
34             public void onEndChild(String JavaDoc uri, String JavaDoc tag, String JavaDoc qname,
35                     ArooaContext context) {
36                 context.set("test2", "otherthing");
37                 assertEquals("context", "something", context.getLocal("test"));
38             }
39
40             public void onEndElement(String JavaDoc uri, String JavaDoc tag,
41                     ArooaContext context) {
42                 assertEquals("context", "something", context.getLocal("test"));
43                 if ("a".equals(tag)) {
44                     assertEquals("context", "otherthing", context.getLocal("test2"));
45                 }
46             }
47
48             public void characters(char[] buf, int start, int count,
49                     ArooaContext context) {
50                 assertEquals("context", "something", context.getLocal("test"));
51             }
52         }
53
54         String JavaDoc s = "<a>x<b/>y</a>";
55         XMLDefinitionHelper h = new XMLDefinitionHelper(new ArooaContext());
56         h.parse(new InputSource JavaDoc(new ByteArrayInputStream JavaDoc(s.getBytes())),
57                 new MainHandler(new TestHandler()));
58     }
59     
60     public void testCalled() {
61         class TestHandler extends ArooaHandler {
62             int startE = 0;
63             int startC = 0;
64             int endC = 0;
65             int endE = 0;
66             int c = 0;
67             
68             public void onStartElement(String JavaDoc uri, String JavaDoc tag, String JavaDoc qname,
69                     Attributes JavaDoc attrs, ArooaContext context) {
70                 startE++;
71             }
72
73             public ArooaHandler onStartChild(String JavaDoc uri, String JavaDoc tag,
74                     String JavaDoc qname, Attributes JavaDoc attrs, ArooaContext context) {
75                 startC++;
76                 return this;
77             }
78
79             public void onEndChild(String JavaDoc uri, String JavaDoc tag, String JavaDoc qname,
80                     ArooaContext context) {
81                 endC++;
82             }
83
84             public void onEndElement(String JavaDoc uri, String JavaDoc tag,
85                     ArooaContext context) {
86                 endE++;
87             }
88
89             public void characters(char[] buf, int start, int count,
90                     ArooaContext context) {
91                 c++;
92             }
93         }
94
95         String JavaDoc s = "<a>x<b/>y</a>";
96         TestHandler t = new TestHandler();
97         XMLDefinitionHelper h = new XMLDefinitionHelper(new ArooaContext());
98         h.parse(new InputSource JavaDoc(new ByteArrayInputStream JavaDoc(s.getBytes())),
99                 new MainHandler(t));
100
101         assertEquals("startE", 2, t.startE);
102         assertEquals("startC", 1, t.startC);
103         assertEquals("endC", 1, t.endC);
104         assertEquals("endE", 2, t.endE);
105         assertEquals("c", 2, t.c);
106     }
107     
108     public void testTags() {
109         class TestHandler extends ArooaHandler {
110             public void onStartElement(String JavaDoc uri, String JavaDoc tag, String JavaDoc qname,
111                     Attributes JavaDoc attrs, ArooaContext context) {
112                 if (context.getParent().getLocal("tag") == null) {
113                     assertEquals("tag", "a", tag);
114                     context.set("tag", tag);
115                 }
116                 else {
117                     assertEquals("tag", "b", tag);
118                 }
119             }
120
121             public ArooaHandler onStartChild(String JavaDoc uri, String JavaDoc tag,
122                     String JavaDoc qname, Attributes JavaDoc attrs, ArooaContext context) {
123                 assertEquals("tag", "b", tag);
124                 return this;
125             }
126
127             public void onEndChild(String JavaDoc uri, String JavaDoc tag, String JavaDoc qname,
128                     ArooaContext context) {
129                 assertEquals("tag", "b", tag);
130             }
131
132             public void onEndElement(String JavaDoc uri, String JavaDoc tag,
133                     ArooaContext context) {
134                 if (context.getParent().getLocal("tag") == null) {
135                     assertEquals("tag", "a", tag);
136                     context.set("tag", tag);
137                 }
138                 else {
139                     assertEquals("tag", "b", tag);
140                 }
141             }
142
143         }
144
145         String JavaDoc s = "<a><b/></a>";
146         XMLDefinitionHelper h = new XMLDefinitionHelper(new ArooaContext());
147         h.parse(new InputSource JavaDoc(new ByteArrayInputStream JavaDoc(s.getBytes())),
148                 new MainHandler(new TestHandler()));
149     }
150 }
151
Popular Tags