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