    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 org.codehaus.activemq.message.ActiveMQBytesMessage;
    10  import org.codehaus.activemq.message.ActiveMQBytesMessageReader;
    11  import org.codehaus.activemq.message.ActiveMQBytesMessageWriter;
    12  import org.codehaus.activemq.message.Packet;
    13
    14  /***
    15   * @author Rob To change the template for this generated type comment go to Window - Preferences - Java - Code
    16   *         Generation - Code and Comments
    17   */
    18  public class ActiveMQBytesMessageReaderTest extends ActiveMQMessageReaderTest {
    19
    20  	private byte[] testdata;
    21  	public static void main(String[] args) {
    22  		junit.textui.TestRunner.run(ActiveMQBytesMessageReaderTest.class);
    23  	}
    24
    25  	/*
    26  	 * @see TestCase#setUp()
    27  	 */
    28  	protected void setUp() throws Exception {
    29  		super.setUp();
    30  		testdata = new byte[1024 *2];
    31  		for (int i = 0; i < testdata.length;i++){
    32  			testdata[i] = (byte)i;
    33  		}
    34
    35  	}
    36
    37  	/*
    38  	 * @see TestCase#tearDown()
    39  	 */
    40  	protected void tearDown() throws Exception {
    41  		super.tearDown();
    42  	}
    43
    44  	/***
    45  	 * Constructor for ActiveMQTextMessageReaderTest.
    46  	 *
    47  	 * @param arg0
    48  	 */
    49  	public ActiveMQBytesMessageReaderTest(String arg0) {
    50  		super(arg0);
    51  	}
    52
    53  	public void testGetPacketType() {
    54  		ActiveMQBytesMessage msg = new ActiveMQBytesMessage();
    55  		assertTrue(msg.getPacketType() == Packet.ACTIVEMQ_BYTES_MESSAGE);
    56  	}
    57
    58  	public void testReadPacket() {
    59  		ActiveMQBytesMessageReader reader = new ActiveMQBytesMessageReader();
    60  		ActiveMQBytesMessageWriter writer = new ActiveMQBytesMessageWriter();
    61  		ActiveMQBytesMessage msg1 = new ActiveMQBytesMessage();
    62  		try {
    63  			msg1.setBodyAsBytes(testdata);
    64  			super.initializeMessage(msg1);
    65  			byte[] data = writer.writePacketToByteArray(msg1);
    66  			ActiveMQBytesMessage msg2 = (ActiveMQBytesMessage) reader.readPacketFromByteArray(data);
    67  			super.testEquals(msg1, msg2);
    68  			byte[] d2 = msg2.getBodyAsBytes();
    69  			assertTrue(d2.length==testdata.length);
    70  			for(int i = 0; i < testdata.length; i++)
    71  			assertTrue(d2[i]==testdata[i]);
    72  		}
    73  		catch (IOException e) {
    74  			e.printStackTrace();
    75  			assertTrue(false);
    76  		}
    77
    78  	}
    79
    80  	public void testTime(){
    81
    82  		ActiveMQBytesMessageReader reader = new ActiveMQBytesMessageReader();
    83  		ActiveMQBytesMessageWriter writer = new ActiveMQBytesMessageWriter();
    84  		ActiveMQBytesMessage msg1 = new ActiveMQBytesMessage();
    85
    86  		ActiveMQBytesMessage msg2 = null;
    87  		try {
    88  			int count = 10000;
    89  			long startTime = System.currentTimeMillis();
    90  			msg1.setBodyAsBytes(this.testdata);
    91  			super.initializeMessage(msg1);
    92  			for (int i = 0; i < count; i++){
    93  				byte[] data = writer.writePacketToByteArray(msg1);
    94  				msg2 = (ActiveMQBytesMessage) reader.readPacketFromByteArray(data);
    95  			}
    96  			long finishTime = System.currentTimeMillis();
    97  			long totalTime = finishTime-startTime;
    98  			long ps = (count * 1000)/totalTime;
    99  			System.out.println("Time taken :" + totalTime + " for " + count + "iterations, = " + ps +" per sec.");
    100
    101 		}catch(Throwable e){
    102 			e.printStackTrace();
    103 			assertTrue(false);
    104 		}
    105 	}
    106
    107 }