[jboss-cvs] JBoss Messaging SVN: r5440 - trunk/tests/src/org/jboss/messaging/tests/integration/management.
jboss-cvs-commits at lists.jboss.org
jboss-cvs-commits at lists.jboss.org
Fri Nov 28 05:20:49 EST 2008
Author: jmesnil
Date: 2008-11-28 05:20:49 -0500 (Fri, 28 Nov 2008)
New Revision: 5440
Modified:
trunk/tests/src/org/jboss/messaging/tests/integration/management/QueueControlTest.java
Log:
added integration test for QueueControl.expireMessages()
Modified: trunk/tests/src/org/jboss/messaging/tests/integration/management/QueueControlTest.java
===================================================================
--- trunk/tests/src/org/jboss/messaging/tests/integration/management/QueueControlTest.java 2008-11-27 15:59:16 UTC (rev 5439)
+++ trunk/tests/src/org/jboss/messaging/tests/integration/management/QueueControlTest.java 2008-11-28 10:20:49 UTC (rev 5440)
@@ -312,6 +312,56 @@
session.close();
}
+ public void testExpireMessagesWithFilter() throws Exception
+ {
+ SimpleString key = new SimpleString("key");
+ long matchingValue = randomLong();
+ long unmatchingValue = matchingValue + 1;
+
+ ClientSessionFactory sf = new ClientSessionFactoryImpl(new TransportConfiguration(InVMConnectorFactory.class.getName()));
+ ClientSession session = sf.createSession(false, true, true);
+
+ SimpleString address = randomSimpleString();
+ SimpleString queue = randomSimpleString();
+
+ session.createQueue(address, queue, null, false, true, true);
+ ClientProducer producer = session.createProducer(address);
+ session.start();
+
+ // send on queue
+ ClientMessage matchingMessage = session.createClientMessage(false);
+ matchingMessage.putLongProperty(key, matchingValue);
+ producer.send(matchingMessage);
+ ClientMessage unmatchingMessage = session.createClientMessage(false);
+ unmatchingMessage.putLongProperty(key, unmatchingValue);
+ producer.send(unmatchingMessage);
+
+ // wait a little bit to ensure the message is handled by the server
+ Thread.sleep(100);
+ QueueControlMBean queueControl = createQueueControl(address, queue);
+ assertEquals(2, queueControl.getMessageCount());
+
+ int expiredMessagesCount = queueControl.expireMessages(key + " =" + matchingValue);
+ assertEquals(1, expiredMessagesCount);
+ assertEquals(1, queueControl.getMessageCount());
+
+ // consume the unmatched message from queue
+ ClientConsumer consumer = session.createConsumer(queue);
+ ClientMessage m = consumer.receive(500);
+ assertNotNull(m);
+ assertEquals(unmatchingValue, m.getProperty(key));
+
+ m.acknowledge();
+
+ // check there is no other message to consume:
+ m = consumer.receive(500);
+ assertNull(m);
+
+ consumer.close();
+ session.deleteQueue(queue);
+ session.close();
+ }
+
// Package protected ---------------------------------------------
// Protected -----------------------------------------------------
More information about the jboss-cvs-commits
mailing list