1 9 10 package test.dom4j; 11 12 import junit.framework.Test; 13 import junit.framework.TestSuite; 14 import junit.textui.TestRunner; 15 import org.dom4j.*; 16 import org.dom4j.io.SAXReader; 17 18 import java.util.Iterator ; 19 20 25 public class TestNodeTypeName extends AbstractTestCase { 26 27 public static void main( String [] args ) { 28 TestRunner.run( suite() ); 29 } 30 31 public static Test suite() { 32 return new TestSuite( TestNodeTypeName.class ); 33 } 34 35 public TestNodeTypeName(String name) { 36 super(name); 37 } 38 39 public void testDocument() throws Exception { 42 testDocument(document); 43 } 44 45 public void testCDATA() throws Exception { 46 testDocument( "xml/cdata.xml" ); 47 } 48 49 public void testNamespaces() throws Exception { 50 testDocument( "xml/namespaces.xml" ); 51 testDocument( "xml/testNamespaces.xml" ); 52 } 53 public void testPI() throws Exception { 54 testDocument( "xml/testPI.xml" ); 55 } 56 57 public void testInline() throws Exception { 58 testDocument( "xml/inline.xml" ); 59 } 60 61 protected void testDocument(String fileName) throws Exception { 64 SAXReader reader = new SAXReader(); 65 Document document = reader.read( fileName ); 66 testDocument(document); 67 } 68 69 protected void testDocument(Document document) throws Exception { 70 assertEquals( document.getNodeTypeName(), "Document" ); 71 DocumentType docType = document.getDocType(); 72 if ( docType != null ) { 73 assertEquals( docType.getNodeTypeName(), "DocumentType" ); 74 } 75 76 testElement( document.getRootElement() ); 77 } 78 79 protected void testElement( Element element ) { 80 assertEquals( element.getNodeTypeName(), "Element" ); 81 82 for ( Iterator iter = element.attributeIterator(); iter.hasNext(); ) { 83 Attribute attribute = (Attribute) iter.next(); 84 assertEquals( attribute.getNodeTypeName(), "Attribute" ); 85 } 86 87 for ( Iterator iter = element.nodeIterator(); iter.hasNext(); ) { 88 Node node = (Node) iter.next(); 89 String nodeTypeName = node.getNodeTypeName(); 90 91 if ( node instanceof Attribute ) { 92 assertEquals( nodeTypeName, "Attribute" ); 93 } 94 else if ( node instanceof CDATA ) { 95 assertEquals( nodeTypeName, "CDATA" ); 96 } 97 else if ( node instanceof Comment ) { 98 assertEquals( nodeTypeName, "Comment" ); 99 } 100 else if ( node instanceof Element ) { 101 assertEquals( nodeTypeName, "Element" ); 102 testElement( (Element) node ); 103 } 104 else if ( node instanceof Entity ) { 105 assertEquals( nodeTypeName, "Entity" ); 106 } 107 else if ( node instanceof Element ) { 108 assertEquals( nodeTypeName, "Element" ); 109 } 110 else if ( node instanceof Namespace ) { 111 assertEquals( nodeTypeName, "AbstractNamespace" ); 112 } 113 else if ( node instanceof ProcessingInstruction ) { 114 assertEquals( nodeTypeName, "ProcessingInstruction" ); 115 } 116 else if ( node instanceof Text ) { 117 assertEquals( nodeTypeName, "Text" ); 118 } 119 else { 120 assertTrue( "Invalid node type: " + nodeTypeName + " for node: " + node, false ); 121 } 122 } 123 } 124 } 125 126 127 128 129 173 | Popular Tags |