KickJava   Java API By Example, From Geeks To Geeks.

Java > Open Source Codes > com > thoughtworks > xstream > converters > javabean > JavaBeanConverterTest


1 package com.thoughtworks.xstream.converters.javabean;
2
3 import com.thoughtworks.acceptance.StandardObject;
4 import com.thoughtworks.xstream.XStream;
5 import junit.framework.TestCase;
6
7 public class JavaBeanConverterTest extends TestCase {
8
9     public static class World extends StandardObject {
10         int anInt = 1;
11
12         Integer JavaDoc anInteger = new Integer JavaDoc(2);
13
14         char anChar = 'a';
15
16         Character JavaDoc anCharacter = new Character JavaDoc('w');
17
18         boolean anBool = true;
19
20         Boolean JavaDoc anBoolean = new Boolean JavaDoc(false);
21
22         byte aByte = 4;
23
24         Byte JavaDoc aByteClass = new Byte JavaDoc("5");
25
26         short aShort = 6;
27
28         Short JavaDoc aShortClass = new Short JavaDoc("7");
29
30         float aFloat = 8f;
31
32         Float JavaDoc aFloatClass = new Float JavaDoc("9");
33
34         long aLong = 10;
35
36         Long JavaDoc aLongClass = new Long JavaDoc("11");
37
38         String JavaDoc anString = new String JavaDoc("XStream programming!");
39
40         public byte getAByte() {
41             return aByte;
42         }
43
44         public void setAByte(byte byte1) {
45             aByte = byte1;
46         }
47
48         public Byte JavaDoc getAByteClass() {
49             return aByteClass;
50         }
51
52         public void setAByteClass(Byte JavaDoc byteClass) {
53             aByteClass = byteClass;
54         }
55
56         public float getAFloat() {
57             return aFloat;
58         }
59
60         public void setAFloat(float float1) {
61             aFloat = float1;
62         }
63
64         public Float JavaDoc getAFloatClass() {
65             return aFloatClass;
66         }
67
68         public void setAFloatClass(Float JavaDoc floatClass) {
69             aFloatClass = floatClass;
70         }
71
72         public long getALong() {
73             return aLong;
74         }
75
76         public void setALong(long long1) {
77             aLong = long1;
78         }
79
80         public Long JavaDoc getALongClass() {
81             return aLongClass;
82         }
83
84         public void setALongClass(Long JavaDoc longClass) {
85             aLongClass = longClass;
86         }
87
88         public boolean isAnBool() {
89             return anBool;
90         }
91
92         public void setAnBool(boolean anBool) {
93             this.anBool = anBool;
94         }
95
96         public Boolean JavaDoc getAnBoolean() {
97             return anBoolean;
98         }
99
100         public void setAnBoolean(Boolean JavaDoc anBoolean) {
101             this.anBoolean = anBoolean;
102         }
103
104         public char getAnChar() {
105             return anChar;
106         }
107
108         public void setAnChar(char anChar) {
109             this.anChar = anChar;
110         }
111
112         public Character JavaDoc getAnCharacter() {
113             return anCharacter;
114         }
115
116         public void setAnCharacter(Character JavaDoc anCharacter) {
117             this.anCharacter = anCharacter;
118         }
119
120         public int getAnInt() {
121             return anInt;
122         }
123
124         public void setAnInt(int anInt) {
125             this.anInt = anInt;
126         }
127
128         public Integer JavaDoc getAnInteger() {
129             return anInteger;
130         }
131
132         public void setAnInteger(Integer JavaDoc anInteger) {
133             this.anInteger = anInteger;
134         }
135
136         public String JavaDoc getAnString() {
137             return anString;
138         }
139
140         public void setAnString(String JavaDoc anString) {
141             this.anString = anString;
142         }
143
144         public short getAShort() {
145             return aShort;
146         }
147
148         public void setAShort(short short1) {
149             aShort = short1;
150         }
151
152         public Short JavaDoc getAShortClass() {
153             return aShortClass;
154         }
155
156         public void setAShortClass(Short JavaDoc shortClass) {
157             aShortClass = shortClass;
158         }
159     }
160
161     public void testSerializesAllPrimitiveFieldsInACustomObject() {
162         World world = new World();
163
164         XStream xstream = new XStream();
165         xstream.registerConverter(new JavaBeanConverter(xstream.getClassMapper(), "class"), -20);
166         xstream.alias("world", World.class);
167
168
169         String JavaDoc expected =
170             "<world>\n" +
171             " <AByte>4</AByte>\n" +
172             " <AByteClass>5</AByteClass>\n" +
173             " <AFloat>8.0</AFloat>\n" +
174             " <AFloatClass>9.0</AFloatClass>\n" +
175             " <ALong>10</ALong>\n" +
176             " <ALongClass>11</ALongClass>\n" +
177             " <AShort>6</AShort>\n" +
178             " <AShortClass>7</AShortClass>\n" +
179             " <anBool>true</anBool>\n" +
180             " <anBoolean>false</anBoolean>\n" +
181             " <anChar>a</anChar>\n" +
182             " <anCharacter>w</anCharacter>\n" +
183             " <anInt>1</anInt>\n" +
184             " <anInteger>2</anInteger>\n" +
185             " <anString>XStream programming!</anString>\n" +
186             "</world>";
187
188         String JavaDoc result = xstream.toXML(world);
189
190         assertEquals(expected, result);
191     }
192
193     /**
194      * Only normal and trans are serializable properties, the field modifiers
195      * does not matter
196      */

197     public static class TypesOfFields extends StandardObject {
198         String JavaDoc normal = "normal";
199
200         transient String JavaDoc trans = "transient";
201
202         final String JavaDoc fin = "final";
203
204         static String JavaDoc stat = "stat";
205
206         public static String JavaDoc getStat() {
207             return stat;
208         }
209
210         public static void setStat(String JavaDoc stat) {
211             TypesOfFields.stat = stat;
212         }
213
214         public String JavaDoc getFin() {
215             return fin;
216         }
217
218         public String JavaDoc getNormal() {
219             return normal;
220         }
221
222         public void setNormal(String JavaDoc normal) {
223             this.normal = normal;
224         }
225
226         public String JavaDoc getTrans() {
227             return trans;
228         }
229
230         public void setTrans(String JavaDoc trans) {
231             this.trans = trans;
232         }
233
234
235     }
236
237     public void testDoesNotSerializeTransientOrStaticFields() {
238         TypesOfFields fields = new TypesOfFields();
239         String JavaDoc expected = "" +
240             "<types>\n" +
241             " <normal>normal</normal>\n" +
242             " <trans>transient</trans>\n" +
243             "</types>";
244
245
246         XStream xstream = new XStream();
247         xstream.registerConverter(new JavaBeanConverter(xstream.getClassMapper(), "class"), -20);
248         xstream.alias("types", TypesOfFields.class);
249
250         String JavaDoc xml = xstream.toXML(fields);
251         assertEquals(expected, xml);
252
253     }
254
255 }
Popular Tags