[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