Browse Source

Polish @SendTo test

pull/1856/head
Rossen Stoyanchev 7 years ago
parent
commit
7a70f7c5d8
  1. 111
      spring-messaging/src/test/java/org/springframework/messaging/simp/annotation/support/SendToMethodReturnValueHandlerTests.java

111
spring-messaging/src/test/java/org/springframework/messaging/simp/annotation/support/SendToMethodReturnValueHandlerTests.java

@ -81,21 +81,34 @@ public class SendToMethodReturnValueHandlerTests { @@ -81,21 +81,34 @@ public class SendToMethodReturnValueHandlerTests {
@Captor private ArgumentCaptor<Message<?>> messageCaptor;
private MethodParameter noAnnotationsReturnType;
private MethodParameter sendToReturnType;
private MethodParameter sendToDefaultDestReturnType;
private MethodParameter sendToWithPlaceholdersReturnType;
private MethodParameter sendToUserReturnType;
private MethodParameter sendToUserSingleSessionReturnType;
private MethodParameter sendToUserDefaultDestReturnType;
private MethodParameter sendToUserSingleSessionDefaultDestReturnType;
private MethodParameter jsonViewReturnType;
private MethodParameter defaultNoAnnotation;
private MethodParameter defaultEmptyAnnotation;
private MethodParameter defaultOverrideAnnotation;
private MethodParameter userDefaultNoAnnotation;
private MethodParameter userDefaultEmptyAnnotation;
private MethodParameter userDefaultOverrideAnnotation;
private MethodParameter noAnnotationsReturnType = param("handleNoAnnotations");
private MethodParameter sendToReturnType = param("handleAndSendTo");
private MethodParameter sendToDefaultDestReturnType = param("handleAndSendToDefaultDest");
private MethodParameter sendToWithPlaceholdersReturnType = param("handleAndSendToWithPlaceholders");
private MethodParameter sendToUserReturnType = param("handleAndSendToUser");
private MethodParameter sendToUserInSessionReturnType = param("handleAndSendToUserInSession");
private MethodParameter sendToUserDefaultDestReturnType = param("handleAndSendToUserDefaultDest");
private MethodParameter sendToUserInSessionDefaultDestReturnType = param("handleAndSendToUserDefaultDestInSession");
private MethodParameter jsonViewReturnType = param("handleAndSendToJsonView");
private MethodParameter defaultNoAnnotation = param(SendToTestBean.class, "handleNoAnnotation");
private MethodParameter defaultEmptyAnnotation = param(SendToTestBean.class, "handleAndSendToDefaultDest");
private MethodParameter defaultOverrideAnnotation = param(SendToTestBean.class, "handleAndSendToOverride");
private MethodParameter userDefaultNoAnnotation = param(SendToUserTestBean.class, "handleNoAnnotation");
private MethodParameter userDefaultEmptyAnnotation = param(SendToUserTestBean.class, "handleAndSendToDefaultDest");
private MethodParameter userDefaultOverrideAnnotation = param(SendToUserTestBean.class, "handleAndSendToOverride");
private MethodParameter param(String methodName) {
return param(getClass(), methodName);
}
private static MethodParameter param(Class<?> clazz, String methodName) {
try {
return new SynthesizingMethodParameter(clazz.getDeclaredMethod(methodName), -1);
}
catch (NoSuchMethodException ex) {
throw new IllegalArgumentException("No such method", ex);
}
}
@Before
@ -110,54 +123,8 @@ public class SendToMethodReturnValueHandlerTests { @@ -110,54 +123,8 @@ public class SendToMethodReturnValueHandlerTests {
SimpMessagingTemplate jsonMessagingTemplate = new SimpMessagingTemplate(this.messageChannel);
jsonMessagingTemplate.setMessageConverter(new MappingJackson2MessageConverter());
this.jsonHandler = new SendToMethodReturnValueHandler(jsonMessagingTemplate, true);
Method method = getClass().getDeclaredMethod("handleNoAnnotations");
this.noAnnotationsReturnType = new SynthesizingMethodParameter(method, -1);
method = getClass().getDeclaredMethod("handleAndSendToDefaultDestination");
this.sendToDefaultDestReturnType = new SynthesizingMethodParameter(method, -1);
method = getClass().getDeclaredMethod("handleAndSendTo");
this.sendToReturnType = new SynthesizingMethodParameter(method, -1);
method = getClass().getDeclaredMethod("handleAndSendToWithPlaceholders");
this.sendToWithPlaceholdersReturnType = new SynthesizingMethodParameter(method, -1);
method = getClass().getDeclaredMethod("handleAndSendToUser");
this.sendToUserReturnType = new SynthesizingMethodParameter(method, -1);
method = getClass().getDeclaredMethod("handleAndSendToUserSingleSession");
this.sendToUserSingleSessionReturnType = new SynthesizingMethodParameter(method, -1);
method = getClass().getDeclaredMethod("handleAndSendToUserDefaultDestination");
this.sendToUserDefaultDestReturnType = new SynthesizingMethodParameter(method, -1);
method = getClass().getDeclaredMethod("handleAndSendToUserDefaultDestinationSingleSession");
this.sendToUserSingleSessionDefaultDestReturnType = new SynthesizingMethodParameter(method, -1);
method = getClass().getDeclaredMethod("handleAndSendToJsonView");
this.jsonViewReturnType = new SynthesizingMethodParameter(method, -1);
method = SendToTestBean.class.getDeclaredMethod("handleNoAnnotation");
this.defaultNoAnnotation = new SynthesizingMethodParameter(method, -1);
method = SendToTestBean.class.getDeclaredMethod("handleAndSendToDefaultDestination");
this.defaultEmptyAnnotation = new SynthesizingMethodParameter(method, -1);
method = SendToTestBean.class.getDeclaredMethod("handleAndSendToOverride");
this.defaultOverrideAnnotation = new SynthesizingMethodParameter(method, -1);
method = SendToUserTestBean.class.getDeclaredMethod("handleNoAnnotation");
this.userDefaultNoAnnotation = new SynthesizingMethodParameter(method, -1);
method = SendToUserTestBean.class.getDeclaredMethod("handleAndSendToDefaultDestination");
this.userDefaultEmptyAnnotation = new SynthesizingMethodParameter(method, -1);
method = SendToUserTestBean.class.getDeclaredMethod("handleAndSendToOverride");
this.userDefaultOverrideAnnotation = new SynthesizingMethodParameter(method, -1);
}
@Test
public void supportsReturnType() throws Exception {
assertTrue(this.handler.supportsReturnType(this.sendToReturnType));
@ -417,7 +384,7 @@ public class SendToMethodReturnValueHandlerTests { @@ -417,7 +384,7 @@ public class SendToMethodReturnValueHandlerTests {
String sessionId = "sess1";
TestUser user = new TestUser();
Message<?> inputMessage = createMessage(sessionId, "sub1", null, null, user);
this.handler.handleReturnValue(PAYLOAD, this.sendToUserSingleSessionReturnType, inputMessage);
this.handler.handleReturnValue(PAYLOAD, this.sendToUserInSessionReturnType, inputMessage);
verify(this.messageChannel, times(2)).send(this.messageCaptor.capture());
@ -426,7 +393,7 @@ public class SendToMethodReturnValueHandlerTests { @@ -426,7 +393,7 @@ 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,
assertEquals(this.sendToUserInSessionReturnType,
accessor.getHeader(SimpMessagingTemplate.CONVERSION_HINT_HEADER));
accessor = getCapturedAccessor(1);
@ -434,7 +401,7 @@ public class SendToMethodReturnValueHandlerTests { @@ -434,7 +401,7 @@ public class SendToMethodReturnValueHandlerTests {
assertEquals("/user/" + user.getName() + "/dest2", accessor.getDestination());
assertEquals(MIME_TYPE, accessor.getContentType());
assertNull("Subscription id should not be copied", accessor.getSubscriptionId());
assertEquals(this.sendToUserSingleSessionReturnType,
assertEquals(this.sendToUserInSessionReturnType,
accessor.getHeader(SimpMessagingTemplate.CONVERSION_HINT_HEADER));
}
@ -494,7 +461,7 @@ public class SendToMethodReturnValueHandlerTests { @@ -494,7 +461,7 @@ public class SendToMethodReturnValueHandlerTests {
String sessionId = "sess1";
TestUser user = new TestUser();
Message<?> message = createMessage(sessionId, "sub1", "/app", "/dest", user);
this.handler.handleReturnValue(PAYLOAD, this.sendToUserSingleSessionDefaultDestReturnType, message);
this.handler.handleReturnValue(PAYLOAD, this.sendToUserInSessionDefaultDestReturnType, message);
verify(this.messageChannel, times(1)).send(this.messageCaptor.capture());
@ -503,7 +470,7 @@ public class SendToMethodReturnValueHandlerTests { @@ -503,7 +470,7 @@ 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,
assertEquals(this.sendToUserInSessionDefaultDestReturnType,
accessor.getHeader(SimpMessagingTemplate.CONVERSION_HINT_HEADER));
}
@ -570,7 +537,7 @@ public class SendToMethodReturnValueHandlerTests { @@ -570,7 +537,7 @@ public class SendToMethodReturnValueHandlerTests {
@SendTo
@SuppressWarnings("unused")
String handleAndSendToDefaultDestination() {
String handleAndSendToDefaultDest() {
return PAYLOAD;
}
@ -588,13 +555,13 @@ public class SendToMethodReturnValueHandlerTests { @@ -588,13 +555,13 @@ public class SendToMethodReturnValueHandlerTests {
@SendToUser
@SuppressWarnings("unused")
String handleAndSendToUserDefaultDestination() {
String handleAndSendToUserDefaultDest() {
return PAYLOAD;
}
@SendToUser(broadcast = false)
@SuppressWarnings("unused")
String handleAndSendToUserDefaultDestinationSingleSession() {
String handleAndSendToUserDefaultDestInSession() {
return PAYLOAD;
}
@ -606,7 +573,7 @@ public class SendToMethodReturnValueHandlerTests { @@ -606,7 +573,7 @@ public class SendToMethodReturnValueHandlerTests {
@SendToUser(destinations = { "/dest1", "/dest2" }, broadcast = false)
@SuppressWarnings("unused")
String handleAndSendToUserSingleSession() {
String handleAndSendToUserInSession() {
return PAYLOAD;
}
@ -668,7 +635,7 @@ public class SendToMethodReturnValueHandlerTests { @@ -668,7 +635,7 @@ public class SendToMethodReturnValueHandlerTests {
}
@SendTo
String handleAndSendToDefaultDestination() {
String handleAndSendToDefaultDest() {
return PAYLOAD;
}
@ -687,7 +654,7 @@ public class SendToMethodReturnValueHandlerTests { @@ -687,7 +654,7 @@ public class SendToMethodReturnValueHandlerTests {
}
@SendToUser
String handleAndSendToDefaultDestination() {
String handleAndSendToDefaultDest() {
return PAYLOAD;
}

Loading…
Cancel
Save