package digitalwallet.mock; import org.apache.http.*; import org.apache.http.message.BasicHeader; import org.apache.http.message.HeaderGroup; import org.apache.http.params.BasicHttpParams; import org.apache.http.params.HttpParams; import java.io.BufferedReader; import java.io.IOException; import java.io.InputStream; import java.io.InputStreamReader; import java.util.*; public class MockHttpResponse implements HttpResponse { private MockStatusLine statusLine; private MockEntity entity; private Locale locale = Locale.ENGLISH; private HeaderGroup headers; private HttpParams params; public MockHttpResponse() { statusLine = new MockStatusLine(); entity = new MockEntity(); headers = new HeaderGroup(); } public MockHttpResponse(final String body) { statusLine = new MockStatusLine(); entity = new MockEntity(body); headers = new HeaderGroup(); } @Override public StatusLine getStatusLine() { return statusLine; } @Override public void setStatusLine(final StatusLine statusLine) { this.statusLine = new MockStatusLine(statusLine.getProtocolVersion(), statusLine.getReasonPhrase(), statusLine.getStatusCode()); } @Override public void setStatusLine(final ProtocolVersion protocolVersion, int i) { this.statusLine = new MockStatusLine(protocolVersion, i); } @Override public void setStatusLine(final ProtocolVersion protocolVersion, int i, final String s) { this.statusLine = new MockStatusLine(protocolVersion, s, i); } @Override public void setStatusCode(int i) throws IllegalStateException { this.statusLine.setStatusCode(i); } @Override public void setReasonPhrase(final String s) throws IllegalStateException { this.statusLine.setReasonPhrase(s); } @Override public HttpEntity getEntity() { return entity; } @Override public void setEntity(final HttpEntity httpEntity) { // do we want to implement this? if (httpEntity != null) { try { entity = new MockEntity(httpEntity.getContent()); } catch (IOException e) { e.printStackTrace(); entity = new MockEntity(); } } else { throw new IllegalStateException(); } } @Override public Locale getLocale() { return locale; } @Override public void setLocale(final Locale locale) { this.locale = locale; } @Override public ProtocolVersion getProtocolVersion() { return statusLine.getProtocolVersion(); } @Override public boolean containsHeader(final String s) { return headers.containsHeader(s); } @Override public Header[] getHeaders(final String s) { return headers.getHeaders(s); } @Override public Header getFirstHeader(final String s) { return headers.getFirstHeader(s); } @Override public Header getLastHeader(final String s) { return headers.getLastHeader(s); } @Override public Header[] getAllHeaders() { return headers.getAllHeaders(); } @Override public void addHeader(final Header header) { headers.addHeader(header); } @Override public void addHeader(final String name, final String value) { addHeader(new BasicHeader(name, value)); } @Override public void setHeader(final Header header) { headers.updateHeader(header); } @Override public void setHeader(final String name, final String value) { if (name != null) { headers.updateHeader(new BasicHeader(name, value)); } else { throw new IllegalArgumentException("Header name may not be null"); } } @Override public void setHeaders(final Header[] headers) { this.headers.setHeaders(headers); } @Override public void removeHeader(final Header header) { this.headers.removeHeader(header); } @Override public void removeHeaders(final String name) { if (name != null) { for (HeaderIterator i = this.headers.iterator(); i.hasNext(); ) { Header header = i.nextHeader(); if (name.equalsIgnoreCase(header.getName())) { i.remove(); } } } } @Override public HeaderIterator headerIterator() { return this.headers.iterator(); } @Override public HeaderIterator headerIterator(String name) { return this.headers.iterator(name); } @Override public HttpParams getParams() { if (params == null) { params = new BasicHttpParams(); } return params; } @Override public void setParams(final HttpParams params) { if (params == null) { throw new IllegalArgumentException("HTTP parameters may not be null"); } this.params = params; } }