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.message;
19
20 import junit.framework.TestCase;
21 import junit.textui.TestRunner;
22
23 public class ActiveMQDestinationTest extends TestCase {
24 ActiveMQDestination topic1 = new ActiveMQTopic("FOO.BAR");
25 ActiveMQDestination topic2 = new ActiveMQTopic("FOO.XXX");
26 ActiveMQDestination topic3 = new ActiveMQTopic("FOO.BAR");
27 ActiveMQDestination topic4 = new ActiveMQTopic(null);
28
29 ActiveMQDestination queue1 = new ActiveMQQueue("FOO.BAR");
30 ActiveMQDestination queue2 = new ActiveMQQueue("FOO.XXX");
31 ActiveMQDestination queue3 = new ActiveMQQueue("FOO.BAR");
32 ActiveMQDestination queue4 = new ActiveMQQueue(null);
33
34
35 public static void main(String[] args) {
36 TestRunner.run(ActiveMQDestinationTest.class);
37 }
38
39 public void testCompareTopics() {
40 assertCompareTo(topic1, topic2, -1);
41 assertCompareTo(topic2, topic1, 1);
42 assertCompareTo(topic1, topic3, 0);
43 assertCompareTo(topic4, topic1, -1);
44 assertCompareTo(topic1, topic4, 1);
45 }
46
47 public void testCompareQueues() {
48 assertCompareTo(queue1, queue2, -1);
49 assertCompareTo(queue2, queue1, 1);
50 assertCompareTo(queue1, queue3, 0);
51 assertCompareTo(queue4, queue1, -1);
52 assertCompareTo(queue1, queue4, 1);
53 }
54
55 public void testCompareQueuesAndTopics() {
56 assertCompareTo(topic1, queue1, 1);
57 assertCompareTo(queue1, topic1, -1);
58 assertCompareTo(topic1, queue2, -1);
59 assertCompareTo(queue2, topic1, 1);
60 }
61
62 protected void assertCompareTo(ActiveMQDestination dest1, ActiveMQDestination dest2, int expected) {
63 int value = dest1.compareTo(dest2);
64 String message = "Comparsing: " + dest1 + " to: " + dest2 + " found value: " + value + " expected: " + expected;
65 String hashCodeMessage = "HashCode for: " + dest1 + " is " + dest1.hashCode() + " for: " + dest2 + " is " + dest2.hashCode();
66
67
68 switch (expected) {
69 case 0:
70 assertEquals(message, 0, value);
71 assertEquals(hashCodeMessage, dest1.hashCode(), dest2.hashCode());
72 break;
73 case 1:
74 assertTrue(message, value > 0);
75 assertTrue(hashCodeMessage, dest1.hashCode() != dest2.hashCode());
76 break;
77 default:
78 assertTrue(message, value < 0);
79 assertTrue(hashCodeMessage, dest1.hashCode() != dest2.hashCode());
80
81 }
82 }
83
84 public void testGetClientID(){
85 String clientID = "TestClientId";
86 String temp = ActiveMQDestination.createTemporaryName(clientID);
87 ActiveMQDestination tempDest = new ActiveMQTemporaryTopic(temp);
88 assertTrue(ActiveMQDestination.getClientId(tempDest).equals(clientID));
89 }
90
91 }