[jboss-cvs] JBoss Messaging SVN: r6137 - in trunk/tests/src/org/jboss/messaging/tests: unit/core/server/impl and 1 other directory.

jboss-cvs-commits at lists.jboss.org jboss-cvs-commits at lists.jboss.org
Mon Mar 23 06:37:24 EDT 2009


Author: ataylor
Date: 2009-03-23 06:37:23 -0400 (Mon, 23 Mar 2009)
New Revision: 6137

Removed:
   trunk/tests/src/org/jboss/messaging/tests/unit/core/server/impl/RoundRobinDistributionPolicyTest.java
Modified:
   trunk/tests/src/org/jboss/messaging/tests/integration/client/ClientEndToEndTest.java
Log:
converted easymock test

Modified: trunk/tests/src/org/jboss/messaging/tests/integration/client/ClientEndToEndTest.java
===================================================================
--- trunk/tests/src/org/jboss/messaging/tests/integration/client/ClientEndToEndTest.java	2009-03-23 09:58:50 UTC (rev 6136)
+++ trunk/tests/src/org/jboss/messaging/tests/integration/client/ClientEndToEndTest.java	2009-03-23 10:37:23 UTC (rev 6137)
@@ -1387,7 +1387,57 @@
       }
    }
 
+   public void testConsumersRoundRobinCorrectly() throws Exception
+   {
+      MessagingService messagingService = createService(false);
+      try
+      {
+         messagingService.start();
+         ClientSessionFactory cf = createInVMFactory();
+         ClientSession session = cf.createSession(false, true, true);
+         session.createQueue(addressA, queueA, false);
 
+         ClientConsumer[] consumers = new ClientConsumer[5];
+         //start the session before we create the consumers, this is because start is non blocking and we have to gaurantee
+         //all consumers have been started before sending messages
+         session.start();
+         consumers[0] = session.createConsumer(queueA);
+         consumers[1] = session.createConsumer(queueA);
+         consumers[2] = session.createConsumer(queueA);
+         consumers[3] = session.createConsumer(queueA);
+         consumers[4] = session.createConsumer(queueA);
+
+         ClientSession sendSession = cf.createSession(false, true, true);
+         ClientProducer cp = sendSession.createProducer(addressA);
+         int numMessage = 100;
+         for(int i = 0; i < numMessage; i++)
+         {
+            ClientMessage cm = sendSession.createClientMessage(false);
+            cm.getBody().writeInt(i);
+            cp.send(cm);
+         }
+         int currMessage = 0;
+         for(int i = 0; i < numMessage/5; i++)
+         {
+            for(int j = 0; j < 5;j++)
+            {
+               ClientMessage cm = consumers[j].receive(5000);
+               assertNotNull(cm);
+               assertEquals(currMessage++,cm.getBody().readInt());
+            }
+         }
+         sendSession.close();
+         session.close();
+      }
+      finally
+      {
+         if(messagingService.isStarted())
+         {
+            messagingService.stop();
+         }
+      }
+   }
+
    class Receiver implements MessageHandler
    {
       final CountDownLatch latch;

Deleted: trunk/tests/src/org/jboss/messaging/tests/unit/core/server/impl/RoundRobinDistributionPolicyTest.java
===================================================================
--- trunk/tests/src/org/jboss/messaging/tests/unit/core/server/impl/RoundRobinDistributionPolicyTest.java	2009-03-23 09:58:50 UTC (rev 6136)
+++ trunk/tests/src/org/jboss/messaging/tests/unit/core/server/impl/RoundRobinDistributionPolicyTest.java	2009-03-23 10:37:23 UTC (rev 6137)
@@ -1,127 +0,0 @@
-/*
- * JBoss, Home of Professional Open Source
- * Copyright 2005-2008, Red Hat Middleware LLC, and individual contributors
- * by the @authors tag. See the copyright.txt in the distribution for a
- * full listing of individual contributors.
- *
- * This is free software; you can redistribute it and/or modify it
- * under the terms of the GNU Lesser General Public License as
- * published by the Free Software Foundation; either version 2.1 of
- * the License, or (at your option) any later version.
- *
- * This software is distributed in the hope that it will be useful,
- * but WITHOUT ANY WARRANTY; without even the implied warranty of
- * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
- * Lesser General Public License for more details.
- *
- * You should have received a copy of the GNU Lesser General Public
- * License along with this software; if not, write to the Free
- * Software Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA
- * 02110-1301 USA, or see the FSF site: http://www.fsf.org.
- */ 
-
-package org.jboss.messaging.tests.unit.core.server.impl;
-
-import org.easymock.EasyMock;
-import org.jboss.messaging.core.server.Consumer;
-import org.jboss.messaging.core.server.Distributor;
-import org.jboss.messaging.core.server.HandleStatus;
-import org.jboss.messaging.core.server.MessageReference;
-import org.jboss.messaging.core.server.impl.RoundRobinDistributor;
-import org.jboss.messaging.tests.util.UnitTestCase;
-
-/**
- * 
- * A RoundRobinDistributionPolicyTest
- * 
- * @author <a href="mailto:tim.fox at jboss.com">Tim Fox</a>
- *
- */
-public class RoundRobinDistributionPolicyTest extends UnitTestCase
-{
-
-   public void testNoConsumers()
-   {
-      MessageReference messageReference = EasyMock.createStrictMock(MessageReference.class);
-      
-      Distributor dp = new RoundRobinDistributor();
-
-      EasyMock.replay(messageReference);
-      HandleStatus status = dp.distribute(messageReference);
-      EasyMock.verify(messageReference);
-      assertEquals(status, HandleStatus.BUSY);
-   }
-   
-   public void testConsumers() throws Exception
-   {
-      MessageReference messageReference = EasyMock.createStrictMock(MessageReference.class);
-      Consumer c1 = EasyMock.createStrictMock(Consumer.class);
-      Consumer c2 = EasyMock.createStrictMock(Consumer.class);
-      Consumer c3 = EasyMock.createStrictMock(Consumer.class);
-      
-      Distributor dp = new RoundRobinDistributor();
-      dp.addConsumer(c1);
-      dp.addConsumer(c2);
-      dp.addConsumer(c3);
-      EasyMock.expect(c1.handle(messageReference)).andReturn(HandleStatus.HANDLED);
-      EasyMock.expect(c2.handle(messageReference)).andReturn(HandleStatus.HANDLED);
-      EasyMock.expect(c3.handle(messageReference)).andReturn(HandleStatus.HANDLED);
-      EasyMock.expect(c1.handle(messageReference)).andReturn(HandleStatus.HANDLED);
-      EasyMock.expect(c2.handle(messageReference)).andReturn(HandleStatus.HANDLED);
-      EasyMock.expect(c3.handle(messageReference)).andReturn(HandleStatus.HANDLED);
-      EasyMock.expect(c1.handle(messageReference)).andReturn(HandleStatus.HANDLED);
-      EasyMock.replay(messageReference, c1, c2, c3);
-      
-      dp.distribute(messageReference);
-      dp.distribute(messageReference);
-      dp.distribute(messageReference);
-      dp.distribute(messageReference);
-      dp.distribute(messageReference);
-      dp.distribute(messageReference);
-      dp.distribute(messageReference);
-      EasyMock.verify(messageReference, c1, c2, c3);
-   }
-
-   public void testRunOutOfConsumers() throws Exception
-   {
-      MessageReference messageReference = EasyMock.createStrictMock(MessageReference.class);
-      Consumer c1 = EasyMock.createStrictMock(Consumer.class);
-      Consumer c2 = EasyMock.createStrictMock(Consumer.class);
-      Consumer c3 = EasyMock.createStrictMock(Consumer.class);
-
-      Distributor dp = new RoundRobinDistributor();
-      dp.addConsumer(c1);
-      dp.addConsumer(c2);
-      dp.addConsumer(c3);
-      EasyMock.expect(c1.handle(messageReference)).andReturn(HandleStatus.BUSY);
-      EasyMock.expect(c2.handle(messageReference)).andReturn(HandleStatus.BUSY);
-      EasyMock.expect(c3.handle(messageReference)).andReturn(HandleStatus.BUSY);
-      EasyMock.replay(messageReference, c1, c2, c3);
-
-      HandleStatus status = dp.distribute(messageReference);
-      assertEquals(status, HandleStatus.BUSY);
-      EasyMock.verify(messageReference, c1, c2, c3);
-   }
-   public void testRunOutOfConsumersNoMatch() throws Exception
-   {
-      MessageReference messageReference = EasyMock.createStrictMock(MessageReference.class);
-      Consumer c1 = EasyMock.createStrictMock(Consumer.class);
-      Consumer c2 = EasyMock.createStrictMock(Consumer.class);
-      Consumer c3 = EasyMock.createStrictMock(Consumer.class);
-
-      Distributor dp = new RoundRobinDistributor();
-      dp.addConsumer(c1);
-      dp.addConsumer(c2);
-      dp.addConsumer(c3);
-      EasyMock.expect(c1.handle(messageReference)).andReturn(HandleStatus.NO_MATCH);
-      EasyMock.expect(c2.handle(messageReference)).andReturn(HandleStatus.NO_MATCH);
-      EasyMock.expect(c3.handle(messageReference)).andReturn(HandleStatus.NO_MATCH);
-      EasyMock.replay(messageReference, c1, c2, c3);
-
-      HandleStatus status = dp.distribute(messageReference);
-      assertEquals(status, HandleStatus.NO_MATCH);
-      EasyMock.verify(messageReference, c1, c2, c3);
-   }
-
-   
-}




More information about the jboss-cvs-commits mailing list