[jboss-cvs] JBoss Messaging SVN: r6189 - trunk/tests/src/org/jboss/messaging/tests/integration/client.

jboss-cvs-commits at lists.jboss.org jboss-cvs-commits at lists.jboss.org
Fri Mar 27 05:15:07 EDT 2009


Author: timfox
Date: 2009-03-27 05:15:07 -0400 (Fri, 27 Mar 2009)
New Revision: 6189

Modified:
   trunk/tests/src/org/jboss/messaging/tests/integration/client/ClientConsumerWindowSizeTest.java
Log:
Added better slow consumer test

Modified: trunk/tests/src/org/jboss/messaging/tests/integration/client/ClientConsumerWindowSizeTest.java
===================================================================
--- trunk/tests/src/org/jboss/messaging/tests/integration/client/ClientConsumerWindowSizeTest.java	2009-03-26 21:45:40 UTC (rev 6188)
+++ trunk/tests/src/org/jboss/messaging/tests/integration/client/ClientConsumerWindowSizeTest.java	2009-03-27 09:15:07 UTC (rev 6189)
@@ -44,8 +44,6 @@
 
    public final SimpleString queueC = new SimpleString("queueC");
 
-   private final SimpleString groupTestQ = new SimpleString("testGroupQueue");
-
    /*
    * tests send window size. we do this by having 2 receivers on the q. since we roundrobin the consumer for delivery we
    * know if consumer 1 has received n messages then consumer 2 must have also have received n messages or at least up
@@ -140,13 +138,13 @@
 
          session.commit();
 
-         for (int i = 0; i < numberOfMessages -1; i++)
+         for (int i = 0; i < numberOfMessages - 1; i++)
          {
             ClientMessage msg = cons1.receive(1000);
             assertNotNull("expected message at i = " + i, msg);
             msg.acknowledge();
          }
-         
+
          ClientMessage msg = consNeverUsed.receive(500);
          assertNotNull(msg);
          msg.acknowledge();
@@ -177,4 +175,136 @@
       }
    }
 
+   // A better slow consumer test
+   
+   //Commented out until behaviour is fixed
+//   public void testSlowConsumer2() throws Exception
+//   {
+//      MessagingService service = createService(false);
+//
+//      ClientSession session1 = null;
+//      ClientSession session2 = null;
+//
+//      try
+//      {
+//         final int numberOfMessages = 100;
+//
+//         service.start();
+//
+//         ClientSessionFactory sf = createInVMFactory();
+//
+//         sf.setConsumerWindowSize(1);
+//
+//         session1 = sf.createSession(false, true, true);
+//
+//         session2 = sf.createSession(false, true, true);
+//         
+//         session1.start();
+//         
+//         session2.start();
+//
+//         SimpleString ADDRESS = new SimpleString("some-queue");
+//
+//         session1.createQueue(ADDRESS, ADDRESS, true);
+//
+//         ClientConsumer cons1 = session1.createConsumer(ADDRESS);
+//         
+//         //Note we make sure we send the messages *before* cons2 is created
+//         
+//         ClientProducer prod = session1.createProducer(ADDRESS);
+//
+//         for (int i = 0; i < numberOfMessages; i++)
+//         {
+//            prod.send(createTextMessage(session1, "Msg" + i));
+//         }
+//
+//         ClientConsumer cons2 = session2.createConsumer(ADDRESS);
+//         
+//         for (int i = 0; i < numberOfMessages; i += 2)
+//         {
+//            ClientMessage msg = cons1.receive(1000);
+//            assertNotNull("expected message at i = " + i, msg);
+//
+//            assertEquals("Msg" + i, msg.getBody().readString());
+//
+//            msg.acknowledge();
+//         }
+//
+//         for (int i = 1; i < numberOfMessages; i += 2)
+//         {
+//            ClientMessage msg = cons2.receive(1000);
+//
+//            assertNotNull("expected message at i = " + i, msg);
+//
+//            assertEquals("Msg" + i, msg.getBody().readString());
+//
+//            msg.acknowledge();
+//         }
+//
+//         assertEquals(0, getMessageCount(service, ADDRESS.toString()));
+//         
+//         //This should also work the other way around
+//         
+//         cons1.close();
+//         
+//         cons2.close();
+//         
+//         cons1 = session1.createConsumer(ADDRESS);
+//         
+//         //Note we make sure we send the messages *before* cons2 is created
+//         
+//         for (int i = 0; i < numberOfMessages; i++)
+//         {
+//            prod.send(createTextMessage(session1, "Msg" + i));
+//         }
+//
+//         cons2 = session2.createConsumer(ADDRESS);
+//         
+//         //Now we receive on cons2 first
+//         
+//         for (int i = 0; i < numberOfMessages; i += 2)
+//         {
+//            ClientMessage msg = cons2.receive(1000);
+//            assertNotNull("expected message at i = " + i, msg);
+//
+//            assertEquals("Msg" + i, msg.getBody().readString());
+//
+//            msg.acknowledge();
+//         }
+//
+//         for (int i = 1; i < numberOfMessages; i += 2)
+//         {
+//            ClientMessage msg = cons1.receive(1000);
+//
+//            assertNotNull("expected message at i = " + i, msg);
+//
+//            assertEquals("Msg" + i, msg.getBody().readString());
+//
+//            msg.acknowledge();
+//         }
+//
+//         assertEquals(0, getMessageCount(service, ADDRESS.toString()));
+//         
+//         
+//      }
+//      finally
+//      {
+//         try
+//         {
+//            if (session1 != null)
+//               session1.close();
+//            if (session2 != null)
+//               session2.close();
+//         }
+//         catch (Exception ignored)
+//         {
+//         }
+//
+//         if (service.isStarted())
+//         {
+//            service.stop();
+//         }
+//      }
+//   }
+
 }




More information about the jboss-cvs-commits mailing list