1
2
3
4
5
6
7 package org.codehaus.activemq.message;
8
9 import org.codehaus.activemq.message.ActiveMQDestination;
10 import org.codehaus.activemq.message.ActiveMQTopic;
11 import org.codehaus.activemq.message.ConsumerInfo;
12 import org.codehaus.activemq.message.ConsumerInfoReader;
13 import org.codehaus.activemq.message.ConsumerInfoWriter;
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 ConsumerInfoReaderTest extends TestCase
24 {
25 private String consumerId;
26 private ActiveMQDestination destination;
27 private String clientId;
28 private String subscriberName;
29 private String selector;
30 private long startTime;
31 private boolean started;
32 private int consumerNo;
33 private int prefetchNumber;
34
35 public static void main(String[] args)
36 {
37 junit.textui.TestRunner.run(ConsumerInfoReaderTest.class);
38 }
39
40
41
42
43 protected void setUp() throws Exception
44 {
45 super.setUp();
46 this.consumerId = "testConsumerId";
47 this.clientId = "testclientId";
48 this.subscriberName = "testsubscriberName";
49 this.selector = "testselector";
50 this.destination = new ActiveMQTopic("testtopic");
51 this.startTime = System.currentTimeMillis();
52 this.started = true;
53 this.consumerNo = 3;
54 this.prefetchNumber = 13;
55 }
56
57
58
59
60 protected void tearDown() throws Exception
61 {
62 super.tearDown();
63 }
64
65 /***
66 * Constructor for ConsumerInfoReaderTest.
67 * @param arg0
68 */
69 public ConsumerInfoReaderTest(String arg0)
70 {
71 super(arg0);
72 }
73
74 public void testGetPacketType()
75 {
76 ConsumerInfoReader reader = new ConsumerInfoReader();
77 assertTrue(reader.getPacketType()==Packet.CONSUMER_INFO);
78 }
79
80 public void testReadPacket()
81 {
82 ConsumerInfo info = new ConsumerInfo();
83 info.setId(this.consumerId);
84 info.setConsumerNo(this.consumerNo);
85 info.setPrefetchNumber(this.prefetchNumber);
86 info.setClientId(this.clientId);
87 info.setConsumerName(this.subscriberName);
88 info.setSelector(this.selector);
89 info.setDestination(this.destination);
90 info.setStartTime(this.startTime);
91 info.setStarted(this.started);
92
93 ConsumerInfoWriter writer = new ConsumerInfoWriter();
94 ConsumerInfoReader reader = new ConsumerInfoReader();
95 try {
96 byte[] data = writer.writePacketToByteArray(info);
97 ConsumerInfo testInfo = (ConsumerInfo) reader.readPacketFromByteArray(data);
98
99 assertTrue(testInfo.getId().equals(this.consumerId));
100 assertTrue(testInfo.getConsumerNo()==this.consumerNo);
101 assertTrue(testInfo.getPrefetchNumber() == this.prefetchNumber);
102 assertTrue(testInfo.getClientId().equals(this.clientId));
103 assertTrue(testInfo.getConsumerName().equals(this.subscriberName));
104 assertTrue(testInfo.getSelector().equals(this.selector));
105 assertTrue(testInfo.getDestination().equals(this.destination));
106 assertTrue(testInfo.getStartTime() == this.startTime);
107 assertTrue(testInfo.isStarted()==this.started);
108 }catch(Throwable e){
109 e.printStackTrace();
110 assertTrue(false);
111 }
112 }
113
114 public void testTime(){
115
116 ConsumerInfo info = new ConsumerInfo();
117 info.setId(this.consumerId);
118 info.setConsumerNo(this.consumerNo);
119 info.setPrefetchNumber(this.prefetchNumber);
120 info.setClientId(this.clientId);
121 info.setConsumerName(this.subscriberName);
122 info.setSelector(this.selector);
123 info.setDestination(this.destination);
124 info.setStartTime(this.startTime);
125 info.setStarted(this.started);
126
127 ConsumerInfoWriter writer = new ConsumerInfoWriter();
128 ConsumerInfoReader reader = new ConsumerInfoReader();
129 ConsumerInfo testInfo = null;
130 try {
131 int count = 100000;
132 long startTime = System.currentTimeMillis();
133 for (int i = 0; i < count; i++){
134 byte[] data = writer.writePacketToByteArray(info);
135 testInfo = (ConsumerInfo) reader.readPacketFromByteArray(data);
136 }
137 long finishTime = System.currentTimeMillis();
138 long totalTime = finishTime-startTime;
139 long ps = (count * 1000)/totalTime;
140 System.out.println("Time taken :" + totalTime + " for " + count + "iterations, = " + ps +" per sec.");
141
142 }catch(Throwable e){
143 e.printStackTrace();
144 assertTrue(false);
145 }
146 }
147
148 }