diff options
| author | Rajith Muditha Attapattu <rajith@apache.org> | 2011-06-20 22:30:35 +0000 |
|---|---|---|
| committer | Rajith Muditha Attapattu <rajith@apache.org> | 2011-06-20 22:30:35 +0000 |
| commit | b6650f4dda8be58935fba17f9ef494858b04a328 (patch) | |
| tree | dfeb7de2da5fdcb56b72a9741410a922b1316141 /qpid/java/systests/src | |
| parent | 83ba1fd120a2887ae9cecb5d0628e3c7064c391e (diff) | |
| download | qpid-python-b6650f4dda8be58935fba17f9ef494858b04a328.tar.gz | |
QPID-3273 The JMS delivery mode is now used evaluated as a string instead of an integer.
Added a test case to cover the JIRA. There was an existing test case (testUsingOnMessage) that had delivery mode in it's selector, but for some reason it was commented out.
I decided to add a new one as I was not sure why the delivery mode was taken out of the selector in that test case.
git-svn-id: https://svn.apache.org/repos/asf/qpid/trunk@1137804 13f79535-47bb-0310-9956-ffa450edef68
Diffstat (limited to 'qpid/java/systests/src')
| -rw-r--r-- | qpid/java/systests/src/main/java/org/apache/qpid/test/client/message/SelectorTest.java | 34 |
1 files changed, 34 insertions, 0 deletions
diff --git a/qpid/java/systests/src/main/java/org/apache/qpid/test/client/message/SelectorTest.java b/qpid/java/systests/src/main/java/org/apache/qpid/test/client/message/SelectorTest.java index 49a608190d..212374e8be 100644 --- a/qpid/java/systests/src/main/java/org/apache/qpid/test/client/message/SelectorTest.java +++ b/qpid/java/systests/src/main/java/org/apache/qpid/test/client/message/SelectorTest.java @@ -23,6 +23,7 @@ package org.apache.qpid.test.client.message; import java.util.concurrent.CountDownLatch; import javax.jms.DeliveryMode; +import javax.jms.Destination; import javax.jms.InvalidSelectorException; import javax.jms.JMSException; import javax.jms.Message; @@ -30,6 +31,7 @@ import javax.jms.MessageConsumer; import javax.jms.MessageListener; import javax.jms.MessageProducer; import javax.jms.Session; +import javax.jms.TextMessage; import junit.framework.Assert; @@ -280,6 +282,38 @@ public class SelectorTest extends QpidBrokerTestCase implements MessageListener Assert.assertNotNull("Msg5 should not be null", msg5); } + public void testSelectorWithJMSDeliveryMode() throws Exception + { + Session session = _connection.createSession(false, Session.SESSION_TRANSACTED); + + Destination dest1 = session.createTopic("test1"); + Destination dest2 = session.createTopic("test2"); + + MessageProducer prod1 = session.createProducer(dest1); + MessageProducer prod2 = session.createProducer(dest2); + MessageConsumer consumer1 = session.createConsumer(dest1,"JMSDeliveryMode = 'PERSISTENT'"); + MessageConsumer consumer2 = session.createConsumer(dest2,"JMSDeliveryMode = 'NON_PERSISTENT'"); + + Message msg1 = session.createTextMessage("Persistent"); + prod1.send(msg1); + prod2.send(msg1); + + prod1.setDeliveryMode(DeliveryMode.NON_PERSISTENT); + prod2.setDeliveryMode(DeliveryMode.NON_PERSISTENT); + + Message msg2 = session.createTextMessage("Non_Persistent"); + prod1.send(msg2); + prod2.send(msg2); + + TextMessage m1 = (TextMessage)consumer1.receive(1000); + assertEquals("Consumer1 should receive the persistent message","Persistent",m1.getText()); + assertNull("Consumer1 should not receiver another message",consumer1.receive(1000)); + + TextMessage m2 = (TextMessage)consumer2.receive(1000); + assertEquals("Consumer2 should receive the non persistent message","Non_Persistent",m2.getText()); + assertNull("Consumer2 should not receiver another message",consumer2.receive(1000)); + } + public static void main(String[] argv) throws Exception { SelectorTest test = new SelectorTest(); |
