package org.jboss.resteasy.test.client.resource; import org.jboss.resteasy.core.Headers; import org.jboss.resteasy.specimpl.BuiltResponse; import org.jboss.resteasy.util.HttpResponseCodes; import org.junit.Assert; import java.io.InputStream; import java.lang.annotation.Annotation; import java.lang.reflect.Type; public class NoContentStreamingCloseTestResponse extends BuiltResponse { public static NoContentStreamingCloseTestResponse buildStreamingResponse(InputStream stream, int len) { return new NoContentStreamingCloseTestResponse(stream, headers(len)); } public static NoContentStreamingCloseTestResponse buildStreamingResponse(String contentType, InputStream stream, int len) { return new NoContentStreamingCloseTestResponse(stream, headers(contentType, len)); } private static Headers<Object> headers(int len) { return headers("application/octet-stream", len); } private static Headers<Object> headers(String contentType, int len) { Headers<Object> headers = new Headers<Object>(); headers.putSingle("Content-Type", contentType); if (len >= 0) { headers.putSingle("Content-Length", Integer.toString(len)); } return headers; } private NoContentStreamingCloseTestResponse(final InputStream stream, final Headers<Object> headers) { super(HttpResponseCodes.SC_OK, headers, stream, null); } @Override public <T> T readEntity(Class<T> type, Type genericType, Annotation[] anns) { return type.cast(getEntity()); } @Override public void close() { Assert.fail("Due to the InputStream-Entity the Response must not be closed but the Inputstream"); super.close(); } }