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.Attribute; 16 import org.dom4j.Document; 17 import org.dom4j.Element; 18 import org.dom4j.NodeFactory; 19 import org.dom4j.io.SAXReader; 20 import org.dom4j.util.UserDataAttribute; 21 import org.dom4j.util.UserDataDocumentFactory; 22 import org.dom4j.util.UserDataElement; 23 24 import java.io.File ; 25 26 31 public class TestUserData extends AbstractTestCase { 32 33 34 protected static String INPUT_XML_FILE = "xml/web.xml"; 35 36 private Object userData = new Double ( 1.23456 ); 37 38 39 public static void main( String [] args ) { 40 TestRunner.run( suite() ); 41 } 42 43 public static Test suite() { 44 return new TestSuite( TestUserData.class ); 45 } 46 47 public TestUserData(String name) { 48 super(name); 49 } 50 51 public void testSetData() throws Exception { 54 Element root = getRootElement(); 55 56 assertTrue( "Element instanceof UserDataElement", root instanceof UserDataElement ); 57 58 root.setData( userData ); 59 60 assertTrue( "Stored user data!", root.getData() == userData ); 61 62 log( "root: " + root ); 63 64 assertUserData( root, userData ); 65 66 Element cloned = (Element) root.clone(); 67 assertTrue( "Cloned new instance", cloned != root ); 68 assertUserData( cloned, userData ); 69 70 cloned = root.createCopy(); 71 assertTrue( "Cloned new instance", cloned != root ); 72 assertUserData( cloned, userData ); 73 } 74 75 public void testNewAdditions() throws Exception { 76 Element root = getRootElement(); 77 78 Element newElement = root.addElement( "foo1234" ); 79 assertTrue( "New Element is a UserDataElement", newElement instanceof UserDataElement ); 80 81 root.addAttribute( "bar456", "123" ); 82 83 Attribute newAttribute = root.attribute( "bar456" ); 84 85 assertTrue( "New Attribute is a UserDataAttribute", newAttribute instanceof UserDataAttribute ); 86 } 87 88 public void testNewDocument() throws Exception { 89 NodeFactory factory = UserDataDocumentFactory.getInstance(); 91 Document document = factory.createDocument(); 92 93 Element root = document.addElement( "root" ); 94 assertTrue( "Root Element is a UserDataElement", root instanceof UserDataElement ); 95 96 Element newElement = root.addElement( "foo1234" ); 97 assertTrue( "New Element is a UserDataElement", newElement instanceof UserDataElement ); 98 99 root.addAttribute( "bar456", "123" ); 100 101 Attribute newAttribute = root.attribute( "bar456" ); 102 103 assertTrue( "New Attribute is a UserDataAttribute", newAttribute instanceof UserDataAttribute ); 104 } 105 106 107 protected void assertUserData( Element root, Object userData ) throws Exception { 110 Object result = root.getData(); 111 112 assertTrue( "No user data!", result != null ); 113 assertTrue( "Stored user data correctly", userData.equals( result ) ); 114 } 115 116 protected void setUp() throws Exception { 117 SAXReader reader = new SAXReader(); 118 reader.setDocumentFactory( UserDataDocumentFactory.getInstance() ); 119 document = reader.read( new File ( INPUT_XML_FILE ) ); 120 } 121 } 122 123 124 125 126 170 | Popular Tags |