mirror of https://github.com/apache/activemq.git
This commit is contained in:
parent
c55a666921
commit
291ec5ea17
|
@ -174,6 +174,32 @@ public class JmsTopicWildcardSendReceiveTest extends JmsTopicSendReceiveTest {
|
|||
assertNull(consumer.receiveNoWait());
|
||||
}
|
||||
|
||||
public void testReceiveWildcardTopicMatchSinglePastTheEndWildcard() throws Exception {
|
||||
connection.start();
|
||||
Session session = connection.createSession(false, Session.AUTO_ACKNOWLEDGE);
|
||||
|
||||
ActiveMQDestination destination1 = (ActiveMQDestination)session.createTopic("a.>");
|
||||
ActiveMQDestination destination2 = (ActiveMQDestination)session.createTopic("a");
|
||||
|
||||
Message m = null;
|
||||
MessageConsumer consumer = null;
|
||||
String text = null;
|
||||
|
||||
|
||||
consumer = session.createConsumer(destination1);
|
||||
sendMessage(session, destination2, destination3String);
|
||||
|
||||
m = consumer.receive(1000);
|
||||
assertNotNull(m);
|
||||
text = ((TextMessage)m).getText();
|
||||
if (!(text.equals(destination1String) || text.equals(destination3String))) {
|
||||
fail("unexpected message:" + text);
|
||||
}
|
||||
|
||||
assertNull(consumer.receiveNoWait());
|
||||
}
|
||||
|
||||
|
||||
|
||||
private void sendMessage(Session session, Destination destination, String text) throws JMSException {
|
||||
MessageProducer producer = session.createProducer(destination);
|
||||
|
|
|
@ -41,4 +41,25 @@ public class DestinationFilterTest extends TestCase {
|
|||
assertTrue("Filter not parsed well: " + filter.getClass(), filter instanceof CompositeDestinationFilter);
|
||||
assertFalse("Filter matched wrong destination type", filter.matches(new ActiveMQTopic("A.B")));
|
||||
}
|
||||
|
||||
public void testMatchesChild() throws Exception{
|
||||
DestinationFilter filter = DestinationFilter.parseFilter(new ActiveMQQueue("A.*.C"));
|
||||
assertFalse("Filter matched wrong destination type", filter.matches(new ActiveMQTopic("A.B")));
|
||||
assertTrue("Filter did not match", filter.matches(new ActiveMQQueue("A.B.C")));
|
||||
|
||||
filter = DestinationFilter.parseFilter(new ActiveMQQueue("A.*"));
|
||||
assertTrue("Filter did not match", filter.matches(new ActiveMQQueue("A.B")));
|
||||
assertFalse("Filter did match", filter.matches(new ActiveMQQueue("A")));
|
||||
}
|
||||
|
||||
public void testMatchesAny() throws Exception{
|
||||
DestinationFilter filter = DestinationFilter.parseFilter(new ActiveMQQueue("A.>.>"));
|
||||
|
||||
assertTrue("Filter did not match", filter.matches(new ActiveMQQueue("A.C")));
|
||||
|
||||
assertFalse("Filter did match", filter.matches(new ActiveMQQueue("B")));
|
||||
assertTrue("Filter did not match", filter.matches(new ActiveMQQueue("A.B")));
|
||||
assertTrue("Filter did not match", filter.matches(new ActiveMQQueue("A.B.C.D.E.F")));
|
||||
assertTrue("Filter did not match", filter.matches(new ActiveMQQueue("A")));
|
||||
}
|
||||
}
|
||||
|
|
Loading…
Reference in New Issue