public JsonRpcMultiServer addService(String name, Object handler) { return addService(name, handler, null); }
/** * Returns the handler's class or interfaces. The serviceName is used * to look up a registered handler. * * @param serviceName the optional name of a service * @return the class */ @Override protected Class<?>[] getHandlerInterfaces(String serviceName) { Class<?> remoteInterface = interfaceMap.get(serviceName); if (remoteInterface != null) { return new Class<?>[]{remoteInterface}; } else if (Proxy.isProxyClass(getHandler(serviceName).getClass())) { return getHandler(serviceName).getClass().getInterfaces(); } else { return new Class<?>[]{getHandler(serviceName).getClass()}; } }
@Before public void setup() { multiServer = new JsonRpcMultiServer(); multiServer.addService(serviceName, mockService, ServiceInterfaceWithParamNameAnnotation.class); byteArrayOutputStream = new ByteArrayOutputStream(); }
@Test public void callMethodExactNumberOfParametersNamed() throws Exception { EasyMock.expect(mockService.testMethod(param2)).andReturn("success"); EasyMock.replay(mockService); multiServer.handleRequest(messageWithMapParamsStream(serviceName + JsonRpcMultiServer.DEFAULT_SEPARATOR + "testMethod", param1, param2), byteArrayOutputStream); assertEquals("success", decodeAnswer(byteArrayOutputStream).get(RESULT).textValue()); }