1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17 package org.apache.commons.betwixt.digester;
18
19 import java.io.FileInputStream;
20 import java.io.InputStream;
21 import java.io.StringWriter;
22
23 import junit.framework.Test;
24 import junit.framework.TestSuite;
25 import junit.textui.TestRunner;
26
27 import org.apache.commons.betwixt.AbstractTestCase;
28 import org.apache.commons.betwixt.io.BeanReader;
29 import org.apache.commons.betwixt.io.BeanWriter;
30
31
32
33
34
35
36
37
38 /*** Test harness for ID-IDRef reading.
39 *
40 * @author Robert Burrell Donkin
41 * @version $Revision: 1.9 $
42 */
43 public class TestIDRead extends AbstractTestCase {
44
45 public static void main( String[] args ) {
46 TestRunner.run( suite() );
47 }
48
49 public static Test suite() {
50 return new TestSuite(TestIDRead.class);
51 }
52
53 public TestIDRead(String testName) {
54 super(testName);
55 }
56
57 public void testSimpleRead() throws Exception {
58 StringWriter out = new StringWriter();
59 out.write("<?xml version='1.0'?>");
60 BeanWriter writer = new BeanWriter(out);
61 IDBean bean = new IDBean("alpha","one");
62 bean.addChild(new IDBean("beta","two"));
63 bean.addChild(new IDBean("gamma","three"));
64 writer.write(bean);
65
66 String xml = "<IDBean><name>one</name><children><child><name>two</name><children/>"
67 + "<id>beta</id></child><child><name>three</name><children/>"
68 + "<id>gamma</id></child></children><id>alpha</id></IDBean>";
69
70 xmlAssertIsomorphicContent(
71 parseString(xml),
72 parseString(out.getBuffer().toString()),
73 true);
74
75 BeanReader reader = new BeanReader();
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106 reader.registerBeanClass( IDBean.class );
107
108 InputStream in = new FileInputStream(
109 getTestFile("src/test/org/apache/commons/betwixt/digester/SimpleReadTest.xml") );
110
111 try {
112
113
114 Object obj = reader.parse( in );
115
116
117 assertEquals("Read bean type is incorrect", true, (obj instanceof IDBean) );
118 IDBean alpha = (IDBean) obj;
119
120 assertEquals("Wrong list size", 2 , alpha.getChildren().size());
121
122 IDBean beta = (IDBean) alpha.getChildren().get(0);
123 assertEquals("Wrong name (A)", "beta" , beta.getName());
124
125 IDBean gamma = (IDBean) alpha.getChildren().get(1);
126 assertEquals("Wrong name (B)", "gamma" , gamma.getName());
127 }
128 finally {
129 in.close();
130 }
131 }
132
133 public void testIDRead() throws Exception {
134
135 BeanReader reader = new BeanReader();
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154 reader.registerBeanClass( IDBean.class );
155
156 InputStream in = new FileInputStream(
157 getTestFile("src/test/org/apache/commons/betwixt/digester/IDTest1.xml") );
158
159 try {
160 Object obj = reader.parse( in );
161
162 assertEquals("Read bean type is incorrect", true, (obj instanceof IDBean) );
163 IDBean alpha = (IDBean) obj;
164
165 assertEquals("Wrong list size (A)", 2 , alpha.getChildren().size());
166
167 IDBean beta = (IDBean) alpha.getChildren().get(0);
168 assertEquals("Wrong name (A)", "beta" , beta.getName());
169
170 IDBean gamma = (IDBean) alpha.getChildren().get(1);
171 assertEquals("Wrong name (B)", "gamma" , gamma.getName());
172 assertEquals("Wrong list size (B)", 2 , gamma.getChildren().size());
173
174 IDBean sonOfGamma = (IDBean) gamma.getChildren().get(1);
175
176 assertEquals("Wrong id (A)", "two" , sonOfGamma.getId());
177 assertEquals("Wrong name (C)", "beta" , sonOfGamma.getName());
178
179 assertEquals("IDREF bean not equal to ID bean", beta, sonOfGamma);
180 }
181 finally {
182 in.close();
183 }
184 }
185 }