Repository: activemq Updated Branches: refs/heads/trunk 1d39f08c1 -> 226e012d8
Restore test case removed last commit. Project: http://git-wip-us.apache.org/repos/asf/activemq/repo Commit: http://git-wip-us.apache.org/repos/asf/activemq/commit/226e012d Tree: http://git-wip-us.apache.org/repos/asf/activemq/tree/226e012d Diff: http://git-wip-us.apache.org/repos/asf/activemq/diff/226e012d Branch: refs/heads/trunk Commit: 226e012d88b1d5149433554e1473eed26e7c78a0 Parents: 1d39f08 Author: Timothy Bish <[email protected]> Authored: Fri Oct 17 12:22:11 2014 -0400 Committer: Timothy Bish <[email protected]> Committed: Fri Oct 17 12:22:27 2014 -0400 ---------------------------------------------------------------------- .../activemq/transport/amqp/JMSClientTest.java | 45 ++++++++++++++++++++ 1 file changed, 45 insertions(+) ---------------------------------------------------------------------- http://git-wip-us.apache.org/repos/asf/activemq/blob/226e012d/activemq-amqp/src/test/java/org/apache/activemq/transport/amqp/JMSClientTest.java ---------------------------------------------------------------------- diff --git a/activemq-amqp/src/test/java/org/apache/activemq/transport/amqp/JMSClientTest.java b/activemq-amqp/src/test/java/org/apache/activemq/transport/amqp/JMSClientTest.java index de0bca0..5a29ee2 100644 --- a/activemq-amqp/src/test/java/org/apache/activemq/transport/amqp/JMSClientTest.java +++ b/activemq-amqp/src/test/java/org/apache/activemq/transport/amqp/JMSClientTest.java @@ -42,6 +42,7 @@ import javax.jms.Session; import javax.jms.TextMessage; import javax.jms.Topic; +import org.apache.activemq.broker.jmx.BrokerViewMBean; import org.apache.activemq.broker.jmx.ConnectorViewMBean; import org.apache.activemq.broker.jmx.QueueViewMBean; import org.apache.activemq.transport.amqp.joram.ActiveMQAdmin; @@ -849,4 +850,48 @@ public class JMSClientTest extends JMSClientTestSupport { assertEquals(messageSize, textMessage.getText().length()); assertEquals(messageText, textMessage.getText()); } + + @Test(timeout=30000) + public void testDurableConsumerUnsubscribe() throws Exception { + ActiveMQAdmin.enableJMSFrameTracing(); + + final BrokerViewMBean broker = getProxyToBroker(); + + connection = createConnection(); + connection.start(); + + Session session = connection.createSession(false, Session.AUTO_ACKNOWLEDGE); + Topic topic = session.createTopic(getDestinationName()); + MessageConsumer consumer = session.createDurableSubscriber(topic, "DurbaleTopic"); + + assertTrue(Wait.waitFor(new Wait.Condition() { + + @Override + public boolean isSatisified() throws Exception { + return broker.getInactiveDurableTopicSubscribers().length == 0 && + broker.getDurableTopicSubscribers().length == 1; + } + })); + + consumer.close(); + + assertTrue(Wait.waitFor(new Wait.Condition() { + + @Override + public boolean isSatisified() throws Exception { + return broker.getInactiveDurableTopicSubscribers().length == 1 && + broker.getDurableTopicSubscribers().length == 0; + } + })); + + session.unsubscribe("DurbaleTopic"); + assertTrue(Wait.waitFor(new Wait.Condition() { + + @Override + public boolean isSatisified() throws Exception { + return broker.getInactiveDurableTopicSubscribers().length == 0 && + broker.getDurableTopicSubscribers().length == 0; + } + })); + } }
