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