Docjar: A Java Source and Docuemnt Enginecom.*    java.*    javax.*    org.*    all    new    plug-in

Quick Search    Search Deep

Source code: org/activemq/transport/stomp/StompWireFormatTest.java


1   /*
2    * Copyright (c) 2005 Your Corporation. All Rights Reserved.
3    */
4   package org.activemq.transport.stomp;
5   
6   import junit.framework.TestCase;
7   import org.activemq.broker.BrokerContainer;
8   import org.activemq.broker.impl.BrokerContainerImpl;
9   import org.activemq.message.ConnectionInfo;
10  import org.activemq.message.Receipt;
11  import org.activemq.message.SessionInfo;
12  
13  import javax.jms.JMSException;
14  import java.io.ByteArrayInputStream;
15  import java.io.ByteArrayOutputStream;
16  import java.io.DataInputStream;
17  import java.io.DataOutputStream;
18  
19  public class StompWireFormatTest extends TestCase
20  {
21      private StompWireFormat wire;
22  
23      public void setUp() throws Exception
24      {
25          wire = new StompWireFormat();
26      }
27  
28      public void testValidConnectHandshake() throws Exception
29      {
30          String connect_frame = "CONNECT\n" +
31                                 "login: brianm\n" +
32                                 "passcode: wombats\n" +
33                                 "\n" +
34                                 Stomp.NULL;
35          DataInputStream din = new DataInputStream(new ByteArrayInputStream(connect_frame.getBytes()));
36          ByteArrayOutputStream bout = new ByteArrayOutputStream();
37          DataOutputStream dout = new DataOutputStream(bout);
38  
39          wire.registerTransportStreams(dout, din);
40          wire.initiateServerSideProtocol();
41  
42  
43          ConnectionInfo ci = (ConnectionInfo) wire.readPacket(din);
44          assertNotNull(ci);
45          assertTrue(ci.isReceiptRequired());
46  
47          Receipt cr = new Receipt();
48          cr.setCorrelationId(ci.getId());
49          wire.writePacket(cr, dout);
50  
51          SessionInfo si = (SessionInfo) wire.readPacket(null);
52          assertNotNull(si);
53          assertTrue(si.isReceiptRequired());
54  
55          Receipt sr = new Receipt();
56          sr.setCorrelationId(si.getId());
57          wire.writePacket(sr, dout);
58  
59          String response = new String(bout.toByteArray());
60          assertTrue(response.startsWith("CONNECTED"));
61      }
62  
63      public void _testFakeServer() throws Exception
64      {
65          final BrokerContainer container = new BrokerContainerImpl();
66          new Thread(new Runnable()
67          {
68              public void run()
69              {
70                  try
71                  {
72                      container.addConnector("tcp://127.0.0.1:61613", new StompWireFormat());
73                      container.start();
74                  }
75                  catch (JMSException e)
76                  {
77                      System.err.println("ARGH");
78                  }
79              }
80          }).start();
81          System.err.println("started container");
82          System.err.println("okay, go play");
83  
84          System.err.println(System.in.read());
85      }
86  }