mirror of
https://github.com/apache/activemq.git
synced 2025-02-10 12:06:05 +00:00
Add a test case for durable topic unsubscribe.
This commit is contained in:
parent
e90f1decb2
commit
41ca0d9464
@ -42,6 +42,7 @@ import javax.jms.Session;
|
|||||||
import javax.jms.TextMessage;
|
import javax.jms.TextMessage;
|
||||||
import javax.jms.Topic;
|
import javax.jms.Topic;
|
||||||
|
|
||||||
|
import org.apache.activemq.broker.jmx.BrokerViewMBean;
|
||||||
import org.apache.activemq.broker.jmx.ConnectorViewMBean;
|
import org.apache.activemq.broker.jmx.ConnectorViewMBean;
|
||||||
import org.apache.activemq.broker.jmx.QueueViewMBean;
|
import org.apache.activemq.broker.jmx.QueueViewMBean;
|
||||||
import org.apache.activemq.transport.amqp.joram.ActiveMQAdmin;
|
import org.apache.activemq.transport.amqp.joram.ActiveMQAdmin;
|
||||||
@ -628,6 +629,50 @@ public class JMSClientTest extends JMSClientTestSupport {
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@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;
|
||||||
|
}
|
||||||
|
}));
|
||||||
|
}
|
||||||
|
|
||||||
@Test(timeout=30000)
|
@Test(timeout=30000)
|
||||||
public void testTopicConsumerAsync() throws Exception {
|
public void testTopicConsumerAsync() throws Exception {
|
||||||
ActiveMQAdmin.enableJMSFrameTracing();
|
ActiveMQAdmin.enableJMSFrameTracing();
|
||||||
|
Loading…
x
Reference in New Issue
Block a user