1
2
3
4
5
6
7 package org.codehaus.activemq.message;
8
9 import java.io.IOException;
10
11 import javax.jms.JMSException;
12
13 import org.codehaus.activemq.message.ActiveMQStreamMessage;
14 import org.codehaus.activemq.message.Packet;
15
16 import junit.framework.TestCase;
17
18 /***
19 *
20 * To change the template for this generated type comment go to
21 * Window - Preferences - Java - Code Generation - Code and Comments
22 */
23 public class ActiveMQStreamMessageTest extends TestCase
24 {
25
26 public static void main(String[] args)
27 {
28 junit.textui.TestRunner.run(ActiveMQStreamMessageTest.class);
29 }
30
31
32
33
34 protected void setUp() throws Exception
35 {
36 super.setUp();
37 }
38
39
40
41
42 protected void tearDown() throws Exception
43 {
44 super.tearDown();
45 }
46
47 /***
48 * Constructor for ActiveMQStreamMessageTest.
49 * @param arg0
50 */
51 public ActiveMQStreamMessageTest(String arg0)
52 {
53 super(arg0);
54 }
55
56 public void testGetPacketType()
57 {
58 ActiveMQStreamMessage msg = new ActiveMQStreamMessage();
59 assertTrue(msg.getPacketType() == Packet.ACTIVEMQ_STREAM_MESSAGE);
60 }
61
62 public void testShallowCopy()
63 {
64 ActiveMQStreamMessage msg = new ActiveMQStreamMessage();
65 byte[] data = new byte[50];
66
67 try {
68 msg.setBodyAsBytes(data);
69 ActiveMQStreamMessage msg2 = (ActiveMQStreamMessage)msg.shallowCopy();
70 assertTrue(msg2.getBodyAsBytes() != null && msg2.getBodyAsBytes()==msg.getBodyAsBytes());
71 }catch(Exception ioe){
72 ioe.printStackTrace();
73 assertTrue(false);
74 }
75 }
76
77 public void testDeepCopy()
78 {
79 ActiveMQStreamMessage msg = new ActiveMQStreamMessage();
80 byte[] data = new byte[50];
81 msg.setBodyAsBytes(data);
82
83 try {
84 ActiveMQStreamMessage msg2 = (ActiveMQStreamMessage)msg.deepCopy();
85 assertTrue(msg2.getBodyAsBytes() != null &&
86 msg2.getBodyAsBytes()!=msg.getBodyAsBytes() &&
87 msg2.getBodyAsBytes().length==data.length);
88 }catch(Exception ioe){
89 ioe.printStackTrace();
90 assertTrue(false);
91 }
92 }
93
94 public void testSetData()
95 {
96
97 ActiveMQStreamMessage msg = new ActiveMQStreamMessage();
98 byte[] data = new byte[50];
99 msg.setBodyAsBytes(data);
100 try {
101 assertTrue(data==msg.getBodyAsBytes());
102 }catch(IOException ioe){
103 ioe.printStackTrace();
104 assertTrue(false);
105 }
106 }
107
108
109 public void testReadBoolean()
110 {
111 ActiveMQStreamMessage msg = new ActiveMQStreamMessage();
112 try {
113 msg.writeBoolean(true);
114 msg.reset();
115 assertTrue(msg.readBoolean());
116 msg.reset();
117 assertTrue(msg.readString().equals("true"));
118 }catch(JMSException jmsEx){
119 jmsEx.printStackTrace();
120 assertTrue(false);
121 }
122 }
123
124 public void testreadByte()
125 {
126 ActiveMQStreamMessage msg = new ActiveMQStreamMessage();
127 try {
128 byte test = (byte)4;
129 msg.writeByte(test);
130 msg.reset();
131 assertTrue(msg.readByte()==test);
132 msg.reset();
133 assertTrue(msg.readShort()==test);
134 msg.reset();
135 assertTrue(msg.readInt()==test);
136 msg.reset();
137 assertTrue(msg.readLong()==test);
138 msg.reset();
139 assertTrue(msg.readString().equals(new Byte(test).toString()));
140 }catch(JMSException jmsEx){
141 jmsEx.printStackTrace();
142 assertTrue(false);
143 }
144 }
145
146 public void testReadShort()
147 {
148 ActiveMQStreamMessage msg = new ActiveMQStreamMessage();
149 try {
150 short test = (short)4;
151 msg.writeShort(test);
152 msg.reset();
153 assertTrue(msg.readShort()==test);
154 msg.reset();
155 assertTrue(msg.readInt()==test);
156 msg.reset();
157 assertTrue(msg.readLong()==test);
158 msg.reset();
159 assertTrue(msg.readString().equals(new Short(test).toString()));
160 }catch(JMSException jmsEx){
161 jmsEx.printStackTrace();
162 assertTrue(false);
163 }
164 }
165
166 public void testReadChar()
167 {
168 ActiveMQStreamMessage msg = new ActiveMQStreamMessage();
169 try {
170 char test = 'z';
171 msg.writeChar(test);
172 msg.reset();
173 assertTrue(msg.readChar()==test);
174 msg.reset();
175 assertTrue(msg.readString().equals(new Character(test).toString()));
176 }catch(JMSException jmsEx){
177 jmsEx.printStackTrace();
178 assertTrue(false);
179 }
180 }
181
182 public void testReadInt()
183 {
184 ActiveMQStreamMessage msg = new ActiveMQStreamMessage();
185 try {
186 int test = 4;
187 msg.writeInt(test);
188 msg.reset();
189 assertTrue(msg.readInt()==test);
190 msg.reset();
191 assertTrue(msg.readLong()==test);
192 msg.reset();
193 assertTrue(msg.readString().equals(new Integer(test).toString()));
194 }catch(JMSException jmsEx){
195 jmsEx.printStackTrace();
196 assertTrue(false);
197 }
198 }
199
200 public void testReadLong()
201 {
202 ActiveMQStreamMessage msg = new ActiveMQStreamMessage();
203 try {
204 long test = 4l;
205 msg.writeLong(test);
206 msg.reset();
207 assertTrue(msg.readLong()==test);
208 msg.reset();
209 assertTrue(msg.readString().equals(new Long(test).toString()));
210 }catch(JMSException jmsEx){
211 jmsEx.printStackTrace();
212 assertTrue(false);
213 }
214 }
215
216 public void testReadFloat()
217 {
218 ActiveMQStreamMessage msg = new ActiveMQStreamMessage();
219 try {
220 float test = 4.4f;
221 msg.writeFloat(test);
222 msg.reset();
223 assertTrue(msg.readFloat()==test);
224 msg.reset();
225 assertTrue(msg.readDouble()==test);
226 msg.reset();
227 assertTrue(msg.readString().equals(new Float(test).toString()));
228 }catch(JMSException jmsEx){
229 jmsEx.printStackTrace();
230 assertTrue(false);
231 }
232 }
233
234 public void testReadDouble()
235 {
236 ActiveMQStreamMessage msg = new ActiveMQStreamMessage();
237 try {
238 double test = 4.4d;
239 msg.writeDouble(test);
240 msg.reset();
241 assertTrue(msg.readDouble()==test);
242 msg.reset();
243 assertTrue(msg.readString().equals(new Double(test).toString()));
244 }catch(JMSException jmsEx){
245 jmsEx.printStackTrace();
246 assertTrue(false);
247 }
248 }
249
250 public void testReadString()
251 {
252 ActiveMQStreamMessage msg = new ActiveMQStreamMessage();
253 try {
254 byte testByte = (byte)2;
255 msg.writeString(new Byte(testByte).toString());
256 msg.reset();
257 assertTrue(msg.readByte()==testByte);
258 msg.clearBody();
259 short testShort = 3;
260 msg.writeString(new Short(testShort).toString());
261 msg.reset();
262 assertTrue(msg.readShort()==testShort);
263 msg.clearBody();
264 int testInt = 4;
265 msg.writeString(new Integer(testInt).toString());
266 msg.reset();
267 assertTrue(msg.readInt()==testInt);
268 msg.clearBody();
269 long testLong = 6l;
270 msg.writeString(new Long(testLong).toString());
271 msg.reset();
272 assertTrue(msg.readLong()==testLong);
273 msg.clearBody();
274 float testFloat = 6.6f;
275 msg.writeString(new Float(testFloat).toString());
276 msg.reset();
277 assertTrue(msg.readFloat()==testFloat);
278 msg.clearBody();
279 double testDouble = 7.7d;
280 msg.writeString(new Double(testDouble).toString());
281 msg.reset();
282 assertTrue(msg.readDouble()==testDouble);
283 msg.clearBody();
284 msg.writeString("true");
285 msg.reset();
286 assertTrue(msg.readBoolean());
287
288
289 }catch(JMSException jmsEx){
290 jmsEx.printStackTrace();
291 assertTrue(false);
292 }
293 }
294
295 public void testReadBytes()
296 {
297 ActiveMQStreamMessage msg = new ActiveMQStreamMessage();
298 try {
299 byte[] test = new byte[50];
300 for(int i =0; i< test.length;i++){
301 test[i]=(byte)i;
302 }
303 msg.writeBytes(test);
304 msg.reset();
305 byte[] valid = new byte[test.length];
306 msg.readBytes(valid);
307 for(int i = 0; i < valid.length;i++){
308 assertTrue(valid[i]==test[i]);
309 }
310 }catch(JMSException jmsEx){
311 jmsEx.printStackTrace();
312 assertTrue(false);
313 }
314 }
315
316 public void testReadObject()
317 {
318 ActiveMQStreamMessage msg = new ActiveMQStreamMessage();
319 try {
320 byte testByte = (byte)2;
321 msg.writeByte(testByte);
322 msg.reset();
323 assertTrue(((Byte)msg.readObject()).byteValue()==testByte);
324 msg.clearBody();
325
326 short testShort = 3;
327 msg.writeShort(testShort);
328 msg.reset();
329 assertTrue(((Short)msg.readObject()).shortValue()==testShort);
330 msg.clearBody();
331
332 int testInt = 4;
333 msg.writeInt(testInt);
334 msg.reset();
335 assertTrue(((Integer)msg.readObject()).intValue()==testInt);
336 msg.clearBody();
337
338 long testLong = 6l;
339 msg.writeLong(testLong);
340 msg.reset();
341 assertTrue(((Long)msg.readObject()).longValue()==testLong);
342 msg.clearBody();
343
344 float testFloat = 6.6f;
345 msg.writeFloat(testFloat);
346 msg.reset();
347 assertTrue(((Float)msg.readObject()).floatValue()==testFloat);
348 msg.clearBody();
349
350 double testDouble = 7.7d;
351 msg.writeDouble(testDouble);
352 msg.reset();
353 assertTrue(((Double)msg.readObject()).doubleValue()==testDouble);
354 msg.clearBody();
355
356 char testChar = 'z';
357 msg.writeChar(testChar);
358 msg.reset();
359 assertTrue(((Character)msg.readObject()).charValue()==testChar);
360 msg.clearBody();
361
362 byte[] data = new byte[50];
363 for(int i = 0; i < data.length;i++){
364 data[i] = (byte)i;
365 }
366 msg.writeBytes(data);
367 msg.reset();
368 byte[] valid = (byte[])msg.readObject();
369 assertTrue(valid.length==data.length);
370 for(int i =0; i < valid.length;i++){
371 assertTrue(valid[i]==data[i]);
372 }
373 msg.clearBody();
374 msg.writeBoolean(true);
375 msg.reset();
376 assertTrue(((Boolean)msg.readObject()).booleanValue());
377
378
379 }catch(JMSException jmsEx){
380 jmsEx.printStackTrace();
381 assertTrue(false);
382 }
383 }
384
385
386 }