Search in sources :

Example 6 with ClientResponseFilter

use of javax.ws.rs.client.ClientResponseFilter in project jersey by jersey.

the class AbortResponseClientTest method testRequestAbort.

@Test
public void testRequestAbort() {
    final Date date = getDate();
    ClientRequestFilter outFilter = new ClientRequestFilter() {

        @Override
        public void filter(ClientRequestContext context) throws IOException {
            NewCookie cookie1 = new NewCookie("cookie1", "cookie1");
            NewCookie cookie2 = new NewCookie("cookie2", "cookie2");
            final Response response = Response.ok().cookie(cookie1).cookie(cookie2).header("head1", "head1").header(HttpHeaders.DATE, date).header(HttpHeaders.ETAG, "\"123465\"").header(HttpHeaders.CONTENT_LANGUAGE, "language").header(HttpHeaders.LAST_MODIFIED, date).header(HttpHeaders.CONTENT_LENGTH, 99).type(MediaType.TEXT_HTML_TYPE).location(URI.create("www.oracle.com")).build();
            // abort the request
            context.abortWith(response);
        }
    };
    ClientResponseFilter inFilter = new ClientResponseFilter() {

        @Override
        public void filter(ClientRequestContext requestContext, ClientResponseContext responseContext) throws IOException {
            Map<String, NewCookie> map = responseContext.getCookies();
            assertEquals("cookie1", map.get("cookie1").getValue());
            assertEquals("cookie2", map.get("cookie2").getValue());
            final MultivaluedMap<String, String> headers = responseContext.getHeaders();
            assertEquals("head1", headers.get("head1").get(0));
            assertEquals(date.getTime(), responseContext.getDate().getTime());
        }
    };
    WebTarget target = target().path("test");
    target.register(outFilter).register(inFilter);
    Invocation i = target.request().buildGet();
    Response r = i.invoke();
    assertEquals("head1", r.getHeaderString("head1"));
    assertEquals("cookie1", r.getCookies().get("cookie1").getValue());
    assertEquals("cookie2", r.getCookies().get("cookie2").getValue());
    assertEquals(date.getTime(), r.getDate().getTime());
    assertEquals("123465", r.getEntityTag().getValue());
    assertEquals("language", r.getLanguage().toString());
    assertEquals(date.getTime(), r.getLastModified().getTime());
    // Assert.assertEquals("uri", r.getLink("link")); TODO: not supported yet
    assertEquals("www.oracle.com", r.getLocation().toString());
    assertEquals(MediaType.TEXT_HTML_TYPE, r.getMediaType());
    assertEquals(99, r.getLength());
    assertEquals(200, r.getStatus());
}
Also used : ClientRequestFilter(javax.ws.rs.client.ClientRequestFilter) ClientRequestContext(javax.ws.rs.client.ClientRequestContext) Response(javax.ws.rs.core.Response) Invocation(javax.ws.rs.client.Invocation) ClientResponseFilter(javax.ws.rs.client.ClientResponseFilter) WebTarget(javax.ws.rs.client.WebTarget) ClientResponseContext(javax.ws.rs.client.ClientResponseContext) Date(java.util.Date) NewCookie(javax.ws.rs.core.NewCookie) Test(org.junit.Test) JerseyTest(org.glassfish.jersey.test.JerseyTest)

Aggregations

ClientRequestContext (javax.ws.rs.client.ClientRequestContext)6 ClientResponseContext (javax.ws.rs.client.ClientResponseContext)6 ClientResponseFilter (javax.ws.rs.client.ClientResponseFilter)6 WebTarget (javax.ws.rs.client.WebTarget)5 Response (javax.ws.rs.core.Response)5 JerseyTest (org.glassfish.jersey.test.JerseyTest)5 Test (org.junit.Test)5 ProcessingException (javax.ws.rs.ProcessingException)2 Date (java.util.Date)1 ClientRequestFilter (javax.ws.rs.client.ClientRequestFilter)1 Invocation (javax.ws.rs.client.Invocation)1 NewCookie (javax.ws.rs.core.NewCookie)1