1   /*
2    * Created on Mar 8, 2004 To change the template for this generated file go to Window - Preferences - Java - Code
3    * Generation - Code and Comments
4    */
5   package org.codehaus.activemq.message;
6   
7   import java.io.IOException;
8   
9   import javax.jms.JMSException;
10  
11  import org.codehaus.activemq.message.ActiveMQTextMessage;
12  import org.codehaus.activemq.message.ActiveMQTextMessageReader;
13  import org.codehaus.activemq.message.ActiveMQTextMessageWriter;
14  import org.codehaus.activemq.message.Packet;
15  
16  /***
17   */
18  public class ActiveMQTextMessageReaderTest extends ActiveMQMessageReaderTest {
19  
20  	private String testStr;
21  	public static void main(String[] args) {
22  		junit.textui.TestRunner.run(ActiveMQTextMessageReaderTest.class);
23  	}
24  
25  	/*
26  	 * @see TestCase#setUp()
27  	 */
28  	protected void setUp() throws Exception {
29  		super.setUp();
30  		StringBuffer buf = new StringBuffer();
31  		char start = 'a';
32  		int total = 1024 * 100;
33  		int count = 0;
34  		while (count < total) {
35  			char c = start;
36  			for (int i = 0; i < 26; i++) {
37  				buf.append(c);
38  				c += 1;
39  				count++;
40  			}
41  		}
42  		testStr = buf.toString();
43  
44  	}
45  
46  	/*
47  	 * @see TestCase#tearDown()
48  	 */
49  	protected void tearDown() throws Exception {
50  		super.tearDown();
51  	}
52  
53  	/***
54  	 * Constructor for ActiveMQTextMessageReaderTest.
55  	 * 
56  	 * @param arg0
57  	 */
58  	public ActiveMQTextMessageReaderTest(String arg0) {
59  		super(arg0);
60  	}
61  
62  	public void testGetPacketType() {
63  		ActiveMQTextMessage msg = new ActiveMQTextMessage();
64  		assertTrue(msg.getPacketType() == Packet.ACTIVEMQ_TEXT_MESSAGE);
65  	}
66  
67  	public void testReadPacket() {
68  		ActiveMQTextMessageReader reader = new ActiveMQTextMessageReader();
69  		ActiveMQTextMessageWriter writer = new ActiveMQTextMessageWriter();
70  		ActiveMQTextMessage msg1 = new ActiveMQTextMessage();
71  		try {
72  			msg1.setText(this.testStr);
73  			super.initializeMessage(msg1);
74  			byte[] data = writer.writePacketToByteArray(msg1);
75  			ActiveMQTextMessage msg2 = (ActiveMQTextMessage) reader.readPacketFromByteArray(data);
76  			super.testEquals(msg1, msg2);
77  			assertTrue(msg1.getText().equals(msg2.getText()));
78  		}
79  		catch (IOException e) {
80  			e.printStackTrace();
81  			assertTrue(false);
82  		}
83  		catch (JMSException ex) {
84  			ex.printStackTrace();
85  			assertTrue(false);
86  		}
87  	}
88  	
89  	public void testTime(){
90  
91  		ActiveMQTextMessageReader reader = new ActiveMQTextMessageReader();
92  		ActiveMQTextMessageWriter writer = new ActiveMQTextMessageWriter();
93  		ActiveMQTextMessage msg1 = new ActiveMQTextMessage();
94  		
95  		ActiveMQTextMessage msg2 = null;
96  		try {
97  			int count = 10000;
98  			long startTime = System.currentTimeMillis();
99  			//msg1.setText(this.testStr);
100 			msg1.setText("this is a test str");
101 			super.initializeMessage(msg1);
102 			for (int i = 0; i < count; i++){
103 				byte[] data = writer.writePacketToByteArray(msg1);
104 				msg2 = (ActiveMQTextMessage) reader.readPacketFromByteArray(data);
105 			}
106 			long finishTime = System.currentTimeMillis();
107 			long totalTime = finishTime-startTime;
108 			long ps = (count * 1000)/totalTime;
109 			System.out.println("Time taken :" + totalTime + " for " + count + "iterations, = " + ps +" per sec.");
110 			
111 		}catch(Throwable e){
112 			e.printStackTrace();
113 			assertTrue(false);
114 		}
115 	}
116 
117 }