[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