package org.everrest.assured; import com.jayway.restassured.RestAssured; import org.everrest.core.Filter; import org.everrest.core.method.MethodInvokerFilter; import org.everrest.core.resource.GenericResourceMethod; import org.everrest.sample.book.Book; import org.everrest.sample.book.BookService; import org.everrest.sample.book.BookStorage; import org.mockito.InjectMocks; import org.mockito.Mock; import org.mockito.testng.MockitoTestNGListener; import org.testng.annotations.Listeners; import org.testng.annotations.Test; import javax.ws.rs.Path; import javax.ws.rs.PathParam; import javax.ws.rs.WebApplicationException; import static org.mockito.Matchers.eq; import static org.mockito.Mockito.verify; import static org.mockito.Mockito.when; @Listeners(value = {EverrestJetty.class, MockitoTestNGListener.class}) public class MethodInvokerFilterTest { @SuppressWarnings("unused") MyFilter INV_FILTER; @Filter @Path("/books/{id}") public static class MyFilter implements MethodInvokerFilter { @PathParam("id") String id; @Override public void accept(GenericResourceMethod resourceMethod, Object[] params) throws WebApplicationException { if (id.equals("00000")) { params[0] = "123-1235-555"; } } } @Mock private BookStorage bookStorage; @InjectMocks private BookService bookService; @Test public void shouldBeAbleToGetBook() throws Exception { Book book = new Book(); book.setId("123-1235-555"); when(bookStorage.getBook(eq("123-1235-555"))).thenReturn(book); //unsecure call to rest service RestAssured.given() .auth().basic(JettyHttpServer.ADMIN_USER_NAME, JettyHttpServer.ADMIN_USER_PASSWORD) .pathParam("id", "00000"). when(). get("/private/books/{id}"). then().statusCode(200); verify(bookStorage).getBook(eq("123-1235-555")); } }