1d56b88ae161057e848e7410d1b9ce5b0b8c427fcJean-Baptiste Queru/* 2d56b88ae161057e848e7410d1b9ce5b0b8c427fcJean-Baptiste Queru * Copyright (C) 2011 The Android Open Source Project 3d56b88ae161057e848e7410d1b9ce5b0b8c427fcJean-Baptiste Queru * 4d56b88ae161057e848e7410d1b9ce5b0b8c427fcJean-Baptiste Queru * Licensed under the Apache License, Version 2.0 (the "License"); 5d56b88ae161057e848e7410d1b9ce5b0b8c427fcJean-Baptiste Queru * you may not use this file except in compliance with the License. 6d56b88ae161057e848e7410d1b9ce5b0b8c427fcJean-Baptiste Queru * You may obtain a copy of the License at 7d56b88ae161057e848e7410d1b9ce5b0b8c427fcJean-Baptiste Queru * 8d56b88ae161057e848e7410d1b9ce5b0b8c427fcJean-Baptiste Queru * http://www.apache.org/licenses/LICENSE-2.0 9d56b88ae161057e848e7410d1b9ce5b0b8c427fcJean-Baptiste Queru * 10d56b88ae161057e848e7410d1b9ce5b0b8c427fcJean-Baptiste Queru * Unless required by applicable law or agreed to in writing, software 11d56b88ae161057e848e7410d1b9ce5b0b8c427fcJean-Baptiste Queru * distributed under the License is distributed on an "AS IS" BASIS, 12d56b88ae161057e848e7410d1b9ce5b0b8c427fcJean-Baptiste Queru * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. 13d56b88ae161057e848e7410d1b9ce5b0b8c427fcJean-Baptiste Queru * See the License for the specific language governing permissions and 14d56b88ae161057e848e7410d1b9ce5b0b8c427fcJean-Baptiste Queru * limitations under the License. 15d56b88ae161057e848e7410d1b9ce5b0b8c427fcJean-Baptiste Queru */ 16d56b88ae161057e848e7410d1b9ce5b0b8c427fcJean-Baptiste Queru 17d56b88ae161057e848e7410d1b9ce5b0b8c427fcJean-Baptiste Querupackage com.android.volley.mock; 18d56b88ae161057e848e7410d1b9ce5b0b8c427fcJean-Baptiste Queru 19d56b88ae161057e848e7410d1b9ce5b0b8c427fcJean-Baptiste Queruimport org.apache.http.HttpEntity; 20d56b88ae161057e848e7410d1b9ce5b0b8c427fcJean-Baptiste Queruimport org.apache.http.HttpHost; 21d56b88ae161057e848e7410d1b9ce5b0b8c427fcJean-Baptiste Queruimport org.apache.http.HttpRequest; 22d56b88ae161057e848e7410d1b9ce5b0b8c427fcJean-Baptiste Queruimport org.apache.http.HttpResponse; 23d56b88ae161057e848e7410d1b9ce5b0b8c427fcJean-Baptiste Queruimport org.apache.http.HttpStatus; 24d56b88ae161057e848e7410d1b9ce5b0b8c427fcJean-Baptiste Queruimport org.apache.http.ProtocolVersion; 25d56b88ae161057e848e7410d1b9ce5b0b8c427fcJean-Baptiste Queruimport org.apache.http.StatusLine; 26d56b88ae161057e848e7410d1b9ce5b0b8c427fcJean-Baptiste Queruimport org.apache.http.client.HttpClient; 27d56b88ae161057e848e7410d1b9ce5b0b8c427fcJean-Baptiste Queruimport org.apache.http.client.ResponseHandler; 28d56b88ae161057e848e7410d1b9ce5b0b8c427fcJean-Baptiste Queruimport org.apache.http.client.methods.HttpUriRequest; 29d56b88ae161057e848e7410d1b9ce5b0b8c427fcJean-Baptiste Queruimport org.apache.http.conn.ClientConnectionManager; 30d56b88ae161057e848e7410d1b9ce5b0b8c427fcJean-Baptiste Queruimport org.apache.http.message.BasicHttpResponse; 31d56b88ae161057e848e7410d1b9ce5b0b8c427fcJean-Baptiste Queruimport org.apache.http.message.BasicStatusLine; 32d56b88ae161057e848e7410d1b9ce5b0b8c427fcJean-Baptiste Queruimport org.apache.http.params.HttpParams; 33d56b88ae161057e848e7410d1b9ce5b0b8c427fcJean-Baptiste Queruimport org.apache.http.protocol.HttpContext; 34d56b88ae161057e848e7410d1b9ce5b0b8c427fcJean-Baptiste Queru 35d56b88ae161057e848e7410d1b9ce5b0b8c427fcJean-Baptiste Queru 36d56b88ae161057e848e7410d1b9ce5b0b8c427fcJean-Baptiste Querupublic class MockHttpClient implements HttpClient { 37d56b88ae161057e848e7410d1b9ce5b0b8c427fcJean-Baptiste Queru private int mStatusCode = HttpStatus.SC_OK; 38d56b88ae161057e848e7410d1b9ce5b0b8c427fcJean-Baptiste Queru private HttpEntity mResponseEntity = null; 39d56b88ae161057e848e7410d1b9ce5b0b8c427fcJean-Baptiste Queru 40d56b88ae161057e848e7410d1b9ce5b0b8c427fcJean-Baptiste Queru public void setResponseData(HttpEntity entity) { 41d56b88ae161057e848e7410d1b9ce5b0b8c427fcJean-Baptiste Queru mStatusCode = HttpStatus.SC_OK; 42d56b88ae161057e848e7410d1b9ce5b0b8c427fcJean-Baptiste Queru mResponseEntity = entity; 43d56b88ae161057e848e7410d1b9ce5b0b8c427fcJean-Baptiste Queru } 44d56b88ae161057e848e7410d1b9ce5b0b8c427fcJean-Baptiste Queru 45d56b88ae161057e848e7410d1b9ce5b0b8c427fcJean-Baptiste Queru public void setErrorCode(int statusCode) { 46d56b88ae161057e848e7410d1b9ce5b0b8c427fcJean-Baptiste Queru if (statusCode == HttpStatus.SC_OK) { 47d56b88ae161057e848e7410d1b9ce5b0b8c427fcJean-Baptiste Queru throw new IllegalArgumentException("statusCode cannot be 200 for an error"); 48d56b88ae161057e848e7410d1b9ce5b0b8c427fcJean-Baptiste Queru } 49d56b88ae161057e848e7410d1b9ce5b0b8c427fcJean-Baptiste Queru mStatusCode = statusCode; 50d56b88ae161057e848e7410d1b9ce5b0b8c427fcJean-Baptiste Queru } 51d56b88ae161057e848e7410d1b9ce5b0b8c427fcJean-Baptiste Queru 52d56b88ae161057e848e7410d1b9ce5b0b8c427fcJean-Baptiste Queru public HttpUriRequest requestExecuted = null; 53d56b88ae161057e848e7410d1b9ce5b0b8c427fcJean-Baptiste Queru 54d56b88ae161057e848e7410d1b9ce5b0b8c427fcJean-Baptiste Queru // This is the only one we actually use. 55d56b88ae161057e848e7410d1b9ce5b0b8c427fcJean-Baptiste Queru @Override 56d56b88ae161057e848e7410d1b9ce5b0b8c427fcJean-Baptiste Queru public HttpResponse execute(HttpUriRequest request, HttpContext context) { 57d56b88ae161057e848e7410d1b9ce5b0b8c427fcJean-Baptiste Queru requestExecuted = request; 58d56b88ae161057e848e7410d1b9ce5b0b8c427fcJean-Baptiste Queru StatusLine statusLine = new BasicStatusLine( 59d56b88ae161057e848e7410d1b9ce5b0b8c427fcJean-Baptiste Queru new ProtocolVersion("HTTP", 1, 1), mStatusCode, ""); 60d56b88ae161057e848e7410d1b9ce5b0b8c427fcJean-Baptiste Queru HttpResponse response = new BasicHttpResponse(statusLine); 61d56b88ae161057e848e7410d1b9ce5b0b8c427fcJean-Baptiste Queru response.setEntity(mResponseEntity); 62d56b88ae161057e848e7410d1b9ce5b0b8c427fcJean-Baptiste Queru 63d56b88ae161057e848e7410d1b9ce5b0b8c427fcJean-Baptiste Queru return response; 64d56b88ae161057e848e7410d1b9ce5b0b8c427fcJean-Baptiste Queru } 65d56b88ae161057e848e7410d1b9ce5b0b8c427fcJean-Baptiste Queru 66d56b88ae161057e848e7410d1b9ce5b0b8c427fcJean-Baptiste Queru 67d56b88ae161057e848e7410d1b9ce5b0b8c427fcJean-Baptiste Queru // Unimplemented methods ahoy 68d56b88ae161057e848e7410d1b9ce5b0b8c427fcJean-Baptiste Queru 69d56b88ae161057e848e7410d1b9ce5b0b8c427fcJean-Baptiste Queru @Override 70d56b88ae161057e848e7410d1b9ce5b0b8c427fcJean-Baptiste Queru public HttpResponse execute(HttpUriRequest request) { 71d56b88ae161057e848e7410d1b9ce5b0b8c427fcJean-Baptiste Queru throw new UnsupportedOperationException(); 72d56b88ae161057e848e7410d1b9ce5b0b8c427fcJean-Baptiste Queru } 73d56b88ae161057e848e7410d1b9ce5b0b8c427fcJean-Baptiste Queru 74d56b88ae161057e848e7410d1b9ce5b0b8c427fcJean-Baptiste Queru @Override 75d56b88ae161057e848e7410d1b9ce5b0b8c427fcJean-Baptiste Queru public HttpResponse execute(HttpHost target, HttpRequest request) { 76d56b88ae161057e848e7410d1b9ce5b0b8c427fcJean-Baptiste Queru throw new UnsupportedOperationException(); 77d56b88ae161057e848e7410d1b9ce5b0b8c427fcJean-Baptiste Queru } 78d56b88ae161057e848e7410d1b9ce5b0b8c427fcJean-Baptiste Queru 79d56b88ae161057e848e7410d1b9ce5b0b8c427fcJean-Baptiste Queru @Override 80d56b88ae161057e848e7410d1b9ce5b0b8c427fcJean-Baptiste Queru public <T> T execute(HttpUriRequest arg0, ResponseHandler<? extends T> arg1) { 81d56b88ae161057e848e7410d1b9ce5b0b8c427fcJean-Baptiste Queru throw new UnsupportedOperationException(); 82d56b88ae161057e848e7410d1b9ce5b0b8c427fcJean-Baptiste Queru } 83d56b88ae161057e848e7410d1b9ce5b0b8c427fcJean-Baptiste Queru 84d56b88ae161057e848e7410d1b9ce5b0b8c427fcJean-Baptiste Queru @Override 85d56b88ae161057e848e7410d1b9ce5b0b8c427fcJean-Baptiste Queru public HttpResponse execute(HttpHost target, HttpRequest request, HttpContext context) { 86d56b88ae161057e848e7410d1b9ce5b0b8c427fcJean-Baptiste Queru throw new UnsupportedOperationException(); 87d56b88ae161057e848e7410d1b9ce5b0b8c427fcJean-Baptiste Queru } 88d56b88ae161057e848e7410d1b9ce5b0b8c427fcJean-Baptiste Queru 89d56b88ae161057e848e7410d1b9ce5b0b8c427fcJean-Baptiste Queru @Override 90d56b88ae161057e848e7410d1b9ce5b0b8c427fcJean-Baptiste Queru public <T> T execute(HttpUriRequest arg0, ResponseHandler<? extends T> arg1, HttpContext arg2) { 91d56b88ae161057e848e7410d1b9ce5b0b8c427fcJean-Baptiste Queru throw new UnsupportedOperationException(); 92d56b88ae161057e848e7410d1b9ce5b0b8c427fcJean-Baptiste Queru } 93d56b88ae161057e848e7410d1b9ce5b0b8c427fcJean-Baptiste Queru 94d56b88ae161057e848e7410d1b9ce5b0b8c427fcJean-Baptiste Queru @Override 95d56b88ae161057e848e7410d1b9ce5b0b8c427fcJean-Baptiste Queru public <T> T execute(HttpHost arg0, HttpRequest arg1, ResponseHandler<? extends T> arg2) { 96d56b88ae161057e848e7410d1b9ce5b0b8c427fcJean-Baptiste Queru throw new UnsupportedOperationException(); 97d56b88ae161057e848e7410d1b9ce5b0b8c427fcJean-Baptiste Queru } 98d56b88ae161057e848e7410d1b9ce5b0b8c427fcJean-Baptiste Queru 99d56b88ae161057e848e7410d1b9ce5b0b8c427fcJean-Baptiste Queru @Override 100d56b88ae161057e848e7410d1b9ce5b0b8c427fcJean-Baptiste Queru public <T> T execute(HttpHost arg0, HttpRequest arg1, ResponseHandler<? extends T> arg2, 101d56b88ae161057e848e7410d1b9ce5b0b8c427fcJean-Baptiste Queru HttpContext arg3) { 102d56b88ae161057e848e7410d1b9ce5b0b8c427fcJean-Baptiste Queru throw new UnsupportedOperationException(); 103d56b88ae161057e848e7410d1b9ce5b0b8c427fcJean-Baptiste Queru } 104d56b88ae161057e848e7410d1b9ce5b0b8c427fcJean-Baptiste Queru 105d56b88ae161057e848e7410d1b9ce5b0b8c427fcJean-Baptiste Queru @Override 106d56b88ae161057e848e7410d1b9ce5b0b8c427fcJean-Baptiste Queru public ClientConnectionManager getConnectionManager() { 107d56b88ae161057e848e7410d1b9ce5b0b8c427fcJean-Baptiste Queru throw new UnsupportedOperationException(); 108d56b88ae161057e848e7410d1b9ce5b0b8c427fcJean-Baptiste Queru } 109d56b88ae161057e848e7410d1b9ce5b0b8c427fcJean-Baptiste Queru 110d56b88ae161057e848e7410d1b9ce5b0b8c427fcJean-Baptiste Queru @Override 111d56b88ae161057e848e7410d1b9ce5b0b8c427fcJean-Baptiste Queru public HttpParams getParams() { 112d56b88ae161057e848e7410d1b9ce5b0b8c427fcJean-Baptiste Queru throw new UnsupportedOperationException(); 113d56b88ae161057e848e7410d1b9ce5b0b8c427fcJean-Baptiste Queru } 114d56b88ae161057e848e7410d1b9ce5b0b8c427fcJean-Baptiste Queru} 115