1
2
3
4
5
6
7
8
9
10 package org.dom4j;
11
12 import java.net.URL;
13 import java.util.Iterator;
14
15 import junit.framework.Test;
16 import junit.framework.TestSuite;
17 import junit.textui.TestRunner;
18
19 import org.dom4j.io.SAXReader;
20
21 /*** Tests the getNodeNameType() method
22 *
23 * @author <a href="mailto:jstrachan@apache.org">James Strachan</a>
24 * @version $Revision: 1.7 $
25 */
26 public class TestNodeTypeName extends AbstractTestCase {
27
28 public static void main( String[] args ) {
29 TestRunner.run( suite() );
30 }
31
32 public static Test suite() {
33 return new TestSuite( TestNodeTypeName.class );
34 }
35
36 public TestNodeTypeName(String name) {
37 super(name);
38 }
39
40
41
42 public void testDocument() throws Exception {
43 testDocument(document);
44 }
45
46 public void testCDATA() throws Exception {
47 testDocument( "/xml/cdata.xml" );
48 }
49
50 public void testNamespaces() throws Exception {
51 testDocument( "/xml/namespaces.xml" );
52 testDocument( "/xml/testNamespaces.xml" );
53 }
54 public void testPI() throws Exception {
55 testDocument( "/xml/testPI.xml" );
56 }
57
58 public void testInline() throws Exception {
59 testDocument( "/xml/inline.xml" );
60 }
61
62
63
64 protected void testDocument(String fileName) throws Exception {
65 SAXReader reader = new SAXReader();
66 URL url = getClass().getResource(fileName);
67 Document document = reader.read(url);
68 testDocument(document);
69 }
70
71 protected void testDocument(Document document) throws Exception {
72 assertEquals( document.getNodeTypeName(), "Document" );
73 DocumentType docType = document.getDocType();
74 if ( docType != null ) {
75 assertEquals( docType.getNodeTypeName(), "DocumentType" );
76 }
77
78 testElement( document.getRootElement() );
79 }
80
81 protected void testElement( Element element ) {
82 assertEquals( element.getNodeTypeName(), "Element" );
83
84 for ( Iterator iter = element.attributeIterator(); iter.hasNext(); ) {
85 Attribute attribute = (Attribute) iter.next();
86 assertEquals( attribute.getNodeTypeName(), "Attribute" );
87 }
88
89 for ( Iterator iter = element.nodeIterator(); iter.hasNext(); ) {
90 Node node = (Node) iter.next();
91 String nodeTypeName = node.getNodeTypeName();
92
93 if ( node instanceof Attribute ) {
94 assertEquals( nodeTypeName, "Attribute" );
95 }
96 else if ( node instanceof CDATA ) {
97 assertEquals( nodeTypeName, "CDATA" );
98 }
99 else if ( node instanceof Comment ) {
100 assertEquals( nodeTypeName, "Comment" );
101 }
102 else if ( node instanceof Element ) {
103 assertEquals( nodeTypeName, "Element" );
104 testElement( (Element) node );
105 }
106 else if ( node instanceof Entity ) {
107 assertEquals( nodeTypeName, "Entity" );
108 }
109 else if ( node instanceof Element ) {
110 assertEquals( nodeTypeName, "Element" );
111 }
112 else if ( node instanceof Namespace ) {
113 assertEquals( nodeTypeName, "Namespace" );
114 }
115 else if ( node instanceof ProcessingInstruction ) {
116 assertEquals( nodeTypeName, "ProcessingInstruction" );
117 }
118 else if ( node instanceof Text ) {
119 assertEquals( nodeTypeName, "Text" );
120 }
121 else {
122 assertTrue( "Invalid node type: " + nodeTypeName + " for node: " + node, false );
123 }
124 }
125 }
126 }
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
159
160
161
162
163
164
165
166
167
168
169
170
171
172
173
174