THIS IS A TEST INSTANCE. ALL YOUR CHANGES WILL BE LOST!!!!
...
Code Block | ||||
---|---|---|---|---|
| ||||
private static void startServer() throws Exception { JAXRSServerFactoryBean sf = new JAXRSServerFactoryBean(); sf.setTransportId(LocalTransportFactory.TRANSPORT_ID); sf.setAddress("/books"); sf.setResourceClasses(MyJaxrsResource.class); server = sf.create(); } @Test public void testProxyPipedDispatchGet() throws Exception { JAXRSClientFactoryBean bean = new JAXRSClientFactoryBean(); bean.setTransportId(LocalTransportFactory.TRANSPORT_ID); bean.setAddress("/books"); bean.setServiceClass(MyJaxrsResource.class); MyJaxrsResource localProxy = bean.create(MyJaxrsResource.class); Book book = localProxy.getBook("123"); assertEquals(123L, book.getId()); } |
Mocking HTTP contexts
If you test a code which depends on the injected HTTP contexts such as HttpServletRequest then these contexts will have to be mocked.
For example:
Code Block |
---|
JAXRSServerFactoryBean sf = new JAXRSServerFactoryBean();
sf.setInvoker(new Invoker() {
Invoker jarsInvoker = new JAXRSInvoker();
@Override
public Object invoke(Exchange exchange, Object o) {
HttpServletRequest request = Mockito.mock(HttpServletRequest.class);
Mockito.when(request.getRemoteHost()).thenReturn("host");
exchange.getInMessage().put(AbstractHTTPDestination.HTTP_REQUEST, request);
return jarsInvoker.invoke(exchange, o);
}
}); |