Versions Compared

Key

  • This line was added.
  • This line was removed.
  • Formatting was changed.

...

Code Block
java
java
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);
  }

});