All Downloads are FREE. Search and download functionalities are using the official Maven repository.

org.robolectric.shadows.httpclient.TestHttpResponse Maven / Gradle / Ivy

package org.robolectric.shadows.httpclient;

import static java.nio.charset.StandardCharsets.UTF_8;

import java.io.ByteArrayInputStream;
import java.io.IOException;
import java.io.InputStream;
import java.io.OutputStream;
import java.util.ArrayList;
import java.util.Collections;
import java.util.List;
import java.util.NoSuchElementException;
import org.apache.http.Header;
import org.apache.http.HeaderIterator;
import org.apache.http.HttpEntity;
import org.apache.http.HttpVersion;
import org.apache.http.ProtocolVersion;
import org.apache.http.StatusLine;
import org.apache.http.params.BasicHttpParams;
import org.apache.http.params.HttpParams;

public class TestHttpResponse extends HttpResponseStub {

  private int statusCode;
  private byte[] responseBody;
  private TestStatusLine statusLine = new TestStatusLine();
  private TestHttpEntity httpEntity = new TestHttpEntity();
  private int openEntityContentStreamCount = 0;
  private Header[] headers = new Header[0];
  private HttpParams params = new BasicHttpParams();

  public TestHttpResponse() {
    this.statusCode = 200;
    this.responseBody = new byte[0];
  }

  public TestHttpResponse(int statusCode, String responseBody) {
    this.statusCode = statusCode;
    this.responseBody = responseBody.getBytes(UTF_8);
  }

  public TestHttpResponse(int statusCode, String responseBody, Header... headers) {
    this(statusCode, responseBody.getBytes(UTF_8), headers);
  }

  public TestHttpResponse(int statusCode, byte[] responseBody, Header... headers) {
    this.statusCode = statusCode;
    this.responseBody = responseBody.clone();
    this.headers = headers;
  }

  protected void setResponseBody(String responseBody) {
    this.responseBody = responseBody.getBytes(UTF_8);
  }

  @Override public StatusLine getStatusLine() {
    return statusLine;
  }

  @Override public HttpEntity getEntity() {
    return httpEntity;
  }

  @Override public Header[] getAllHeaders() {
    return headers;
  }

  @Override public Header getFirstHeader(String s) {
    for (Header h : headers) {
      if (s.equalsIgnoreCase(h.getName())) {
        return h;
      }
    }
    return null;
  }

  @Override public Header getLastHeader(String s) {
    for (int i = headers.length -1; i >= 0; i--) {
      if (headers[i].getName().equalsIgnoreCase(s)) {
        return headers[i];
      }
    }
    return null;
  }

  @Override public Header[] getHeaders(String s) {
    List
found = new ArrayList<>(); for (Header h : headers) { if (h.getName().equalsIgnoreCase(s)) found.add(h); } return found.toArray(new Header[found.size()]); } @Override public void addHeader(Header header) { List
temp = new ArrayList<>(); Collections.addAll(temp, headers); temp.add(header); headers = temp.toArray(new Header[temp.size()]); } @Override public void setHeader(Header newHeader) { for (int i = 0; i < headers.length; i++) { Header header = headers[i]; if (header.getName().equals(newHeader.getName())) { headers[i] = newHeader; return; } } } @Override public HeaderIterator headerIterator() { return new HeaderIterator() { int index = 0; @Override public boolean hasNext() { return index < headers.length; } @Override public Header nextHeader() { if (index >= headers.length) throw new NoSuchElementException(); return headers[index++]; } @Override public Object next() { return nextHeader(); } @Override public void remove() { throw new UnsupportedOperationException(); } }; } @Override public HeaderIterator headerIterator(final String s) { return new HeaderIterator() { int index = 0; @Override public boolean hasNext() { return nextIndex() != -1; } private int nextIndex() { for (int i = index; i




© 2015 - 2025 Weber Informatics LLC | Privacy Policy