You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@qpid.apache.org by ra...@apache.org on 2010/08/20 15:50:01 UTC

svn commit: r987507 - /qpid/trunk/qpid/java/systests/src/main/java/org/apache/qpid/test/client/destination/AddressBasedDestinationTest.java

Author: rajith
Date: Fri Aug 20 13:50:00 2010
New Revision: 987507

URL: http://svn.apache.org/viewvc?rev=987507&view=rev
Log:
Added a test case for QPID-2809 to ensure that if the same destination is used in topics, each subscription will get it's own queue unless a named queue is used.

Modified:
    qpid/trunk/qpid/java/systests/src/main/java/org/apache/qpid/test/client/destination/AddressBasedDestinationTest.java

Modified: qpid/trunk/qpid/java/systests/src/main/java/org/apache/qpid/test/client/destination/AddressBasedDestinationTest.java
URL: http://svn.apache.org/viewvc/qpid/trunk/qpid/java/systests/src/main/java/org/apache/qpid/test/client/destination/AddressBasedDestinationTest.java?rev=987507&r1=987506&r2=987507&view=diff
==============================================================================
--- qpid/trunk/qpid/java/systests/src/main/java/org/apache/qpid/test/client/destination/AddressBasedDestinationTest.java (original)
+++ qpid/trunk/qpid/java/systests/src/main/java/org/apache/qpid/test/client/destination/AddressBasedDestinationTest.java Fri Aug 20 13:50:00 2010
@@ -440,6 +440,7 @@ public class AddressBasedDestinationTest
         Session jmsSession = _connection.createSession(false,Session.CLIENT_ACKNOWLEDGE);
         
         AMQDestination topic1 = new AMQAnyDestination("ADDR:amq.topic/topic1; {link:{name: queue1}}");
+        
         MessageProducer prod = jmsSession.createProducer(topic1);
         
         Message m = jmsSession.createTextMessage("Hello");
@@ -675,4 +676,39 @@ public class AddressBasedDestinationTest
         
         assertNull("Should not receive anymore messages",browseCons.receive(500));
     }
+    
+    /**
+     * Test Goal : Verify that unique subscription queues are created when consumers are
+     *             created using the same destination except when the subscription queue
+     *             has a name.
+     */
+    public void testSubscriptionForSameDestination() throws Exception
+    {
+        Session ssn = _connection.createSession(false,Session.AUTO_ACKNOWLEDGE);        
+        Destination dest = ssn.createTopic("ADDR:amq.topic/foo");
+        MessageConsumer consumer1 = ssn.createConsumer(dest);
+        MessageConsumer consumer2 = ssn.createConsumer(dest);
+        MessageProducer prod = ssn.createProducer(dest);
+        
+        prod.send(ssn.createTextMessage("A"));
+        TextMessage m = (TextMessage)consumer1.receive(1000);
+        assertEquals("Consumer1 should recieve message A",m.getText(),"A");
+        m = (TextMessage)consumer2.receive(1000);
+        assertEquals("Consumer2 should recieve message A",m.getText(),"A");
+        
+        consumer1.close();
+        consumer2.close();
+        
+        dest = ssn.createTopic("ADDR:amq.topic/foo; { link: {name: my-queue}}");
+        consumer1 = ssn.createConsumer(dest);
+        try
+        {
+            consumer2 = ssn.createConsumer(dest);
+            fail("An exception should be thrown as 'my-queue' already have an exclusive subscriber");
+        }
+        catch(Exception e)
+        {            
+        }
+    }
+    
 }



---------------------------------------------------------------------
Apache Qpid - AMQP Messaging Implementation
Project:      http://qpid.apache.org
Use/Interact: mailto:commits-subscribe@qpid.apache.org