1
2
3
4
5
6
7 package org.codehaus.activemq.message;
8
9 import junit.framework.TestCase;
10
11 import javax.jms.JMSException;
12 import javax.jms.Message;
13 import javax.jms.MessageNotWriteableException;
14 import java.util.Enumeration;
15 import java.util.Hashtable;
16
17 /***
18 * To change the template for this generated type comment go to
19 * Window - Preferences - Java - Code Generation - Code and Comments
20 */
21 public class ActiveMQMessageTest extends TestCase {
22 private String jmsMessageID;
23 private String jmsClientID;
24 private String jmsCorrelationID;
25 private ActiveMQDestination jmsDestination;
26 private ActiveMQDestination jmsReplyTo;
27 private int jmsDeliveryMode;
28 private boolean jmsRedelivered;
29 private String jmsType;
30 private long jmsExpiration;
31 private int jmsPriority;
32 private long jmsTimestamp;
33 private Hashtable properties;
34 private boolean readOnlyProperties;
35 protected boolean readOnlyMessage;
36 private String entryBrokerName;
37 private String entryClusterName;
38 private int[] consumerIDs;
39
40
41 public static void main(String[] args) {
42 }
43
44
45
46
47 protected void setUp() throws Exception {
48 super.setUp();
49 this.jmsMessageID = "testid";
50 this.jmsClientID = "testclientid";
51 this.jmsCorrelationID = "testcorrelationid";
52 this.jmsDestination = new ActiveMQTopic("test.topic");
53 this.jmsReplyTo = new ActiveMQTemporaryTopic("test.replyto.topic");
54 this.jmsDeliveryMode = Message.DEFAULT_DELIVERY_MODE;
55 this.jmsRedelivered = true;
56 this.jmsType = "test type";
57 this.jmsExpiration = 100000;
58 this.jmsPriority = 5;
59 this.jmsTimestamp = System.currentTimeMillis();
60 this.properties = new Hashtable();
61 this.readOnlyProperties = false;
62 this.readOnlyMessage = false;
63 this.entryBrokerName = "test broker";
64 this.entryClusterName = "test cluster";
65 this.consumerIDs = new int[3];
66 for (int i = 0; i < this.consumerIDs.length; i++) {
67 this.consumerIDs[i] = i;
68 }
69
70 }
71
72
73
74
75 protected void tearDown() throws Exception {
76 super.tearDown();
77 }
78
79 /***
80 * Constructor for ActiveMQMessageTest.
81 *
82 * @param arg0
83 */
84 public ActiveMQMessageTest(String arg0) {
85 super(arg0);
86 }
87
88 public void testHashCode() {
89 ActiveMQMessage msg = new ActiveMQMessage();
90 assertTrue(msg.hashCode() > 0);
91 msg.setJMSMessageID(this.jmsMessageID);
92 assertTrue(msg.hashCode() == jmsMessageID.hashCode());
93 }
94
95 public void testGetPacketType() {
96 ActiveMQMessage msg = new ActiveMQMessage();
97 assertTrue(msg.getPacketType() == Packet.ACTIVEMQ_MESSAGE);
98 }
99
100 public void testSetReadOnly() {
101 ActiveMQMessage msg = new ActiveMQMessage();
102 msg.setReadOnly(true);
103 boolean test = false;
104 try {
105 msg.setIntProperty("test", 1);
106 }
107 catch (MessageNotWriteableException me) {
108 test = true;
109 }
110 catch (JMSException e) {
111 e.printStackTrace(System.err);
112 test = false;
113 }
114 assertTrue(test);
115 }
116
117
118
119
120 public void testEqualsObject() {
121 ActiveMQMessage msg1 = new ActiveMQMessage();
122 ActiveMQMessage msg2 = new ActiveMQMessage();
123 msg1.setJMSMessageID(this.jmsMessageID);
124 assertTrue(!msg1.equals(msg2));
125 msg2.setJMSMessageID(this.jmsMessageID);
126 assertTrue(msg1.equals(msg2));
127 }
128
129 public void testShallowCopy() throws Exception {
130 ActiveMQMessage msg1 = new ActiveMQMessage();
131 msg1.setJMSMessageID(jmsMessageID);
132 ActiveMQMessage msg2 = msg1.shallowCopy();
133 assertTrue(msg1 != msg2 && msg1.equals(msg2));
134 }
135
136 public void testInitializeOther() {
137 this.jmsMessageID = "testid";
138 this.jmsClientID = "testclientid";
139 this.jmsCorrelationID = "testcorrelationid";
140 this.jmsDestination = new ActiveMQTopic("test.topic");
141 this.jmsReplyTo = new ActiveMQTemporaryTopic("test.replyto.topic");
142 this.jmsDeliveryMode = Message.DEFAULT_DELIVERY_MODE;
143 this.jmsRedelivered = true;
144 this.jmsType = "test type";
145 this.jmsExpiration = 100000;
146 this.jmsPriority = 5;
147 this.jmsTimestamp = System.currentTimeMillis();
148 this.properties = new Hashtable();
149 this.readOnlyProperties = false;
150 this.readOnlyMessage = false;
151 this.entryBrokerName = "test broker";
152 this.entryClusterName = "test cluster";
153 this.consumerIDs = new int[3];
154
155 ActiveMQMessage msg1 = new ActiveMQMessage();
156 msg1.setJMSMessageID(this.jmsMessageID);
157 msg1.setJMSClientID(this.jmsClientID);
158 msg1.setJMSCorrelationID(this.jmsCorrelationID);
159 msg1.setJMSDestination(this.jmsDestination);
160 msg1.setJMSReplyTo(this.jmsReplyTo);
161 msg1.setJMSDeliveryMode(this.jmsDeliveryMode);
162 msg1.setJMSRedelivered(this.jmsRedelivered);
163 msg1.setJMSType(this.jmsType);
164 msg1.setJMSExpiration(this.jmsExpiration);
165 msg1.setJMSPriority(this.jmsPriority);
166 msg1.setJMSTimestamp(this.jmsTimestamp);
167 msg1.setProperties(this.properties);
168 msg1.setReadOnly(true);
169 msg1.setEntryBrokerName(this.entryBrokerName);
170 msg1.setEntryClusterName(this.entryClusterName);
171 msg1.setConsumerNos(this.consumerIDs);
172 ActiveMQMessage msg2 = new ActiveMQMessage();
173 msg1.initializeOther(msg2);
174 assertTrue(msg1.getJMSMessageID().equals(msg2.getJMSMessageID()));
175 assertTrue(msg1.getJMSClientID().equals(msg2.getJMSClientID()));
176 assertTrue(msg1.getJMSCorrelationID().equals(msg2.getJMSCorrelationID()));
177 assertTrue(msg1.getJMSDestination().equals(msg2.getJMSDestination()));
178 assertTrue(msg1.getJMSReplyTo().equals(msg2.getJMSReplyTo()));
179 assertTrue(msg1.getJMSDeliveryMode() == msg2.getJMSDeliveryMode());
180 assertTrue(msg1.getJMSRedelivered() == msg2.getJMSRedelivered());
181 assertTrue(msg1.getJMSType().equals(msg2.getJMSType()));
182 assertTrue(msg1.getJMSExpiration() == msg2.getJMSExpiration());
183 assertTrue(msg1.getJMSPriority() == msg2.getJMSPriority());
184 assertTrue(msg1.getJMSTimestamp() == msg2.getJMSTimestamp());
185 assertTrue(msg1.getProperties().equals(msg2.getProperties()));
186 assertTrue(msg1.getEntryBrokerName().equals(msg2.getEntryBrokerName()));
187 assertTrue(msg1.getEntryClusterName().equals(msg2.getEntryClusterName()));
188 assertTrue(msg1.getConsumerNos().equals(msg2.getConsumerNos()));
189
190 }
191
192 public void testGetJMSMessageID() {
193 ActiveMQMessage msg = new ActiveMQMessage();
194 msg.setJMSMessageID(this.jmsMessageID);
195 assertTrue(msg.getJMSMessageID() == this.jmsMessageID);
196 }
197
198 public void testSetJMSMessageID() {
199
200 ActiveMQMessage msg = new ActiveMQMessage();
201 msg.setJMSMessageID(this.jmsMessageID);
202 assertTrue(msg.getJMSMessageID() == this.jmsMessageID);
203 }
204
205 public void testGetJMSTimestamp() {
206 ActiveMQMessage msg = new ActiveMQMessage();
207 msg.setJMSTimestamp(this.jmsTimestamp);
208 assertTrue(msg.getJMSTimestamp() == this.jmsTimestamp);
209 }
210
211 public void testSetJMSTimestamp() {
212 ActiveMQMessage msg = new ActiveMQMessage();
213 msg.setJMSTimestamp(this.jmsTimestamp);
214 assertTrue(msg.getJMSTimestamp() == this.jmsTimestamp);
215 }
216
217 public void testGetJMSCorrelationIDAsBytes() {
218 ActiveMQMessage msg = new ActiveMQMessage();
219 msg.setJMSCorrelationID(this.jmsCorrelationID);
220 byte[] testbytes = msg.getJMSCorrelationIDAsBytes();
221 String str2 = new String(testbytes);
222 assertTrue(this.jmsCorrelationID.equals(str2));
223 }
224
225 public void testSetJMSCorrelationIDAsBytes() {
226 ActiveMQMessage msg = new ActiveMQMessage();
227 byte[] testbytes = this.jmsCorrelationID.getBytes();
228 msg.setJMSCorrelationIDAsBytes(testbytes);
229 testbytes = msg.getJMSCorrelationIDAsBytes();
230 String str2 = new String(testbytes);
231 assertTrue(this.jmsCorrelationID.equals(str2));
232 }
233
234 public void testSetJMSCorrelationID() {
235 ActiveMQMessage msg = new ActiveMQMessage();
236 msg.setJMSCorrelationID(this.jmsCorrelationID);
237 assertTrue(msg.getJMSCorrelationID().equals(this.jmsCorrelationID));
238 }
239
240 public void testGetJMSCorrelationID() {
241 ActiveMQMessage msg = new ActiveMQMessage();
242 msg.setJMSCorrelationID(this.jmsCorrelationID);
243 assertTrue(msg.getJMSCorrelationID().equals(this.jmsCorrelationID));
244 }
245
246 public void testGetJMSReplyTo() {
247 ActiveMQMessage msg = new ActiveMQMessage();
248 msg.setJMSReplyTo(this.jmsReplyTo);
249 assertTrue(msg.getJMSReplyTo().equals(this.jmsReplyTo));
250 }
251
252 public void testSetJMSReplyTo() {
253 ActiveMQMessage msg = new ActiveMQMessage();
254 msg.setJMSReplyTo(this.jmsReplyTo);
255 assertTrue(msg.getJMSReplyTo().equals(this.jmsReplyTo));
256 }
257
258 public void testGetJMSDestination() {
259 ActiveMQMessage msg = new ActiveMQMessage();
260 msg.setJMSDestination(this.jmsDestination);
261 assertTrue(msg.getJMSDestination().equals(this.jmsDestination));
262 }
263
264 public void testSetJMSDestination() {
265 ActiveMQMessage msg = new ActiveMQMessage();
266 msg.setJMSDestination(this.jmsDestination);
267 assertTrue(msg.getJMSDestination().equals(this.jmsDestination));
268 }
269
270 public void testGetJMSDeliveryMode() {
271 ActiveMQMessage msg = new ActiveMQMessage();
272 msg.setJMSDeliveryMode(this.jmsDeliveryMode);
273 assertTrue(msg.getJMSDeliveryMode() == this.jmsDeliveryMode);
274 }
275
276 public void testSetJMSDeliveryMode() {
277 ActiveMQMessage msg = new ActiveMQMessage();
278 msg.setJMSDeliveryMode(this.jmsDeliveryMode);
279 assertTrue(msg.getJMSDeliveryMode() == this.jmsDeliveryMode);
280 }
281
282 public void testGetJMSRedelivered() {
283 ActiveMQMessage msg = new ActiveMQMessage();
284 msg.setJMSRedelivered(this.jmsRedelivered);
285 assertTrue(msg.getJMSRedelivered() == this.jmsRedelivered);
286 }
287
288 public void testSetJMSRedelivered() {
289 ActiveMQMessage msg = new ActiveMQMessage();
290 msg.setJMSRedelivered(this.jmsRedelivered);
291 assertTrue(msg.getJMSRedelivered() == this.jmsRedelivered);
292 }
293
294 public void testGetJMSType() {
295 ActiveMQMessage msg = new ActiveMQMessage();
296 msg.setJMSType(this.jmsType);
297 assertTrue(msg.getJMSType().equals(this.jmsType));
298 }
299
300 public void testSetJMSType() {
301 ActiveMQMessage msg = new ActiveMQMessage();
302 msg.setJMSType(this.jmsType);
303 assertTrue(msg.getJMSType().equals(this.jmsType));
304 }
305
306 public void testGetJMSExpiration() {
307 ActiveMQMessage msg = new ActiveMQMessage();
308 msg.setJMSExpiration(this.jmsExpiration);
309 assertTrue(msg.getJMSExpiration() == this.jmsExpiration);
310 }
311
312 public void testSetJMSExpiration() {
313 ActiveMQMessage msg = new ActiveMQMessage();
314 msg.setJMSExpiration(this.jmsExpiration);
315 assertTrue(msg.getJMSExpiration() == this.jmsExpiration);
316 }
317
318 public void testGetJMSPriority() {
319 ActiveMQMessage msg = new ActiveMQMessage();
320 msg.setJMSPriority(this.jmsPriority);
321 assertTrue(msg.getJMSPriority() == this.jmsPriority);
322 }
323
324 public void testSetJMSPriority() {
325 ActiveMQMessage msg = new ActiveMQMessage();
326 msg.setJMSPriority(this.jmsPriority);
327 assertTrue(msg.getJMSPriority() == this.jmsPriority);
328 }
329
330 public void testClearProperties() {
331 Hashtable props = new Hashtable();
332 props.put("test", new Integer(1));
333 ActiveMQMessage msg = new ActiveMQMessage();
334 msg.setProperties(props);
335 msg.clearProperties();
336 assertTrue(props.size() == 0);
337 }
338
339 public void testPropertyExists() {
340 Hashtable props = new Hashtable();
341 props.put("test", new Integer(1));
342 ActiveMQMessage msg = new ActiveMQMessage();
343 msg.setProperties(props);
344 msg.clearProperties();
345 assertTrue(props.size() == 0);
346 }
347
348 public void testGetBooleanProperty() throws JMSException {
349 ActiveMQMessage msg = new ActiveMQMessage();
350 String name = "booleanProperty";
351 msg.setBooleanProperty(name, true);
352 assertTrue(msg.getBooleanProperty(name));
353 }
354
355 public void testGetByteProperty() throws JMSException {
356 ActiveMQMessage msg = new ActiveMQMessage();
357 String name = "byteProperty";
358 msg.setByteProperty(name, (byte) 1);
359 assertTrue(msg.getByteProperty(name) == 1);
360 }
361
362 public void testGetShortProperty() throws JMSException {
363 ActiveMQMessage msg = new ActiveMQMessage();
364 String name = "shortProperty";
365 msg.setShortProperty(name, (short) 1);
366 assertTrue(msg.getShortProperty(name) == 1);
367 }
368
369 public void testGetIntProperty() throws JMSException {
370 ActiveMQMessage msg = new ActiveMQMessage();
371 String name = "intProperty";
372 msg.setIntProperty(name, 1);
373 assertTrue(msg.getIntProperty(name) == 1);
374 }
375
376 public void testGetLongProperty() throws JMSException {
377 ActiveMQMessage msg = new ActiveMQMessage();
378 String name = "longProperty";
379 msg.setLongProperty(name, 1);
380 assertTrue(msg.getLongProperty(name) == 1);
381 }
382
383 public void testGetFloatProperty() throws JMSException {
384 ActiveMQMessage msg = new ActiveMQMessage();
385 String name = "floatProperty";
386 msg.setFloatProperty(name, 1.3f);
387 assertTrue(msg.getFloatProperty(name) == 1.3f);
388 }
389
390 public void testGetDoubleProperty() throws JMSException {
391 ActiveMQMessage msg = new ActiveMQMessage();
392 String name = "doubleProperty";
393 msg.setDoubleProperty(name, 1.3d);
394 assertTrue(msg.getDoubleProperty(name) == 1.3);
395 }
396
397 public void testGetStringProperty() throws JMSException {
398 ActiveMQMessage msg = new ActiveMQMessage();
399 String name = "stringProperty";
400 msg.setStringProperty(name, name);
401 assertTrue(msg.getStringProperty(name).equals(name));
402 }
403
404 public void testGetObjectProperty() throws JMSException {
405 ActiveMQMessage msg = new ActiveMQMessage();
406 String name = "floatProperty";
407 msg.setFloatProperty(name, 1.3f);
408 assertTrue(msg.getObjectProperty(name) instanceof Float);
409 assertTrue(((Float) msg.getObjectProperty(name)).floatValue() == 1.3f);
410 }
411
412 public void testGetPropertyNames() throws JMSException {
413 ActiveMQMessage msg = new ActiveMQMessage();
414 String name = "floatProperty";
415 msg.setFloatProperty(name, 1.3f);
416 for (Enumeration iter = msg.getPropertyNames(); iter.hasMoreElements();) {
417 assertTrue(iter.nextElement().equals(name));
418 }
419 }
420
421 public void testGetProperties() throws JMSException {
422 ActiveMQMessage msg = new ActiveMQMessage();
423 String name = "floatProperty";
424 msg.setFloatProperty(name, 1.3f);
425 Hashtable props = msg.getProperties();
426 assertTrue(props.get(name) instanceof Float);
427 assertTrue(((Float) props.get(name)).floatValue() == 1.3f);
428 }
429
430
431 public void testSetObjectProperty() throws JMSException {
432 ActiveMQMessage msg = new ActiveMQMessage();
433 String name = "floatProperty";
434 msg.setFloatProperty(name, 1.3f);
435 Hashtable props = msg.getProperties();
436 assertTrue(props.get(name) instanceof Float);
437 assertTrue(((Float) props.get(name)).floatValue() == 1.3f);
438 }
439
440
441 public void testSetNullProperty() throws JMSException {
442 Message msg = new ActiveMQMessage();
443 String name = "cheese";
444 msg.setStringProperty(name, "Cheddar");
445 assertEquals("Cheddar", msg.getStringProperty(name));
446
447 msg.setStringProperty(name, null);
448 assertEquals(null, msg.getStringProperty(name));
449 }
450
451 public void testSetNullPropertyName() throws JMSException {
452 Message msg = new ActiveMQMessage();
453
454 try {
455 msg.setStringProperty(null, "Cheese");
456 fail("Should have thrown exception");
457 }
458 catch (IllegalArgumentException e) {
459 System.out.println("Worked, caught: " + e);
460 }
461 }
462
463 public void testSetEmptyPropertyName() throws JMSException {
464 Message msg = new ActiveMQMessage();
465
466 try {
467 msg.setStringProperty("", "Cheese");
468 fail("Should have thrown exception");
469 }
470 catch (IllegalArgumentException e) {
471 System.out.println("Worked, caught: " + e);
472 }
473 }
474
475 public void testAcknowledge() {
476
477 }
478
479 public void testClearBody() {
480
481 }
482
483
484 public void testGetEntryBrokerName() {
485 ActiveMQMessage msg = new ActiveMQMessage();
486 msg.setEntryBrokerName(this.entryBrokerName);
487 assertTrue(msg.getEntryBrokerName() == this.entryBrokerName);
488 }
489
490
491 public void testGetEntryClusterName() {
492 ActiveMQMessage msg = new ActiveMQMessage();
493 msg.setEntryClusterName(this.entryClusterName);
494 assertTrue(msg.getEntryClusterName() == this.entryClusterName);
495 }
496
497
498 public void testGetConsumerIDs() {
499 ActiveMQMessage msg = new ActiveMQMessage();
500 msg.setConsumerNos(this.consumerIDs);
501 assertTrue(msg.getConsumerNos() == this.consumerIDs);
502 }
503
504 }