ARTEMIS-3423: remaining #3697 feedback, move the non-shared sub test out of the shared sub test class

This commit is contained in:
Robbie Gemmell 2021-08-19 11:42:20 +01:00
parent 3edb96b09b
commit fac1c4320d
2 changed files with 43 additions and 42 deletions

View File

@ -35,8 +35,10 @@ import javax.jms.Session;
import javax.jms.TextMessage;
import javax.jms.Topic;
import org.apache.activemq.artemis.api.core.SimpleString;
import org.apache.activemq.artemis.api.core.client.ActiveMQClient;
import org.apache.activemq.artemis.core.server.ActiveMQServer;
import org.apache.activemq.artemis.core.server.impl.QueueImpl;
import org.apache.activemq.artemis.tests.util.Wait;
import org.junit.Assert;
import org.junit.Test;
@ -268,4 +270,45 @@ public class JMSDurableConsumerTest extends JMSClientTestSupport {
}
}
}
@Test(timeout = 30000)
public void testDurableConsumerWithSelectorChange() throws Exception {
SimpleString qName = new SimpleString("foo.SharedConsumer");
Connection connection = createConnection("foo", true);
try {
Session session = connection.createSession(false, Session.AUTO_ACKNOWLEDGE);
Topic topic = session.createTopic(getTopicName());
MessageConsumer consumer = session.createDurableConsumer(topic, "SharedConsumer", "a=b", false);
MessageProducer producer = session.createProducer(session.createTopic(getTopicName()));
Message message = session.createMessage();
message.setStringProperty("a", "1");
message.setStringProperty("b", "1");
producer.send(message);
QueueImpl queue = (QueueImpl) server.getPostOffice().getBinding(qName).getBindable();
assertEquals(1, queue.getMaxConsumers());
Wait.assertEquals(1, queue::getMessageCount);
consumer.close();
MessageConsumer consumer2 = session.createDurableConsumer(topic, "SharedConsumer", "a=b and b=c", false);
queue = (QueueImpl) server.getPostOffice().getBinding(qName).getBindable();
assertEquals(1, queue.getMaxConsumers());
Wait.assertEquals(0, queue::getMessageCount);
message = session.createMessage();
message.setStringProperty("a", "2");
message.setStringProperty("b", "2");
message.setStringProperty("c", "2");
producer.send(message);
Wait.assertEquals(1, queue::getMessageCount);
connection.start();
Assert.assertNotNull(consumer2.receive(5000));
} finally {
connection.close();
}
}
}

View File

@ -36,7 +36,6 @@ import org.apache.activemq.artemis.tests.util.Wait;
import org.junit.Test;
import org.junit.runner.RunWith;
import org.junit.runners.Parameterized;
import org.wildfly.common.Assert;
@RunWith(Parameterized.class)
public class JMSSharedDurableConsumerTest extends JMSClientTestSupport {
@ -169,45 +168,4 @@ public class JMSSharedDurableConsumerTest extends JMSClientTestSupport {
connection.close();
}
}
@Test(timeout = 30000)
public void testDurableConsumerWithSelectorChange() throws Exception {
SimpleString qName = new SimpleString("foo.SharedConsumer");
Connection connection = createConnection("foo", true);
try {
Session session = connection.createSession(false, Session.AUTO_ACKNOWLEDGE);
Topic topic = session.createTopic(getTopicName());
MessageConsumer consumer = session.createDurableConsumer(topic, "SharedConsumer", "a=b", false);
MessageProducer producer = session.createProducer(session.createTopic(getTopicName()));
Message message = session.createMessage();
message.setStringProperty("a", "1");
message.setStringProperty("b", "1");
producer.send(message);
QueueImpl queue = (QueueImpl) server.getPostOffice().getBinding(qName).getBindable();
assertEquals(1, queue.getMaxConsumers());
Wait.assertEquals(1, queue::getMessageCount);
consumer.close();
MessageConsumer consumer2 = session.createDurableConsumer(topic, "SharedConsumer", "a=b and b=c", false);
queue = (QueueImpl) server.getPostOffice().getBinding(qName).getBindable();
assertEquals(1, queue.getMaxConsumers());
Wait.assertEquals(0, queue::getMessageCount);
message = session.createMessage();
message.setStringProperty("a", "2");
message.setStringProperty("b", "2");
message.setStringProperty("c", "2");
producer.send(message);
Wait.assertEquals(1, queue::getMessageCount);
connection.start();
Assert.assertNotNull(consumer2.receive(5000));
} finally {
connection.close();
}
}
}