[hornetq-commits] JBoss hornetq SVN: r11354 - branches/STOMP11/tests/integration-tests/src/test/java/org/hornetq/tests/integration/stomp/v11.

do-not-reply at jboss.org do-not-reply at jboss.org
Fri Sep 16 06:28:52 EDT 2011


Author: gaohoward
Date: 2011-09-16 06:28:52 -0400 (Fri, 16 Sep 2011)
New Revision: 11354

Modified:
   branches/STOMP11/tests/integration-tests/src/test/java/org/hornetq/tests/integration/stomp/v11/StompTestV11.java
Log:
more test


Modified: branches/STOMP11/tests/integration-tests/src/test/java/org/hornetq/tests/integration/stomp/v11/StompTestV11.java
===================================================================
--- branches/STOMP11/tests/integration-tests/src/test/java/org/hornetq/tests/integration/stomp/v11/StompTestV11.java	2011-09-16 06:00:24 UTC (rev 11353)
+++ branches/STOMP11/tests/integration-tests/src/test/java/org/hornetq/tests/integration/stomp/v11/StompTestV11.java	2011-09-16 10:28:52 UTC (rev 11354)
@@ -19,6 +19,11 @@
 
 import java.io.IOException;
 
+import javax.jms.Message;
+import javax.jms.MessageConsumer;
+
+import junit.framework.Assert;
+
 import org.hornetq.core.logging.Logger;
 import org.hornetq.tests.integration.stomp.util.ClientStompFrame;
 import org.hornetq.tests.integration.stomp.util.StompClientConnection;
@@ -466,7 +471,6 @@
    public void testHeartBeat2() throws Exception
    {
       //heart-beat (1,1)
-      connV11 = StompClientConnectionFactory.createClientConnection("1.1", hostname, port);
       ClientStompFrame frame = connV11.createFrame("CONNECT");
       frame.addHeader("host", "127.0.0.1");
       frame.addHeader("login", this.defUser);
@@ -524,7 +528,106 @@
       connV11.disconnect();
 
    }
+   
+   public void testNack() throws Exception
+   {
+      connV11.connect(defUser, defPass);
 
+      subscribe(connV11, "sub1", "client");
+
+      sendMessage(getName());
+
+      ClientStompFrame frame = connV11.receiveFrame();
+
+      String messageID = frame.getHeader("message-id");
+      
+      System.out.println("Received message with id " + messageID);
+      
+      nack(connV11, "sub1", messageID);
+      
+      connV11.disconnect();
+
+      //Nack makes the message be dropped.
+      MessageConsumer consumer = session.createConsumer(queue);
+      Message message = consumer.receive(1000);
+      Assert.assertNull(message);
+   }
+
+   public void testNackWithWrongSubId() throws Exception
+   {
+      connV11.connect(defUser, defPass);
+
+      subscribe(connV11, "sub1", "client");
+
+      sendMessage(getName());
+
+      ClientStompFrame frame = connV11.receiveFrame();
+
+      String messageID = frame.getHeader("message-id");
+      
+      System.out.println("Received message with id " + messageID);
+      
+      nack(connV11, "sub2", messageID);
+      
+      ClientStompFrame error = connV11.receiveFrame();
+      
+      System.out.println("Receiver error: " + error);
+      
+      connV11.disconnect();
+
+      //message should be still there
+      MessageConsumer consumer = session.createConsumer(queue);
+      Message message = consumer.receive(1000);
+      Assert.assertNotNull(message);
+   }
+
+   public void testNackWithWrongMessageId() throws Exception
+   {
+      connV11.connect(defUser, defPass);
+
+      subscribe(connV11, "sub1", "client");
+
+      sendMessage(getName());
+
+      ClientStompFrame frame = connV11.receiveFrame();
+
+      String messageID = frame.getHeader("message-id");
+      
+      System.out.println("Received message with id " + messageID);
+      
+      nack(connV11, "sub2", "someother");
+      
+      ClientStompFrame error = connV11.receiveFrame();
+      
+      System.out.println("Receiver error: " + error);
+      
+      connV11.disconnect();
+
+      //message should still there
+      MessageConsumer consumer = session.createConsumer(queue);
+      Message message = consumer.receive(1000);
+      Assert.assertNotNull(message);
+   }
+
+   private void nack(StompClientConnection conn, String subId, String mid) throws IOException, InterruptedException
+   {
+      ClientStompFrame ackFrame = conn.createFrame("NACK");
+      ackFrame.addHeader("subscription", subId);
+      ackFrame.addHeader("message-id", mid);
+      
+      conn.sendFrame(ackFrame);
+   }
+   
+   private void subscribe(StompClientConnection conn, String subId, String ack) throws IOException, InterruptedException
+   {
+      ClientStompFrame subFrame = conn.createFrame("SUBSCRIBE");
+      subFrame.addHeader("id", subId);
+      subFrame.addHeader("destination", getQueuePrefix() + getQueueName());
+      subFrame.addHeader("ack", ack);
+      
+      conn.sendFrame(subFrame);
+   }
+
 }
 
 



More information about the hornetq-commits mailing list