[jboss-cvs] JBoss Messaging SVN: r4758 - in branches/Branch_JBMESSAGING-1303: 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
Thu Jul 31 08:10:55 EDT 2008
Author: jmesnil
Date: 2008-07-31 08:10:55 -0400 (Thu, 31 Jul 2008)
New Revision: 4758
Modified:
branches/Branch_JBMESSAGING-1303/src/main/org/jboss/messaging/core/server/impl/QueueImpl.java
branches/Branch_JBMESSAGING-1303/tests/src/org/jboss/messaging/tests/unit/core/server/impl/QueueImplTest.java
Log:
added QueueImplTest.testExpireMessage()
Modified: branches/Branch_JBMESSAGING-1303/src/main/org/jboss/messaging/core/server/impl/QueueImpl.java
===================================================================
--- branches/Branch_JBMESSAGING-1303/src/main/org/jboss/messaging/core/server/impl/QueueImpl.java 2008-07-31 11:57:19 UTC (rev 4757)
+++ branches/Branch_JBMESSAGING-1303/src/main/org/jboss/messaging/core/server/impl/QueueImpl.java 2008-07-31 12:10:55 UTC (rev 4758)
@@ -525,7 +525,8 @@
lock.unlock();
}
- public boolean expireMessage(long messageID, StorageManager storageManager, PostOffice postOffice, HierarchicalRepository<QueueSettings> queueSettingsRepository) throws Exception
+ public boolean expireMessage(final long messageID, final StorageManager storageManager,
+ final PostOffice postOffice, final HierarchicalRepository<QueueSettings> queueSettingsRepository) throws Exception
{
Iterator<MessageReference> iter = messageReferences.iterator();
Modified: branches/Branch_JBMESSAGING-1303/tests/src/org/jboss/messaging/tests/unit/core/server/impl/QueueImplTest.java
===================================================================
--- branches/Branch_JBMESSAGING-1303/tests/src/org/jboss/messaging/tests/unit/core/server/impl/QueueImplTest.java 2008-07-31 11:57:19 UTC (rev 4757)
+++ branches/Branch_JBMESSAGING-1303/tests/src/org/jboss/messaging/tests/unit/core/server/impl/QueueImplTest.java 2008-07-31 12:10:55 UTC (rev 4758)
@@ -25,6 +25,7 @@
import static org.easymock.EasyMock.createMock;
import static org.easymock.EasyMock.replay;
import static org.easymock.EasyMock.verify;
+import static org.jboss.messaging.tests.util.RandomUtil.randomLong;
import java.util.ArrayList;
import java.util.LinkedList;
@@ -38,15 +39,21 @@
import org.easymock.EasyMock;
import org.jboss.messaging.core.filter.Filter;
import org.jboss.messaging.core.persistence.StorageManager;
+import org.jboss.messaging.core.postoffice.Binding;
+import org.jboss.messaging.core.postoffice.PostOffice;
import org.jboss.messaging.core.server.Consumer;
import org.jboss.messaging.core.server.DistributionPolicy;
import org.jboss.messaging.core.server.HandleStatus;
import org.jboss.messaging.core.server.MessageReference;
import org.jboss.messaging.core.server.Queue;
+import org.jboss.messaging.core.server.ServerMessage;
import org.jboss.messaging.core.server.impl.QueueImpl;
import org.jboss.messaging.core.server.impl.RoundRobinDistributionPolicy;
+import org.jboss.messaging.core.settings.HierarchicalRepository;
+import org.jboss.messaging.core.settings.impl.QueueSettings;
import org.jboss.messaging.tests.unit.core.server.impl.fakes.FakeConsumer;
import org.jboss.messaging.tests.unit.core.server.impl.fakes.FakeFilter;
+import org.jboss.messaging.tests.util.RandomUtil;
import org.jboss.messaging.tests.util.UnitTestCase;
import org.jboss.messaging.util.SimpleString;
@@ -1406,8 +1413,56 @@
EasyMock.verify(consumer);
}
+
+ public void testExpireMessage() throws Exception
+ {
+ long messageID = randomLong();
+ final SimpleString expiryQueue = new SimpleString("expiryQueue");
+ Queue queue = new QueueImpl(1, queue1, null, false, true, false, -1, scheduledExecutor);
+ MessageReference messageReference = generateReference(queue, messageID);
+ StorageManager storageManager = EasyMock.createMock(StorageManager.class);
+ EasyMock.expect(storageManager.generateTransactionID()).andReturn(randomLong());
+ EasyMock.expect(storageManager.generateMessageID()).andReturn(randomLong());
+ storageManager.storeDeleteTransactional(EasyMock.anyLong(), EasyMock.eq(messageID));
+ storageManager.commit(EasyMock.anyLong());
+ PostOffice postOffice = EasyMock.createMock(PostOffice.class);
+ Binding expiryBinding = EasyMock.createMock(Binding.class);
+ EasyMock.expect(expiryBinding.getAddress()).andStubReturn(expiryQueue);
+ EasyMock.expect(postOffice.getBinding(expiryQueue)).andReturn(expiryBinding );
+ EasyMock.expect(postOffice.route(EasyMock.isA(ServerMessage.class))).andReturn(new ArrayList<MessageReference>());
+ HierarchicalRepository<QueueSettings> queueSettingsRepository = EasyMock.createMock(HierarchicalRepository.class);
+ QueueSettings queueSettings = new QueueSettings()
+ {
+ @Override
+ public SimpleString getExpiryQueue()
+ {
+ return expiryQueue;
+ }
+ };
+ EasyMock.expect(queueSettingsRepository.getMatch(queue1.toString())).andStubReturn(queueSettings);
+ EasyMock.replay(storageManager, postOffice, queueSettingsRepository, expiryBinding);
+ assertEquals(0, queue.getMessageCount());
+ assertEquals(0, queue.getDeliveringCount());
+ assertEquals(0, queue.getSizeBytes());
+
+ queue.addLast(messageReference);
+
+ assertEquals(1, queue.getMessageCount());
+ assertEquals(0, queue.getDeliveringCount());
+ assertTrue(queue.getSizeBytes() > 0);
+
+ queue.expireMessage(messageID, storageManager , postOffice, queueSettingsRepository);
+
+ assertEquals(0, queue.getMessageCount());
+ assertEquals(0, queue.getDeliveringCount());
+ assertEquals(0, queue.getSizeBytes());
+
+ EasyMock.verify(storageManager, postOffice, queueSettingsRepository, expiryBinding);
+ }
+
+
// Inner classes ---------------------------------------------------------------
class AddtoQueueRunner implements Runnable
More information about the jboss-cvs-commits
mailing list