From e81c7dfc4c60b45a27a1bda9afe9fa76b6c1f5bc Mon Sep 17 00:00:00 2001 From: Rossen Stoyanchev Date: Fri, 29 Jan 2016 16:16:21 -0500 Subject: [PATCH] Polish SendToMethodReturnValueHandlerTests --- .../SendToMethodReturnValueHandlerTests.java | 95 ++++++++++--------- 1 file changed, 50 insertions(+), 45 deletions(-) diff --git a/spring-messaging/src/test/java/org/springframework/messaging/simp/annotation/support/SendToMethodReturnValueHandlerTests.java b/spring-messaging/src/test/java/org/springframework/messaging/simp/annotation/support/SendToMethodReturnValueHandlerTests.java index d14587bdb0..683ecd5963 100644 --- a/spring-messaging/src/test/java/org/springframework/messaging/simp/annotation/support/SendToMethodReturnValueHandlerTests.java +++ b/spring-messaging/src/test/java/org/springframework/messaging/simp/annotation/support/SendToMethodReturnValueHandlerTests.java @@ -40,7 +40,6 @@ import org.springframework.messaging.MessageChannel; import org.springframework.messaging.MessageHeaders; import org.springframework.messaging.converter.MappingJackson2MessageConverter; import org.springframework.messaging.converter.StringMessageConverter; -import org.springframework.messaging.handler.DestinationPatternsMessageCondition; import org.springframework.messaging.handler.annotation.SendTo; import org.springframework.messaging.simp.SimpMessageHeaderAccessor; import org.springframework.messaging.simp.SimpMessageSendingOperations; @@ -53,6 +52,7 @@ import org.springframework.util.MimeType; import static org.junit.Assert.*; import static org.mockito.BDDMockito.*; +import static org.springframework.messaging.handler.DestinationPatternsMessageCondition.LOOKUP_DESTINATION_HEADER; import static org.springframework.messaging.handler.annotation.support.DestinationVariableMethodArgumentResolver.*; import static org.springframework.messaging.support.MessageHeaderAccessor.*; @@ -61,6 +61,7 @@ import static org.springframework.messaging.support.MessageHeaderAccessor.*; * * @author Rossen Stoyanchev * @author Sebastien Deleuze + * @author Stephane Nicoll */ public class SendToMethodReturnValueHandlerTests { @@ -177,7 +178,7 @@ public class SendToMethodReturnValueHandlerTests { given(this.messageChannel.send(any(Message.class))).willReturn(true); String sessionId = "sess1"; - Message inputMessage = createInputMessage(sessionId, "sub1", "/app", "/dest", null); + Message inputMessage = createMessage(sessionId, "sub1", "/app", "/dest", null); this.handler.handleReturnValue(PAYLOAD, this.noAnnotationsReturnType, inputMessage); verify(this.messageChannel, times(1)).send(this.messageCaptor.capture()); @@ -189,7 +190,7 @@ public class SendToMethodReturnValueHandlerTests { given(this.messageChannel.send(any(Message.class))).willReturn(true); String sessionId = "sess1"; - Message inputMessage = createInputMessage(sessionId, "sub1", null, null, null); + Message inputMessage = createMessage(sessionId, "sub1", null, null, null); this.handler.handleReturnValue(PAYLOAD, this.sendToReturnType, inputMessage); verify(this.messageChannel, times(2)).send(this.messageCaptor.capture()); @@ -202,7 +203,7 @@ public class SendToMethodReturnValueHandlerTests { given(this.messageChannel.send(any(Message.class))).willReturn(true); String sessionId = "sess1"; - Message inputMessage = createInputMessage(sessionId, "sub1", "/app", "/dest", null); + Message inputMessage = createMessage(sessionId, "sub1", "/app", "/dest", null); this.handler.handleReturnValue(PAYLOAD, this.sendToDefaultDestReturnType, inputMessage); verify(this.messageChannel, times(1)).send(this.messageCaptor.capture()); @@ -214,7 +215,7 @@ public class SendToMethodReturnValueHandlerTests { given(this.messageChannel.send(any(Message.class))).willReturn(true); String sessionId = "sess1"; - Message inputMessage = createInputMessage(sessionId, "sub1", null, null, null); + Message inputMessage = createMessage(sessionId, "sub1", null, null, null); this.handler.handleReturnValue(PAYLOAD, this.defaultNoAnnotation, inputMessage); verify(this.messageChannel, times(1)).send(this.messageCaptor.capture()); @@ -226,7 +227,7 @@ public class SendToMethodReturnValueHandlerTests { given(this.messageChannel.send(any(Message.class))).willReturn(true); String sessionId = "sess1"; - Message inputMessage = createInputMessage(sessionId, "sub1", null, null, null); + Message inputMessage = createMessage(sessionId, "sub1", null, null, null); this.handler.handleReturnValue(PAYLOAD, this.defaultEmptyAnnotation, inputMessage); verify(this.messageChannel, times(1)).send(this.messageCaptor.capture()); @@ -238,7 +239,7 @@ public class SendToMethodReturnValueHandlerTests { given(this.messageChannel.send(any(Message.class))).willReturn(true); String sessionId = "sess1"; - Message inputMessage = createInputMessage(sessionId, "sub1", null, null, null); + Message inputMessage = createMessage(sessionId, "sub1", null, null, null); this.handler.handleReturnValue(PAYLOAD, this.defaultOverrideAnnotation, inputMessage); verify(this.messageChannel, times(2)).send(this.messageCaptor.capture()); @@ -251,7 +252,7 @@ public class SendToMethodReturnValueHandlerTests { given(this.messageChannel.send(any(Message.class))).willReturn(true); String sessionId = "sess1"; - Message inputMessage = createInputMessage(sessionId, "sub1", null, null, null); + Message inputMessage = createMessage(sessionId, "sub1", null, null, null); this.handler.handleReturnValue(PAYLOAD, this.userDefaultNoAnnotation, inputMessage); verify(this.messageChannel, times(1)).send(this.messageCaptor.capture()); @@ -263,7 +264,7 @@ public class SendToMethodReturnValueHandlerTests { given(this.messageChannel.send(any(Message.class))).willReturn(true); String sessionId = "sess1"; - Message inputMessage = createInputMessage(sessionId, "sub1", null, null, null); + Message inputMessage = createMessage(sessionId, "sub1", null, null, null); this.handler.handleReturnValue(PAYLOAD, this.userDefaultEmptyAnnotation, inputMessage); verify(this.messageChannel, times(1)).send(this.messageCaptor.capture()); @@ -275,7 +276,7 @@ public class SendToMethodReturnValueHandlerTests { given(this.messageChannel.send(any(Message.class))).willReturn(true); String sessionId = "sess1"; - Message inputMessage = createInputMessage(sessionId, "sub1", null, null, null); + Message inputMessage = createMessage(sessionId, "sub1", null, null, null); this.handler.handleReturnValue(PAYLOAD, this.userDefaultOverrideAnnotation, inputMessage); verify(this.messageChannel, times(2)).send(this.messageCaptor.capture()); @@ -298,7 +299,7 @@ public class SendToMethodReturnValueHandlerTests { public void sendToDefaultDestinationWhenUsingDotPathSeparator() throws Exception { given(this.messageChannel.send(any(Message.class))).willReturn(true); - Message inputMessage = createInputMessage("sess1", "sub1", "/app/", "dest.foo.bar", null); + Message inputMessage = createMessage("sess1", "sub1", "/app/", "dest.foo.bar", null); this.handler.handleReturnValue(PAYLOAD, this.sendToDefaultDestReturnType, inputMessage); verify(this.messageChannel, times(1)).send(this.messageCaptor.capture()); @@ -309,23 +310,24 @@ public class SendToMethodReturnValueHandlerTests { @Test public void testHeadersToSend() throws Exception { - Message inputMessage = createInputMessage("sess1", "sub1", "/app", "/dest", null); + Message message = createMessage("sess1", "sub1", "/app", "/dest", null); SimpMessageSendingOperations messagingTemplate = Mockito.mock(SimpMessageSendingOperations.class); SendToMethodReturnValueHandler handler = new SendToMethodReturnValueHandler(messagingTemplate, false); - handler.handleReturnValue(PAYLOAD, this.noAnnotationsReturnType, inputMessage); + handler.handleReturnValue(PAYLOAD, this.noAnnotationsReturnType, message); ArgumentCaptor captor = ArgumentCaptor.forClass(MessageHeaders.class); verify(messagingTemplate).convertAndSend(eq("/topic/dest"), eq(PAYLOAD), captor.capture()); - MessageHeaders messageHeaders = captor.getValue(); - SimpMessageHeaderAccessor accessor = getAccessor(messageHeaders, SimpMessageHeaderAccessor.class); + MessageHeaders headers = captor.getValue(); + SimpMessageHeaderAccessor accessor = getAccessor(headers, SimpMessageHeaderAccessor.class); assertNotNull(accessor); assertTrue(accessor.isMutable()); assertEquals("sess1", accessor.getSessionId()); assertNull("Subscription id should not be copied", accessor.getSubscriptionId()); - assertEquals(this.noAnnotationsReturnType, accessor.getHeader(SimpMessagingTemplate.CONVERSION_HINT_HEADER)); + assertEquals(this.noAnnotationsReturnType, + accessor.getHeader(SimpMessagingTemplate.CONVERSION_HINT_HEADER)); } @Test @@ -334,7 +336,7 @@ public class SendToMethodReturnValueHandlerTests { String sessionId = "sess1"; TestUser user = new TestUser(); - Message inputMessage = createInputMessage(sessionId, "sub1", null, null, user); + Message inputMessage = createMessage(sessionId, "sub1", null, null, user); this.handler.handleReturnValue(PAYLOAD, this.sendToUserReturnType, inputMessage); verify(this.messageChannel, times(2)).send(this.messageCaptor.capture()); @@ -378,7 +380,7 @@ public class SendToMethodReturnValueHandlerTests { String sessionId = "sess1"; TestUser user = new TestUser(); - Message inputMessage = createInputMessage(sessionId, "sub1", null, null, user); + Message inputMessage = createMessage(sessionId, "sub1", null, null, user); this.handler.handleReturnValue(PAYLOAD, this.sendToUserSingleSessionReturnType, inputMessage); verify(this.messageChannel, times(2)).send(this.messageCaptor.capture()); @@ -388,14 +390,16 @@ public class SendToMethodReturnValueHandlerTests { assertEquals(MIME_TYPE, accessor.getContentType()); assertEquals("/user/" + user.getName() + "/dest1", accessor.getDestination()); assertNull("Subscription id should not be copied", accessor.getSubscriptionId()); - assertEquals(this.sendToUserSingleSessionReturnType, accessor.getHeader(SimpMessagingTemplate.CONVERSION_HINT_HEADER)); + assertEquals(this.sendToUserSingleSessionReturnType, + accessor.getHeader(SimpMessagingTemplate.CONVERSION_HINT_HEADER)); accessor = getCapturedAccessor(1); assertEquals(sessionId, accessor.getSessionId()); assertEquals("/user/" + user.getName() + "/dest2", accessor.getDestination()); assertEquals(MIME_TYPE, accessor.getContentType()); assertNull("Subscription id should not be copied", accessor.getSubscriptionId()); - assertEquals(this.sendToUserSingleSessionReturnType, accessor.getHeader(SimpMessagingTemplate.CONVERSION_HINT_HEADER)); + assertEquals(this.sendToUserSingleSessionReturnType, + accessor.getHeader(SimpMessagingTemplate.CONVERSION_HINT_HEADER)); } @Test @@ -404,7 +408,7 @@ public class SendToMethodReturnValueHandlerTests { String sessionId = "sess1"; TestUser user = new UniqueUser(); - Message inputMessage = createInputMessage(sessionId, "sub1", null, null, user); + Message inputMessage = createMessage(sessionId, "sub1", null, null, user); this.handler.handleReturnValue(PAYLOAD, this.sendToUserReturnType, inputMessage); verify(this.messageChannel, times(2)).send(this.messageCaptor.capture()); @@ -422,7 +426,7 @@ public class SendToMethodReturnValueHandlerTests { String sessionId = "sess1"; TestUser user = new TestUser(); - Message inputMessage = createInputMessage(sessionId, "sub1", "/app", "/dest", user); + Message inputMessage = createMessage(sessionId, "sub1", "/app", "/dest", user); this.handler.handleReturnValue(PAYLOAD, this.sendToUserDefaultDestReturnType, inputMessage); verify(this.messageChannel, times(1)).send(this.messageCaptor.capture()); @@ -438,7 +442,7 @@ public class SendToMethodReturnValueHandlerTests { given(this.messageChannel.send(any(Message.class))).willReturn(true); TestUser user = new TestUser(); - Message inputMessage = createInputMessage("sess1", "sub1", "/app/", "dest.foo.bar", user); + Message inputMessage = createMessage("sess1", "sub1", "/app/", "dest.foo.bar", user); this.handler.handleReturnValue(PAYLOAD, this.sendToUserDefaultDestReturnType, inputMessage); verify(this.messageChannel, times(1)).send(this.messageCaptor.capture()); @@ -453,8 +457,8 @@ public class SendToMethodReturnValueHandlerTests { String sessionId = "sess1"; TestUser user = new TestUser(); - Message inputMessage = createInputMessage(sessionId, "sub1", "/app", "/dest", user); - this.handler.handleReturnValue(PAYLOAD, this.sendToUserSingleSessionDefaultDestReturnType, inputMessage); + Message message = createMessage(sessionId, "sub1", "/app", "/dest", user); + this.handler.handleReturnValue(PAYLOAD, this.sendToUserSingleSessionDefaultDestReturnType, message); verify(this.messageChannel, times(1)).send(this.messageCaptor.capture()); @@ -463,7 +467,8 @@ public class SendToMethodReturnValueHandlerTests { assertEquals("/user/" + user.getName() + "/queue/dest", accessor.getDestination()); assertEquals(MIME_TYPE, accessor.getContentType()); assertNull("Subscription id should not be copied", accessor.getSubscriptionId()); - assertEquals(this.sendToUserSingleSessionDefaultDestReturnType, accessor.getHeader(SimpMessagingTemplate.CONVERSION_HINT_HEADER)); + assertEquals(this.sendToUserSingleSessionDefaultDestReturnType, + accessor.getHeader(SimpMessagingTemplate.CONVERSION_HINT_HEADER)); } @Test @@ -471,7 +476,7 @@ public class SendToMethodReturnValueHandlerTests { given(this.messageChannel.send(any(Message.class))).willReturn(true); String sessionId = "sess1"; - Message inputMessage = createInputMessage(sessionId, "sub1", null, null, null); + Message inputMessage = createMessage(sessionId, "sub1", null, null, null); this.handler.handleReturnValue(PAYLOAD, this.sendToUserReturnType, inputMessage); verify(this.messageChannel, times(2)).send(this.messageCaptor.capture()); @@ -490,29 +495,28 @@ public class SendToMethodReturnValueHandlerTests { given(this.messageChannel.send(any(Message.class))).willReturn(true); String sessionId = "sess1"; - Message inputMessage = createInputMessage(sessionId, "sub1", "/app", "/dest", null); + Message inputMessage = createMessage(sessionId, "sub1", "/app", "/dest", null); this.jsonHandler.handleReturnValue(handleAndSendToJsonView(), this.jsonViewReturnType, inputMessage); verify(this.messageChannel).send(this.messageCaptor.capture()); Message message = this.messageCaptor.getValue(); assertNotNull(message); - assertEquals("{\"withView1\":\"with\"}", new String((byte[]) message.getPayload(), StandardCharsets.UTF_8)); + String bytes = new String((byte[]) message.getPayload(), StandardCharsets.UTF_8); + assertEquals("{\"withView1\":\"with\"}", bytes); } - private Message createInputMessage(String sessId, String subsId, String destinationPrefix, - String destination, Principal principal) { - + private Message createMessage(String sessId, String subsId, String destPrefix, String dest, Principal user) { SimpMessageHeaderAccessor headerAccessor = SimpMessageHeaderAccessor.create(); headerAccessor.setSessionId(sessId); headerAccessor.setSubscriptionId(subsId); - if (destination != null && destinationPrefix != null) { - headerAccessor.setDestination(destinationPrefix + destination); - headerAccessor.setHeader(DestinationPatternsMessageCondition.LOOKUP_DESTINATION_HEADER, destination); + if (dest != null && destPrefix != null) { + headerAccessor.setDestination(destPrefix + dest); + headerAccessor.setHeader(LOOKUP_DESTINATION_HEADER, dest); } - if (principal != null) { - headerAccessor.setUser(principal); + if (user != null) { + headerAccessor.setUser(user); } return MessageBuilder.createMessage(new byte[0], headerAccessor.getMessageHeaders()); } @@ -542,47 +546,48 @@ public class SendToMethodReturnValueHandlerTests { } } + @SuppressWarnings("unused") public String handleNoAnnotations() { return PAYLOAD; } - @SendTo + @SendTo @SuppressWarnings("unused") public String handleAndSendToDefaultDestination() { return PAYLOAD; } - @SendTo({"/dest1", "/dest2"}) + @SendTo({"/dest1", "/dest2"}) @SuppressWarnings("unused") public String handleAndSendTo() { return PAYLOAD; } - @SendTo("/topic/chat.message.filtered.{roomName}") + @SendTo("/topic/chat.message.filtered.{roomName}") @SuppressWarnings("unused") public String handleAndSendToWithPlaceholders() { return PAYLOAD; } - @SendToUser + @SendToUser @SuppressWarnings("unused") public String handleAndSendToUserDefaultDestination() { return PAYLOAD; } - @SendToUser(broadcast = false) + @SendToUser(broadcast = false) @SuppressWarnings("unused") public String handleAndSendToUserDefaultDestinationSingleSession() { return PAYLOAD; } - @SendToUser({"/dest1", "/dest2"}) + @SendToUser({"/dest1", "/dest2"}) @SuppressWarnings("unused") public String handleAndSendToUser() { return PAYLOAD; } - @SendToUser(destinations = { "/dest1", "/dest2" }, broadcast = false) + @SendToUser(destinations = { "/dest1", "/dest2" }, broadcast = false) @SuppressWarnings("unused") public String handleAndSendToUserSingleSession() { return PAYLOAD; } @SendTo("/dest") - @JsonView(MyJacksonView1.class) + @JsonView(MyJacksonView1.class) @SuppressWarnings("unused") public JacksonViewBean handleAndSendToJsonView() { JacksonViewBean payload = new JacksonViewBean(); payload.setWithView1("with");