1
2
3
4
5 package org.codehaus.activemq.message;
6
7 import org.codehaus.activemq.message.ActiveMQDestination;
8 import org.codehaus.activemq.message.ActiveMQTopic;
9 import org.codehaus.activemq.message.MessageAck;
10 import org.codehaus.activemq.message.MessageAckReader;
11 import org.codehaus.activemq.message.MessageAckWriter;
12 import org.codehaus.activemq.message.Packet;
13
14 import junit.framework.TestCase;
15
16 /***
17 * To change the template for this generated type comment go to Window - Preferences - Java - Code Generation - Code
18 * and Comments
19 */
20 public class MessageAckReaderTest extends TestCase {
21 private String id;
22 private String consumerId;
23 private String messageId;
24 private String transactedId;
25 private boolean messageRead;
26
27
28 public static void main(String[] args) {
29 junit.textui.TestRunner.run(MessageAckReaderTest.class);
30 }
31
32
33
34
35 protected void setUp() throws Exception {
36 super.setUp();
37 this.id = "test more idf";
38 this.consumerId = "testid";
39 this.messageId = "ID:ewrre-erer-err";
40 this.transactedId = "45454";
41 this.messageRead = true;
42 }
43
44
45
46
47 protected void tearDown() throws Exception {
48 super.tearDown();
49 }
50
51 /***
52 * Constructor for ProducerInfoReaderTest.
53 *
54 * @param arg0
55 */
56 public MessageAckReaderTest(String arg0) {
57 super(arg0);
58 }
59
60 public void testGetPacketType() {
61 MessageAckReader reader = new MessageAckReader();
62 assertTrue(reader.getPacketType() == Packet.ACTIVEMQ_MSG_ACK);
63 }
64
65 public void testReadPacket() {
66 MessageAck ack = new MessageAck();
67 ack.setId(this.id);
68 ack.setConsumerId(this.consumerId);
69 ack.setTransactionId(this.transactedId);
70 ack.setMessageID(messageId);
71 ack.setMessageRead(this.messageRead);
72
73 MessageAckWriter writer = new MessageAckWriter();
74 MessageAckReader reader = new MessageAckReader();
75 try {
76 byte[] data = writer.writePacketToByteArray(ack);
77 MessageAck mack = (MessageAck) reader.readPacketFromByteArray(data);
78
79 assertTrue(mack.getId().equals(this.id));
80 assertTrue(mack.getConsumerId().equals(this.consumerId));
81 assertTrue(mack.getTransactionId().equals(this.transactedId));
82 assertTrue(mack.isMessageRead()==this.messageRead);
83 }
84 catch (Throwable e) {
85 e.printStackTrace();
86 assertTrue(false);
87 }
88 }
89
90 public void testTime() {
91
92 MessageAck ack = new MessageAck();
93 ack.setId(this.id);
94 ack.setConsumerId(this.consumerId);
95 ack.setTransactionId(this.transactedId);
96 ack.setMessageID(messageId);
97 ack.setMessageRead(this.messageRead);
98
99 MessageAckWriter writer = new MessageAckWriter();
100 MessageAckReader reader = new MessageAckReader();
101 try {
102 int count = 100000;
103 long startTime = System.currentTimeMillis();
104 for (int i = 0; i < count; i++) {
105 byte[] data = writer.writePacketToByteArray(ack);
106 MessageAck mack = (MessageAck) reader.readPacketFromByteArray(data);
107 }
108 long finishTime = System.currentTimeMillis();
109 long totalTime = finishTime - startTime;
110 long ps = (count * 1000) / totalTime;
111 System.out.println("Time taken :" + totalTime + " for " + count + "iterations, = " + ps + " per sec.");
112
113 }
114 catch (Throwable e) {
115 e.printStackTrace();
116 assertTrue(false);
117 }
118 }
119
120 }