Revise UserSessionResolver to UserQueueSuffixResolver
The resolver for /user/{username} prefixed destinations is now
more explicitly designed to store queue suffixes rather than session
id's, which is what we happen to use as queue suffixes.
This allows something other than the sessionId to be used without
having to change many places. It also enables applications to
construct destinations with user-specific queue suffixes without
making assumptions about what's used for queue suffixes. For
example a controller may construct a map with subscription destinations
and send that down to the client.
This commit is contained in:
@@ -27,12 +27,12 @@ import static org.junit.Assert.*;
|
||||
|
||||
|
||||
/**
|
||||
* Test fixture for {@link SimpleUserSessionResolver}
|
||||
* Test fixture for {@link SimpleUserQueueSuffixResolver}
|
||||
*
|
||||
* @author Rossen Stoyanchev
|
||||
* @since 4.0
|
||||
*/
|
||||
public class SimpleUserSessionResolverTests {
|
||||
public class SimpleUserQueueSuffixResolverTests {
|
||||
|
||||
private static final String user = "joe";
|
||||
private static final List<String> sessionIds = Arrays.asList("sess01", "sess02", "sess03");
|
||||
@@ -41,42 +41,42 @@ public class SimpleUserSessionResolverTests {
|
||||
@Test
|
||||
public void addOneSessionId() {
|
||||
|
||||
SimpleUserSessionResolver resolver = new SimpleUserSessionResolver();
|
||||
resolver.addUserSessionId(user, sessionIds.get(0));
|
||||
SimpleUserQueueSuffixResolver resolver = new SimpleUserQueueSuffixResolver();
|
||||
resolver.addQueueSuffix(user, sessionIds.get(0), sessionIds.get(0));
|
||||
|
||||
assertEquals(Collections.singleton(sessionIds.get(0)), resolver.resolveUserSessionIds(user));
|
||||
assertSame(Collections.emptySet(), resolver.resolveUserSessionIds("jane"));
|
||||
assertEquals(Collections.singleton(sessionIds.get(0)), resolver.getUserQueueSuffixes(user));
|
||||
assertSame(Collections.emptySet(), resolver.getUserQueueSuffixes("jane"));
|
||||
}
|
||||
|
||||
@Test
|
||||
public void addMultipleSessionIds() {
|
||||
|
||||
SimpleUserSessionResolver resolver = new SimpleUserSessionResolver();
|
||||
SimpleUserQueueSuffixResolver resolver = new SimpleUserQueueSuffixResolver();
|
||||
for (String sessionId : sessionIds) {
|
||||
resolver.addUserSessionId(user, sessionId);
|
||||
resolver.addQueueSuffix(user, sessionId, sessionId);
|
||||
}
|
||||
|
||||
assertEquals(new LinkedHashSet<>(sessionIds), resolver.resolveUserSessionIds(user));
|
||||
assertEquals(Collections.emptySet(), resolver.resolveUserSessionIds("jane"));
|
||||
assertEquals(new LinkedHashSet<>(sessionIds), resolver.getUserQueueSuffixes(user));
|
||||
assertEquals(Collections.emptySet(), resolver.getUserQueueSuffixes("jane"));
|
||||
}
|
||||
|
||||
|
||||
@Test
|
||||
public void removeSessionIds() {
|
||||
|
||||
SimpleUserSessionResolver resolver = new SimpleUserSessionResolver();
|
||||
SimpleUserQueueSuffixResolver resolver = new SimpleUserQueueSuffixResolver();
|
||||
for (String sessionId : sessionIds) {
|
||||
resolver.addUserSessionId(user, sessionId);
|
||||
resolver.addQueueSuffix(user, sessionId, sessionId);
|
||||
}
|
||||
|
||||
assertEquals(new LinkedHashSet<>(sessionIds), resolver.resolveUserSessionIds(user));
|
||||
assertEquals(new LinkedHashSet<>(sessionIds), resolver.getUserQueueSuffixes(user));
|
||||
|
||||
resolver.removeUserSessionId(user, sessionIds.get(1));
|
||||
resolver.removeUserSessionId(user, sessionIds.get(2));
|
||||
assertEquals(Collections.singleton(sessionIds.get(0)), resolver.resolveUserSessionIds(user));
|
||||
resolver.removeQueueSuffix(user, sessionIds.get(1));
|
||||
resolver.removeQueueSuffix(user, sessionIds.get(2));
|
||||
assertEquals(Collections.singleton(sessionIds.get(0)), resolver.getUserQueueSuffixes(user));
|
||||
|
||||
resolver.removeUserSessionId(user, sessionIds.get(0));
|
||||
assertSame(Collections.emptySet(), resolver.resolveUserSessionIds(user));
|
||||
resolver.removeQueueSuffix(user, sessionIds.get(0));
|
||||
assertSame(Collections.emptySet(), resolver.getUserQueueSuffixes(user));
|
||||
}
|
||||
|
||||
}
|
||||
Reference in New Issue
Block a user