1
2
3
4
5
6
7
8 package org.dom4j;
9
10 import junit.textui.TestRunner;
11
12 import org.dom4j.io.SAXReader;
13 import org.dom4j.util.UserDataAttribute;
14 import org.dom4j.util.UserDataDocumentFactory;
15 import org.dom4j.util.UserDataElement;
16
17 /***
18 * Tests the UserDataDocumentFactory
19 *
20 * @author <a href="mailto:jstrachan@apache.org">James Strachan </a>
21 * @version $Revision: 1.4 $
22 */
23 public class UserDataTest extends AbstractTestCase {
24 /*** Input XML file to read */
25 private static final String INPUT_XML_FILE = "/xml/web.xml";
26
27 private Object userData = new Double(1.23456);
28
29 public static void main(String[] args) {
30 TestRunner.run(UserDataTest.class);
31 }
32
33
34
35 public void testSetData() throws Exception {
36 Element root = getRootElement();
37
38 assertTrue("Element instanceof UserDataElement",
39 root instanceof UserDataElement);
40
41 root.setData(userData);
42
43 assertTrue("Stored user data!", root.getData() == userData);
44
45 log("root: " + root);
46
47 assertUserData(root, userData);
48
49 Element cloned = (Element) root.clone();
50 assertTrue("Cloned new instance", cloned != root);
51 assertUserData(cloned, userData);
52
53 cloned = root.createCopy();
54 assertTrue("Cloned new instance", cloned != root);
55 assertUserData(cloned, userData);
56 }
57
58 public void testCloneAttribute() throws Exception {
59 Element root = getRootElement();
60 root.addAttribute("name", "value");
61
62 Attribute attribute = root.attribute("name");
63 assertTrue(attribute instanceof UserDataAttribute);
64
65 Element cloned = (Element) root.clone();
66 Attribute clonedAttribute = cloned.attribute("name");
67 assertTrue(clonedAttribute instanceof UserDataAttribute);
68 }
69
70 public void testNewAdditions() throws Exception {
71 Element root = getRootElement();
72
73 Element newElement = root.addElement("foo1234");
74 assertTrue("New Element is a UserDataElement",
75 newElement instanceof UserDataElement);
76
77 root.addAttribute("bar456", "123");
78
79 Attribute newAttribute = root.attribute("bar456");
80
81 assertTrue("New Attribute is a UserDataAttribute",
82 newAttribute instanceof UserDataAttribute);
83 }
84
85 public void testNewDocument() throws Exception {
86 DocumentFactory factory = UserDataDocumentFactory.getInstance();
87 Document document = factory.createDocument();
88
89 Element root = document.addElement("root");
90 assertTrue("Root Element is a UserDataElement",
91 root instanceof UserDataElement);
92
93 Element newElement = root.addElement("foo1234");
94 assertTrue("New Element is a UserDataElement",
95 newElement instanceof UserDataElement);
96
97 root.addAttribute("bar456", "123");
98
99 Attribute newAttribute = root.attribute("bar456");
100
101 assertTrue("New Attribute is a UserDataAttribute",
102 newAttribute instanceof UserDataAttribute);
103 }
104
105
106
107 protected void assertUserData(Element root, Object data) throws Exception {
108 Object result = root.getData();
109
110 assertTrue("No user data!", result != null);
111 assertTrue("Stored user data correctly", data.equals(result));
112 }
113
114 protected void setUp() throws Exception {
115 super.setUp();
116
117 SAXReader reader = new SAXReader();
118 reader.setDocumentFactory(UserDataDocumentFactory.getInstance());
119 document = getDocument(INPUT_XML_FILE, reader);
120 }
121 }
122
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