package org.testfun.jee; import org.junit.Rule; import org.junit.Test; import org.skyscreamer.jsonassert.JSONAssert; import org.skyscreamer.jsonassert.JSONCompareMode; import javax.ws.rs.container.ContainerRequestContext; import javax.ws.rs.container.ContainerResponseContext; import javax.ws.rs.container.ContainerResponseFilter; import javax.ws.rs.core.Response; import javax.ws.rs.ext.Provider; import java.io.IOException; public class JaxRsServerWithProviderTest { @Rule public JaxRsServer jaxRsServer = JaxRsServer.forResources(TestResource.class).providers(TestProvider.class); @Test public void getOk() throws Exception { JSONAssert.assertEquals( "{\"str\":\"kuki\",\"num\":2323}", jaxRsServer.jsonRequest("/rest/test/known").expectStatus(Response.Status.ACCEPTED).get(), JSONCompareMode.LENIENT ); } @Provider public static class TestProvider implements ContainerResponseFilter { public TestProvider() { System.out.println(); } public void filter(ContainerRequestContext requestContext, ContainerResponseContext responseContext) throws IOException { responseContext.setStatus(Response.Status.ACCEPTED.getStatusCode()); responseContext.setEntity(new JaxRsTestObject("kuki", 2323)); } } }