Selector header name is exposed for configuration
Issue: SPR-16732
This commit is contained in:
@@ -258,7 +258,7 @@ public class DefaultSubscriptionRegistryTests {
|
||||
}
|
||||
|
||||
@Test
|
||||
public void registerSubscriptionWithSelector() throws Exception {
|
||||
public void registerSubscriptionWithSelector() {
|
||||
String sessionId = "sess01";
|
||||
String subscriptionId = "subs01";
|
||||
String destination = "/foo";
|
||||
@@ -266,6 +266,8 @@ public class DefaultSubscriptionRegistryTests {
|
||||
|
||||
this.registry.registerSubscription(subscribeMessage(sessionId, subscriptionId, destination, selector));
|
||||
|
||||
// First, try with selector header
|
||||
|
||||
SimpMessageHeaderAccessor accessor = SimpMessageHeaderAccessor.create();
|
||||
accessor.setDestination(destination);
|
||||
accessor.setNativeHeader("foo", "bar");
|
||||
@@ -276,11 +278,34 @@ public class DefaultSubscriptionRegistryTests {
|
||||
assertEquals(1, actual.size());
|
||||
assertEquals(Collections.singletonList(subscriptionId), actual.get(sessionId));
|
||||
|
||||
// Then without
|
||||
|
||||
actual = this.registry.findSubscriptions(createMessage(destination));
|
||||
assertNotNull(actual);
|
||||
assertEquals(0, actual.size());
|
||||
}
|
||||
|
||||
@Test
|
||||
public void registerSubscriptionWithSelectorNotSupported() {
|
||||
String sessionId = "sess01";
|
||||
String subscriptionId = "subs01";
|
||||
String destination = "/foo";
|
||||
String selector = "headers.foo == 'bar'";
|
||||
|
||||
this.registry.setSelectorHeaderName(null);
|
||||
this.registry.registerSubscription(subscribeMessage(sessionId, subscriptionId, destination, selector));
|
||||
|
||||
SimpMessageHeaderAccessor accessor = SimpMessageHeaderAccessor.create();
|
||||
accessor.setDestination(destination);
|
||||
accessor.setNativeHeader("foo", "bazz");
|
||||
Message<?> message = MessageBuilder.createMessage("", accessor.getMessageHeaders());
|
||||
|
||||
MultiValueMap<String, String> actual = this.registry.findSubscriptions(message);
|
||||
assertNotNull(actual);
|
||||
assertEquals(1, actual.size());
|
||||
assertEquals(Collections.singletonList(subscriptionId), actual.get(sessionId));
|
||||
}
|
||||
|
||||
@Test // SPR-11931
|
||||
public void registerSubscriptionTwiceAndUnregister() {
|
||||
this.registry.registerSubscription(subscribeMessage("sess01", "subs01", "/foo"));
|
||||
|
||||
Reference in New Issue
Block a user