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();
}
}