1 /***
2 *
3 * Copyright 2004 Protique Ltd
4 *
5 * Licensed under the Apache License, Version 2.0 (the "License");
6 * you may not use this file except in compliance with the License.
7 * You may obtain a copy of the License at
8 *
9 * http://www.apache.org/licenses/LICENSE-2.0
10 *
11 * Unless required by applicable law or agreed to in writing, software
12 * distributed under the License is distributed on an "AS IS" BASIS,
13 * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
14 * See the License for the specific language governing permissions and
15 * limitations under the License.
16 *
17 **/
18 package org.codehaus.activemq;
19
20 import junit.framework.TestCase;
21 import org.codehaus.activemq.message.ActiveMQMessage;
22 import org.codehaus.activemq.message.ActiveMQQueue;
23 import org.codehaus.activemq.message.ActiveMQTopic;
24
25 import javax.jms.Connection;
26 import javax.jms.Destination;
27 import javax.jms.JMSException;
28 import javax.jms.Message;
29 import javax.jms.TextMessage;
30
31
32 /***
33 * Useful base class for unit test cases
34 *
35 * @version $Revision: 1.7 $
36 */
37 public class TestSupport extends TestCase {
38 protected ActiveMQConnectionFactory connectionFactory;
39 protected boolean topic = true;
40
41 public TestSupport() {
42 super();
43 }
44
45 public TestSupport(String name) {
46 super(name);
47 }
48
49 protected ActiveMQMessage createMessage() {
50 return new ActiveMQMessage();
51 }
52
53 protected Destination createDestination(String subject) {
54 if (topic) {
55 return new ActiveMQTopic(subject);
56 }
57 else {
58 return new ActiveMQQueue(subject);
59 }
60 }
61
62 /***
63 * @param messsage
64 * @param firstSet
65 * @param secondSet
66 */
67 protected void assertTextMessagesEqual(String messsage, Message[] firstSet, Message[] secondSet) throws JMSException {
68 assertEquals("Message count does not match: " + messsage, firstSet.length, secondSet.length);
69 for (int i = 0; i < secondSet.length; i++) {
70 TextMessage m1 = (TextMessage) firstSet[i];
71 TextMessage m2 = (TextMessage) secondSet[i];
72 assertFalse("Message " + (i + 1) + " did not match : " + messsage + ": expected {" + m1 + "}, but was {" + m2 + "}", m1 == null ^ m2 == null);
73 assertEquals("Message " + (i + 1) + " did not match: " + messsage + ": expected {" + m1 + "}, but was {" + m2 + "}", m1.getText(), m2.getText());
74 }
75 }
76
77 protected ActiveMQConnectionFactory createConnectionFactory() {
78 return new ActiveMQConnectionFactory("vm://localhost");
79 }
80
81 /***
82 * Factory method to create a new connection
83 */
84 protected Connection createConnection() throws JMSException {
85 return getConnectionFactory().createConnection();
86 }
87
88 public ActiveMQConnectionFactory getConnectionFactory() {
89 if (connectionFactory == null) {
90 connectionFactory = createConnectionFactory();
91 assertTrue("Should have created a connection factory!", connectionFactory != null);
92 }
93 return connectionFactory;
94 }
95
96 protected String getSubject() {
97 return getClass().getName() + "." + getName();
98 }
99 }