12cdde11355e7c249e83a8b7aaabae5977bbc3e49Phil Goodwinpackage com.xtremelabs.robolectric.tester.org.apache.http; 2bc2947bf7cd4f8d61d7e456277e2ca6a2b1c2dc0Christian Williams 3bc2947bf7cd4f8d61d7e456277e2ca6a2b1c2dc0Christian Williamsimport com.xtremelabs.robolectric.shadows.StatusLineStub; 4ba2ab5b2c11e72a692c624cd0ac2da8ec479c98dRick Kawalaimport org.apache.http.Header; 5ba2ab5b2c11e72a692c624cd0ac2da8ec479c98dRick Kawalaimport org.apache.http.HeaderIterator; 6ba2ab5b2c11e72a692c624cd0ac2da8ec479c98dRick Kawalaimport org.apache.http.HttpEntity; 7ba2ab5b2c11e72a692c624cd0ac2da8ec479c98dRick Kawalaimport org.apache.http.HttpVersion; 8ba2ab5b2c11e72a692c624cd0ac2da8ec479c98dRick Kawalaimport org.apache.http.ProtocolVersion; 9ba2ab5b2c11e72a692c624cd0ac2da8ec479c98dRick Kawalaimport org.apache.http.StatusLine; 1088748bc70223e557208926eca76033a38dcd044bLenny Turetsky & Tim Labeeuwimport org.apache.http.params.BasicHttpParams; 1188748bc70223e557208926eca76033a38dcd044bLenny Turetsky & Tim Labeeuwimport org.apache.http.params.HttpParams; 12bc2947bf7cd4f8d61d7e456277e2ca6a2b1c2dc0Christian Williams 13bc2947bf7cd4f8d61d7e456277e2ca6a2b1c2dc0Christian Williamsimport java.io.ByteArrayInputStream; 14bc2947bf7cd4f8d61d7e456277e2ca6a2b1c2dc0Christian Williamsimport java.io.IOException; 15bc2947bf7cd4f8d61d7e456277e2ca6a2b1c2dc0Christian Williamsimport java.io.InputStream; 16bc2947bf7cd4f8d61d7e456277e2ca6a2b1c2dc0Christian Williamsimport java.io.OutputStream; 1750462c4dff2d5f6aa1f5f9683935f5f0270c8a2dJan Berkelimport java.util.ArrayList; 18ba2ab5b2c11e72a692c624cd0ac2da8ec479c98dRick Kawalaimport java.util.Collections; 1950462c4dff2d5f6aa1f5f9683935f5f0270c8a2dJan Berkelimport java.util.List; 2050462c4dff2d5f6aa1f5f9683935f5f0270c8a2dJan Berkelimport java.util.NoSuchElementException; 21bc2947bf7cd4f8d61d7e456277e2ca6a2b1c2dc0Christian Williams 22bc2947bf7cd4f8d61d7e456277e2ca6a2b1c2dc0Christian Williamspublic class TestHttpResponse extends HttpResponseStub { 23bc2947bf7cd4f8d61d7e456277e2ca6a2b1c2dc0Christian Williams 24bc2947bf7cd4f8d61d7e456277e2ca6a2b1c2dc0Christian Williams private int statusCode; 25863bb025cb3dbe9895f69d0f8fccff051de379daLenny Turetsky & Rick Kawala private byte[] responseBody; 26bc2947bf7cd4f8d61d7e456277e2ca6a2b1c2dc0Christian Williams private TestStatusLine statusLine = new TestStatusLine(); 27bc2947bf7cd4f8d61d7e456277e2ca6a2b1c2dc0Christian Williams private TestHttpEntity httpEntity = new TestHttpEntity(); 289088d97a59b3864cc5f0fbe87dc72568619e27ebRyan Richard private int openEntityContentStreamCount = 0; 2939f81d70bfc70857886cfffbd91aa2ea79322ba6Ryan Richard private Header[] headers = new Header[0]; 3088748bc70223e557208926eca76033a38dcd044bLenny Turetsky & Tim Labeeuw private HttpParams params = new BasicHttpParams(); 31bc2947bf7cd4f8d61d7e456277e2ca6a2b1c2dc0Christian Williams 320b54ac63d199069248799dd2a3b3aceeabcff267Ryan Richard public TestHttpResponse() { 330b54ac63d199069248799dd2a3b3aceeabcff267Ryan Richard this.statusCode = 200; 34863bb025cb3dbe9895f69d0f8fccff051de379daLenny Turetsky & Rick Kawala this.responseBody = new byte[0]; 350b54ac63d199069248799dd2a3b3aceeabcff267Ryan Richard } 360b54ac63d199069248799dd2a3b3aceeabcff267Ryan Richard 37bc2947bf7cd4f8d61d7e456277e2ca6a2b1c2dc0Christian Williams public TestHttpResponse(int statusCode, String responseBody) { 38bc2947bf7cd4f8d61d7e456277e2ca6a2b1c2dc0Christian Williams this.statusCode = statusCode; 39863bb025cb3dbe9895f69d0f8fccff051de379daLenny Turetsky & Rick Kawala this.responseBody = responseBody.getBytes(); 40bc2947bf7cd4f8d61d7e456277e2ca6a2b1c2dc0Christian Williams } 41bc2947bf7cd4f8d61d7e456277e2ca6a2b1c2dc0Christian Williams 4250462c4dff2d5f6aa1f5f9683935f5f0270c8a2dJan Berkel public TestHttpResponse(int statusCode, String responseBody, Header... headers) { 43863bb025cb3dbe9895f69d0f8fccff051de379daLenny Turetsky & Rick Kawala this(statusCode, responseBody.getBytes(), headers); 44863bb025cb3dbe9895f69d0f8fccff051de379daLenny Turetsky & Rick Kawala } 45863bb025cb3dbe9895f69d0f8fccff051de379daLenny Turetsky & Rick Kawala 46863bb025cb3dbe9895f69d0f8fccff051de379daLenny Turetsky & Rick Kawala public TestHttpResponse(int statusCode, byte[] responseBody, Header... headers) { 47863bb025cb3dbe9895f69d0f8fccff051de379daLenny Turetsky & Rick Kawala this.statusCode = statusCode; 48863bb025cb3dbe9895f69d0f8fccff051de379daLenny Turetsky & Rick Kawala this.responseBody = responseBody.clone(); 49f61111cc68263f33e6fe1d9b29de305e5004e834Mike Grafton this.headers = headers; 506f34840c49a26f54f62ead83509e3f64bed7e0cfNeal Sanche } 516f34840c49a26f54f62ead83509e3f64bed7e0cfNeal Sanche 520b54ac63d199069248799dd2a3b3aceeabcff267Ryan Richard protected void setResponseBody(String responseBody) { 53863bb025cb3dbe9895f69d0f8fccff051de379daLenny Turetsky & Rick Kawala this.responseBody = responseBody.getBytes(); 540b54ac63d199069248799dd2a3b3aceeabcff267Ryan Richard } 550b54ac63d199069248799dd2a3b3aceeabcff267Ryan Richard 56bc2947bf7cd4f8d61d7e456277e2ca6a2b1c2dc0Christian Williams @Override public StatusLine getStatusLine() { 57bc2947bf7cd4f8d61d7e456277e2ca6a2b1c2dc0Christian Williams return statusLine; 58bc2947bf7cd4f8d61d7e456277e2ca6a2b1c2dc0Christian Williams } 59bc2947bf7cd4f8d61d7e456277e2ca6a2b1c2dc0Christian Williams 60bc2947bf7cd4f8d61d7e456277e2ca6a2b1c2dc0Christian Williams @Override public HttpEntity getEntity() { 61bc2947bf7cd4f8d61d7e456277e2ca6a2b1c2dc0Christian Williams return httpEntity; 62bc2947bf7cd4f8d61d7e456277e2ca6a2b1c2dc0Christian Williams } 63bc2947bf7cd4f8d61d7e456277e2ca6a2b1c2dc0Christian Williams 6440b5218d7ef608099101cae10739e95d8841ac5bunknown @Override public Header[] getAllHeaders() { 65f61111cc68263f33e6fe1d9b29de305e5004e834Mike Grafton return headers; 6640b5218d7ef608099101cae10739e95d8841ac5bunknown } 6740b5218d7ef608099101cae10739e95d8841ac5bunknown 6850462c4dff2d5f6aa1f5f9683935f5f0270c8a2dJan Berkel @Override public Header getFirstHeader(String s) { 6950462c4dff2d5f6aa1f5f9683935f5f0270c8a2dJan Berkel for (Header h : headers) { 7050462c4dff2d5f6aa1f5f9683935f5f0270c8a2dJan Berkel if (s.equalsIgnoreCase(h.getName())) { 7150462c4dff2d5f6aa1f5f9683935f5f0270c8a2dJan Berkel return h; 7250462c4dff2d5f6aa1f5f9683935f5f0270c8a2dJan Berkel } 7350462c4dff2d5f6aa1f5f9683935f5f0270c8a2dJan Berkel } 7450462c4dff2d5f6aa1f5f9683935f5f0270c8a2dJan Berkel return null; 7550462c4dff2d5f6aa1f5f9683935f5f0270c8a2dJan Berkel } 7650462c4dff2d5f6aa1f5f9683935f5f0270c8a2dJan Berkel 7750462c4dff2d5f6aa1f5f9683935f5f0270c8a2dJan Berkel @Override public Header getLastHeader(String s) { 7850462c4dff2d5f6aa1f5f9683935f5f0270c8a2dJan Berkel for (int i = headers.length -1; i >= 0; i--) { 7950462c4dff2d5f6aa1f5f9683935f5f0270c8a2dJan Berkel if (headers[i].getName().equalsIgnoreCase(s)) { 8050462c4dff2d5f6aa1f5f9683935f5f0270c8a2dJan Berkel return headers[i]; 8150462c4dff2d5f6aa1f5f9683935f5f0270c8a2dJan Berkel } 8250462c4dff2d5f6aa1f5f9683935f5f0270c8a2dJan Berkel } 8350462c4dff2d5f6aa1f5f9683935f5f0270c8a2dJan Berkel return null; 8450462c4dff2d5f6aa1f5f9683935f5f0270c8a2dJan Berkel } 8550462c4dff2d5f6aa1f5f9683935f5f0270c8a2dJan Berkel 8650462c4dff2d5f6aa1f5f9683935f5f0270c8a2dJan Berkel @Override public Header[] getHeaders(String s) { 8750462c4dff2d5f6aa1f5f9683935f5f0270c8a2dJan Berkel List<Header> found = new ArrayList<Header>(); 8850462c4dff2d5f6aa1f5f9683935f5f0270c8a2dJan Berkel for (Header h : headers) { 8950462c4dff2d5f6aa1f5f9683935f5f0270c8a2dJan Berkel if (h.getName().equalsIgnoreCase(s)) found.add(h); 9050462c4dff2d5f6aa1f5f9683935f5f0270c8a2dJan Berkel } 9150462c4dff2d5f6aa1f5f9683935f5f0270c8a2dJan Berkel return found.toArray(new Header[found.size()]); 9250462c4dff2d5f6aa1f5f9683935f5f0270c8a2dJan Berkel } 9350462c4dff2d5f6aa1f5f9683935f5f0270c8a2dJan Berkel 94ba2ab5b2c11e72a692c624cd0ac2da8ec479c98dRick Kawala @Override 95ba2ab5b2c11e72a692c624cd0ac2da8ec479c98dRick Kawala public void addHeader(Header header) { 96ba2ab5b2c11e72a692c624cd0ac2da8ec479c98dRick Kawala List<Header> temp = new ArrayList<Header>(); 97ba2ab5b2c11e72a692c624cd0ac2da8ec479c98dRick Kawala Collections.addAll(temp, headers); 98ba2ab5b2c11e72a692c624cd0ac2da8ec479c98dRick Kawala temp.add(header); 99ba2ab5b2c11e72a692c624cd0ac2da8ec479c98dRick Kawala headers = temp.toArray(new Header[temp.size()]); 100ba2ab5b2c11e72a692c624cd0ac2da8ec479c98dRick Kawala } 101ba2ab5b2c11e72a692c624cd0ac2da8ec479c98dRick Kawala 102ba2ab5b2c11e72a692c624cd0ac2da8ec479c98dRick Kawala @Override 103ba2ab5b2c11e72a692c624cd0ac2da8ec479c98dRick Kawala public void setHeader(Header newHeader) { 104ba2ab5b2c11e72a692c624cd0ac2da8ec479c98dRick Kawala for (int i = 0; i < headers.length; i++) { 105ba2ab5b2c11e72a692c624cd0ac2da8ec479c98dRick Kawala Header header = headers[i]; 106ba2ab5b2c11e72a692c624cd0ac2da8ec479c98dRick Kawala if (header.getName().equals(newHeader.getName())) { 107ba2ab5b2c11e72a692c624cd0ac2da8ec479c98dRick Kawala headers[i] = newHeader; 108ba2ab5b2c11e72a692c624cd0ac2da8ec479c98dRick Kawala return; 109ba2ab5b2c11e72a692c624cd0ac2da8ec479c98dRick Kawala } 110ba2ab5b2c11e72a692c624cd0ac2da8ec479c98dRick Kawala } 111ba2ab5b2c11e72a692c624cd0ac2da8ec479c98dRick Kawala } 112ba2ab5b2c11e72a692c624cd0ac2da8ec479c98dRick Kawala 11350462c4dff2d5f6aa1f5f9683935f5f0270c8a2dJan Berkel @Override public HeaderIterator headerIterator() { 11450462c4dff2d5f6aa1f5f9683935f5f0270c8a2dJan Berkel return new HeaderIterator() { 11550462c4dff2d5f6aa1f5f9683935f5f0270c8a2dJan Berkel int index = 0; 11650462c4dff2d5f6aa1f5f9683935f5f0270c8a2dJan Berkel 11750462c4dff2d5f6aa1f5f9683935f5f0270c8a2dJan Berkel @Override public boolean hasNext() { 11850462c4dff2d5f6aa1f5f9683935f5f0270c8a2dJan Berkel return index < headers.length; 11950462c4dff2d5f6aa1f5f9683935f5f0270c8a2dJan Berkel } 12050462c4dff2d5f6aa1f5f9683935f5f0270c8a2dJan Berkel 12150462c4dff2d5f6aa1f5f9683935f5f0270c8a2dJan Berkel @Override public Header nextHeader() { 12250462c4dff2d5f6aa1f5f9683935f5f0270c8a2dJan Berkel if (index >= headers.length) throw new NoSuchElementException(); 12350462c4dff2d5f6aa1f5f9683935f5f0270c8a2dJan Berkel return headers[index++]; 12450462c4dff2d5f6aa1f5f9683935f5f0270c8a2dJan Berkel } 12550462c4dff2d5f6aa1f5f9683935f5f0270c8a2dJan Berkel 12650462c4dff2d5f6aa1f5f9683935f5f0270c8a2dJan Berkel @Override public Object next() { 12750462c4dff2d5f6aa1f5f9683935f5f0270c8a2dJan Berkel return nextHeader(); 12850462c4dff2d5f6aa1f5f9683935f5f0270c8a2dJan Berkel } 12950462c4dff2d5f6aa1f5f9683935f5f0270c8a2dJan Berkel 13050462c4dff2d5f6aa1f5f9683935f5f0270c8a2dJan Berkel @Override public void remove() { 13150462c4dff2d5f6aa1f5f9683935f5f0270c8a2dJan Berkel throw new UnsupportedOperationException(); 13250462c4dff2d5f6aa1f5f9683935f5f0270c8a2dJan Berkel } 13350462c4dff2d5f6aa1f5f9683935f5f0270c8a2dJan Berkel }; 13450462c4dff2d5f6aa1f5f9683935f5f0270c8a2dJan Berkel } 13550462c4dff2d5f6aa1f5f9683935f5f0270c8a2dJan Berkel 13650462c4dff2d5f6aa1f5f9683935f5f0270c8a2dJan Berkel 13750462c4dff2d5f6aa1f5f9683935f5f0270c8a2dJan Berkel @Override public HeaderIterator headerIterator(final String s) { 13850462c4dff2d5f6aa1f5f9683935f5f0270c8a2dJan Berkel return new HeaderIterator() { 13950462c4dff2d5f6aa1f5f9683935f5f0270c8a2dJan Berkel int index = 0; 14050462c4dff2d5f6aa1f5f9683935f5f0270c8a2dJan Berkel 14150462c4dff2d5f6aa1f5f9683935f5f0270c8a2dJan Berkel @Override public boolean hasNext() { 14250462c4dff2d5f6aa1f5f9683935f5f0270c8a2dJan Berkel return nextIndex() != -1; 14350462c4dff2d5f6aa1f5f9683935f5f0270c8a2dJan Berkel } 14450462c4dff2d5f6aa1f5f9683935f5f0270c8a2dJan Berkel 14550462c4dff2d5f6aa1f5f9683935f5f0270c8a2dJan Berkel private int nextIndex() { 14650462c4dff2d5f6aa1f5f9683935f5f0270c8a2dJan Berkel for (int i = index; i<headers.length; i++) { 14750462c4dff2d5f6aa1f5f9683935f5f0270c8a2dJan Berkel if (headers[i].getName().equalsIgnoreCase(s)) { 14850462c4dff2d5f6aa1f5f9683935f5f0270c8a2dJan Berkel return i; 14950462c4dff2d5f6aa1f5f9683935f5f0270c8a2dJan Berkel } 15050462c4dff2d5f6aa1f5f9683935f5f0270c8a2dJan Berkel } 15150462c4dff2d5f6aa1f5f9683935f5f0270c8a2dJan Berkel return -1; 15250462c4dff2d5f6aa1f5f9683935f5f0270c8a2dJan Berkel } 15350462c4dff2d5f6aa1f5f9683935f5f0270c8a2dJan Berkel 15450462c4dff2d5f6aa1f5f9683935f5f0270c8a2dJan Berkel @Override public Header nextHeader() { 15550462c4dff2d5f6aa1f5f9683935f5f0270c8a2dJan Berkel index = nextIndex(); 15650462c4dff2d5f6aa1f5f9683935f5f0270c8a2dJan Berkel if (index == -1) throw new NoSuchElementException(); 15750462c4dff2d5f6aa1f5f9683935f5f0270c8a2dJan Berkel return headers[index++]; 15850462c4dff2d5f6aa1f5f9683935f5f0270c8a2dJan Berkel } 15950462c4dff2d5f6aa1f5f9683935f5f0270c8a2dJan Berkel 16050462c4dff2d5f6aa1f5f9683935f5f0270c8a2dJan Berkel @Override public Object next() { 16150462c4dff2d5f6aa1f5f9683935f5f0270c8a2dJan Berkel return nextHeader(); 16250462c4dff2d5f6aa1f5f9683935f5f0270c8a2dJan Berkel } 16350462c4dff2d5f6aa1f5f9683935f5f0270c8a2dJan Berkel 16450462c4dff2d5f6aa1f5f9683935f5f0270c8a2dJan Berkel @Override public void remove() { 16550462c4dff2d5f6aa1f5f9683935f5f0270c8a2dJan Berkel throw new UnsupportedOperationException(); 16650462c4dff2d5f6aa1f5f9683935f5f0270c8a2dJan Berkel } 16750462c4dff2d5f6aa1f5f9683935f5f0270c8a2dJan Berkel }; 16850462c4dff2d5f6aa1f5f9683935f5f0270c8a2dJan Berkel } 16950462c4dff2d5f6aa1f5f9683935f5f0270c8a2dJan Berkel 17050462c4dff2d5f6aa1f5f9683935f5f0270c8a2dJan Berkel @Override public boolean containsHeader(String s) { 17150462c4dff2d5f6aa1f5f9683935f5f0270c8a2dJan Berkel return getFirstHeader(s) != null; 17250462c4dff2d5f6aa1f5f9683935f5f0270c8a2dJan Berkel 17350462c4dff2d5f6aa1f5f9683935f5f0270c8a2dJan Berkel } 17450462c4dff2d5f6aa1f5f9683935f5f0270c8a2dJan Berkel 17588748bc70223e557208926eca76033a38dcd044bLenny Turetsky & Tim Labeeuw @Override public HttpParams getParams() { 17688748bc70223e557208926eca76033a38dcd044bLenny Turetsky & Tim Labeeuw return params; 17788748bc70223e557208926eca76033a38dcd044bLenny Turetsky & Tim Labeeuw } 17888748bc70223e557208926eca76033a38dcd044bLenny Turetsky & Tim Labeeuw 17988748bc70223e557208926eca76033a38dcd044bLenny Turetsky & Tim Labeeuw @Override public void setParams(HttpParams httpParams) { 18088748bc70223e557208926eca76033a38dcd044bLenny Turetsky & Tim Labeeuw this.params = httpParams; 18188748bc70223e557208926eca76033a38dcd044bLenny Turetsky & Tim Labeeuw } 18288748bc70223e557208926eca76033a38dcd044bLenny Turetsky & Tim Labeeuw 1839088d97a59b3864cc5f0fbe87dc72568619e27ebRyan Richard public boolean entityContentStreamsHaveBeenClosed() { 1849088d97a59b3864cc5f0fbe87dc72568619e27ebRyan Richard return openEntityContentStreamCount == 0; 1859088d97a59b3864cc5f0fbe87dc72568619e27ebRyan Richard } 1865f52066979dd3a3eb6a0df2cd360611c50fb31ecRyan Richard 187bc2947bf7cd4f8d61d7e456277e2ca6a2b1c2dc0Christian Williams public class TestHttpEntity extends HttpEntityStub { 1889088d97a59b3864cc5f0fbe87dc72568619e27ebRyan Richard 1899088d97a59b3864cc5f0fbe87dc72568619e27ebRyan Richard private ByteArrayInputStream inputStream; 1909088d97a59b3864cc5f0fbe87dc72568619e27ebRyan Richard 191bc2947bf7cd4f8d61d7e456277e2ca6a2b1c2dc0Christian Williams @Override public long getContentLength() { 192863bb025cb3dbe9895f69d0f8fccff051de379daLenny Turetsky & Rick Kawala return responseBody.length; 193bc2947bf7cd4f8d61d7e456277e2ca6a2b1c2dc0Christian Williams } 1946f34840c49a26f54f62ead83509e3f64bed7e0cfNeal Sanche 1956f34840c49a26f54f62ead83509e3f64bed7e0cfNeal Sanche @Override public Header getContentType() { 19639f81d70bfc70857886cfffbd91aa2ea79322ba6Ryan Richard for (Header header : headers) { 197f61111cc68263f33e6fe1d9b29de305e5004e834Mike Grafton if (header.getName().equals("Content-Type")) { 198f61111cc68263f33e6fe1d9b29de305e5004e834Mike Grafton return header; 199f61111cc68263f33e6fe1d9b29de305e5004e834Mike Grafton } 200f61111cc68263f33e6fe1d9b29de305e5004e834Mike Grafton } 201f61111cc68263f33e6fe1d9b29de305e5004e834Mike Grafton return null; 2026f34840c49a26f54f62ead83509e3f64bed7e0cfNeal Sanche } 203a0a88eccbbff059f92bd4ab894ba8e6e9e515be7Neal Sanche 204a0a88eccbbff059f92bd4ab894ba8e6e9e515be7Neal Sanche @Override public boolean isStreaming() { 205a0a88eccbbff059f92bd4ab894ba8e6e9e515be7Neal Sanche return true; 206a0a88eccbbff059f92bd4ab894ba8e6e9e515be7Neal Sanche } 207a0a88eccbbff059f92bd4ab894ba8e6e9e515be7Neal Sanche 208a0a88eccbbff059f92bd4ab894ba8e6e9e515be7Neal Sanche @Override public boolean isRepeatable() { 209a0a88eccbbff059f92bd4ab894ba8e6e9e515be7Neal Sanche return true; 210a0a88eccbbff059f92bd4ab894ba8e6e9e515be7Neal Sanche } 211bc2947bf7cd4f8d61d7e456277e2ca6a2b1c2dc0Christian Williams 212bc2947bf7cd4f8d61d7e456277e2ca6a2b1c2dc0Christian Williams @Override public InputStream getContent() throws IOException, IllegalStateException { 2139088d97a59b3864cc5f0fbe87dc72568619e27ebRyan Richard openEntityContentStreamCount++; 214863bb025cb3dbe9895f69d0f8fccff051de379daLenny Turetsky & Rick Kawala inputStream = new ByteArrayInputStream(responseBody) { 2159088d97a59b3864cc5f0fbe87dc72568619e27ebRyan Richard @Override 2169088d97a59b3864cc5f0fbe87dc72568619e27ebRyan Richard public void close() throws IOException { 2179088d97a59b3864cc5f0fbe87dc72568619e27ebRyan Richard openEntityContentStreamCount--; 2189088d97a59b3864cc5f0fbe87dc72568619e27ebRyan Richard super.close(); 2199088d97a59b3864cc5f0fbe87dc72568619e27ebRyan Richard } 2209088d97a59b3864cc5f0fbe87dc72568619e27ebRyan Richard }; 2219088d97a59b3864cc5f0fbe87dc72568619e27ebRyan Richard return inputStream; 222bc2947bf7cd4f8d61d7e456277e2ca6a2b1c2dc0Christian Williams } 223bc2947bf7cd4f8d61d7e456277e2ca6a2b1c2dc0Christian Williams 224bc2947bf7cd4f8d61d7e456277e2ca6a2b1c2dc0Christian Williams @Override public void writeTo(OutputStream outputStream) throws IOException { 225863bb025cb3dbe9895f69d0f8fccff051de379daLenny Turetsky & Rick Kawala outputStream.write(responseBody); 226bc2947bf7cd4f8d61d7e456277e2ca6a2b1c2dc0Christian Williams } 227bc2947bf7cd4f8d61d7e456277e2ca6a2b1c2dc0Christian Williams 228bc2947bf7cd4f8d61d7e456277e2ca6a2b1c2dc0Christian Williams @Override public void consumeContent() throws IOException { 229bc2947bf7cd4f8d61d7e456277e2ca6a2b1c2dc0Christian Williams } 230bc2947bf7cd4f8d61d7e456277e2ca6a2b1c2dc0Christian Williams } 231bc2947bf7cd4f8d61d7e456277e2ca6a2b1c2dc0Christian Williams 232bc2947bf7cd4f8d61d7e456277e2ca6a2b1c2dc0Christian Williams public class TestStatusLine extends StatusLineStub { 233bc2947bf7cd4f8d61d7e456277e2ca6a2b1c2dc0Christian Williams @Override public ProtocolVersion getProtocolVersion() { 234bc2947bf7cd4f8d61d7e456277e2ca6a2b1c2dc0Christian Williams return new HttpVersion(1, 0); 235bc2947bf7cd4f8d61d7e456277e2ca6a2b1c2dc0Christian Williams } 236bc2947bf7cd4f8d61d7e456277e2ca6a2b1c2dc0Christian Williams 237bc2947bf7cd4f8d61d7e456277e2ca6a2b1c2dc0Christian Williams @Override public int getStatusCode() { 238bc2947bf7cd4f8d61d7e456277e2ca6a2b1c2dc0Christian Williams return statusCode; 239bc2947bf7cd4f8d61d7e456277e2ca6a2b1c2dc0Christian Williams } 240bc2947bf7cd4f8d61d7e456277e2ca6a2b1c2dc0Christian Williams 241bc2947bf7cd4f8d61d7e456277e2ca6a2b1c2dc0Christian Williams @Override public String getReasonPhrase() { 242bc2947bf7cd4f8d61d7e456277e2ca6a2b1c2dc0Christian Williams return "HTTP status " + statusCode; 243bc2947bf7cd4f8d61d7e456277e2ca6a2b1c2dc0Christian Williams } 2448238e7b6e6296e967dfb2d917508d852d86c3048Jan Berkel 2458238e7b6e6296e967dfb2d917508d852d86c3048Jan Berkel @Override public String toString() { 2468238e7b6e6296e967dfb2d917508d852d86c3048Jan Berkel return "TestStatusLine[" + getReasonPhrase() + "]"; 2478238e7b6e6296e967dfb2d917508d852d86c3048Jan Berkel } 248bc2947bf7cd4f8d61d7e456277e2ca6a2b1c2dc0Christian Williams } 249bc2947bf7cd4f8d61d7e456277e2ca6a2b1c2dc0Christian Williams} 250