package org.jboss.resteasy.test; import org.jboss.resteasy.client.jaxrs.ResteasyClient; import org.jboss.resteasy.client.jaxrs.ResteasyClientBuilder; import org.jboss.resteasy.client.jaxrs.ResteasyWebTarget; import org.jboss.resteasy.client.jaxrs.internal.ClientInvocation; import org.jboss.resteasy.plugins.server.sun.http.HttpContextBuilder; import org.junit.AfterClass; import org.junit.Assert; import org.junit.BeforeClass; import org.junit.Test; import com.sun.net.httpserver.HttpServer; import javax.ws.rs.GET; import javax.ws.rs.HttpMethod; import javax.ws.rs.Path; import javax.ws.rs.Produces; import javax.ws.rs.core.GenericType; import javax.ws.rs.core.Response; import static org.jboss.resteasy.test.TestPortProvider.generateURL; import java.net.InetSocketAddress; public class HeadContentLengthTest { @Path("/") public static class Resource { @GET @Path("/test") @Produces("text/plain") public String hello() { return "hello world"; } } private static HttpServer httpServer; private static HttpContextBuilder contextBuilder; @BeforeClass public static void before() throws Exception { int port = TestPortProvider.getPort(); httpServer = HttpServer.create(new InetSocketAddress(port), 10); contextBuilder = new HttpContextBuilder(); contextBuilder.getDeployment().getActualResourceClasses().add(Resource.class); contextBuilder.bind(httpServer); httpServer.start(); } @AfterClass public static void after() throws Exception { contextBuilder.cleanup(); httpServer.stop(0); } @Test public void testBasic() throws Exception { ResteasyClient client = new ResteasyClientBuilder().build(); ResteasyWebTarget target = client.target(generateURL("/test")); String val = target.request().get(String.class); Assert.assertEquals("hello world", val); } @Test public void testHeadContentLength() throws Exception { ResteasyClient client = new ResteasyClientBuilder().build(); ResteasyWebTarget target = client.target(generateURL("/test")); Response getResponse = target.request().buildGet().invoke(); String val = ClientInvocation.extractResult(new GenericType<String>(String.class), getResponse, null); Assert.assertEquals("hello world", val); Response headResponse = target.request().build(HttpMethod.HEAD).invoke(); Assert.assertNull(headResponse.getHeaderString("Content-Length")); } }