### Question:
WebSocketAction { public Method getMethod() { return method; } WebSocketAction(Method method, Map<String, String> requirements, WebSocketActionArgumentResolver... argumentResolvers); static void addWebSocketResponseConverter(WebSocketResponseConverter converter); boolean canInvoke(WebSocketSession session, Class<?> messageClass); DeferredResult<?> invoke(Object handler, RawWebSocketMessage<?> message, WebSocketEnvelope envelope, WebSocketSession session); Method getMethod(); int getPayloadParameterIndex(); boolean shouldValidatePayload(); Class<?> getHandlerClass(); Class<?> getPayloadClass(); Class<?> getResponseClass();  }### Answer:
@Test(expected = IllegalArgumentException.class) public void testActionWithCustomArgResolver_multipleForSameArg() throws Exception { Method method = WebSocketActionTest.class.getMethod("handler", String.class, String.class); WebSocketActionArgumentResolver arg1Resolver = new WebSocketActionArgumentResolver() { @Override public boolean supportsParameter(MethodParameter parameter) { return parameter.getParameterIndex() == 0; } @Override public Object resolveArgument(MethodParameter parameter, WebSocketEnvelope envelope, WebSocketSession session) { return "1"; } }; WebSocketActionArgumentResolver arg2Resolver = new WebSocketActionArgumentResolver() { @Override public boolean supportsParameter(MethodParameter parameter) { return parameter.getParameterIndex() == 0; } @Override public Object resolveArgument(MethodParameter parameter, WebSocketEnvelope envelope, WebSocketSession session) { return "2"; } }; new WebSocketAction(method, null, arg1Resolver, arg2Resolver); Assert.fail(); }