13713094c56d25e25df2a508dbee4aea869ffdea1Ficus Kirkpatrick/*
23713094c56d25e25df2a508dbee4aea869ffdea1Ficus Kirkpatrick * Copyright (C) 2011 The Android Open Source Project
33713094c56d25e25df2a508dbee4aea869ffdea1Ficus Kirkpatrick *
43713094c56d25e25df2a508dbee4aea869ffdea1Ficus Kirkpatrick * Licensed under the Apache License, Version 2.0 (the "License");
53713094c56d25e25df2a508dbee4aea869ffdea1Ficus Kirkpatrick * you may not use this file except in compliance with the License.
63713094c56d25e25df2a508dbee4aea869ffdea1Ficus Kirkpatrick * You may obtain a copy of the License at
73713094c56d25e25df2a508dbee4aea869ffdea1Ficus Kirkpatrick *
83713094c56d25e25df2a508dbee4aea869ffdea1Ficus Kirkpatrick *      http://www.apache.org/licenses/LICENSE-2.0
93713094c56d25e25df2a508dbee4aea869ffdea1Ficus Kirkpatrick *
103713094c56d25e25df2a508dbee4aea869ffdea1Ficus Kirkpatrick * Unless required by applicable law or agreed to in writing, software
113713094c56d25e25df2a508dbee4aea869ffdea1Ficus Kirkpatrick * distributed under the License is distributed on an "AS IS" BASIS,
123713094c56d25e25df2a508dbee4aea869ffdea1Ficus Kirkpatrick * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
133713094c56d25e25df2a508dbee4aea869ffdea1Ficus Kirkpatrick * See the License for the specific language governing permissions and
143713094c56d25e25df2a508dbee4aea869ffdea1Ficus Kirkpatrick * limitations under the License.
153713094c56d25e25df2a508dbee4aea869ffdea1Ficus Kirkpatrick */
163713094c56d25e25df2a508dbee4aea869ffdea1Ficus Kirkpatrick
173713094c56d25e25df2a508dbee4aea869ffdea1Ficus Kirkpatrickpackage com.android.volley.mock;
183713094c56d25e25df2a508dbee4aea869ffdea1Ficus Kirkpatrick
193713094c56d25e25df2a508dbee4aea869ffdea1Ficus Kirkpatrickimport org.apache.http.HttpEntity;
203713094c56d25e25df2a508dbee4aea869ffdea1Ficus Kirkpatrickimport org.apache.http.HttpHost;
213713094c56d25e25df2a508dbee4aea869ffdea1Ficus Kirkpatrickimport org.apache.http.HttpRequest;
223713094c56d25e25df2a508dbee4aea869ffdea1Ficus Kirkpatrickimport org.apache.http.HttpResponse;
233713094c56d25e25df2a508dbee4aea869ffdea1Ficus Kirkpatrickimport org.apache.http.HttpStatus;
243713094c56d25e25df2a508dbee4aea869ffdea1Ficus Kirkpatrickimport org.apache.http.ProtocolVersion;
253713094c56d25e25df2a508dbee4aea869ffdea1Ficus Kirkpatrickimport org.apache.http.StatusLine;
263713094c56d25e25df2a508dbee4aea869ffdea1Ficus Kirkpatrickimport org.apache.http.client.HttpClient;
273713094c56d25e25df2a508dbee4aea869ffdea1Ficus Kirkpatrickimport org.apache.http.client.ResponseHandler;
283713094c56d25e25df2a508dbee4aea869ffdea1Ficus Kirkpatrickimport org.apache.http.client.methods.HttpUriRequest;
293713094c56d25e25df2a508dbee4aea869ffdea1Ficus Kirkpatrickimport org.apache.http.conn.ClientConnectionManager;
303713094c56d25e25df2a508dbee4aea869ffdea1Ficus Kirkpatrickimport org.apache.http.message.BasicHttpResponse;
313713094c56d25e25df2a508dbee4aea869ffdea1Ficus Kirkpatrickimport org.apache.http.message.BasicStatusLine;
323713094c56d25e25df2a508dbee4aea869ffdea1Ficus Kirkpatrickimport org.apache.http.params.HttpParams;
333713094c56d25e25df2a508dbee4aea869ffdea1Ficus Kirkpatrickimport org.apache.http.protocol.HttpContext;
343713094c56d25e25df2a508dbee4aea869ffdea1Ficus Kirkpatrick
353713094c56d25e25df2a508dbee4aea869ffdea1Ficus Kirkpatrick
363713094c56d25e25df2a508dbee4aea869ffdea1Ficus Kirkpatrickpublic class MockHttpClient implements HttpClient {
373713094c56d25e25df2a508dbee4aea869ffdea1Ficus Kirkpatrick    private int mStatusCode = HttpStatus.SC_OK;
383713094c56d25e25df2a508dbee4aea869ffdea1Ficus Kirkpatrick    private HttpEntity mResponseEntity = null;
393713094c56d25e25df2a508dbee4aea869ffdea1Ficus Kirkpatrick
403713094c56d25e25df2a508dbee4aea869ffdea1Ficus Kirkpatrick    public void setResponseData(HttpEntity entity) {
413713094c56d25e25df2a508dbee4aea869ffdea1Ficus Kirkpatrick        mStatusCode = HttpStatus.SC_OK;
423713094c56d25e25df2a508dbee4aea869ffdea1Ficus Kirkpatrick        mResponseEntity = entity;
433713094c56d25e25df2a508dbee4aea869ffdea1Ficus Kirkpatrick    }
443713094c56d25e25df2a508dbee4aea869ffdea1Ficus Kirkpatrick
453713094c56d25e25df2a508dbee4aea869ffdea1Ficus Kirkpatrick    public void setErrorCode(int statusCode) {
463713094c56d25e25df2a508dbee4aea869ffdea1Ficus Kirkpatrick        if (statusCode == HttpStatus.SC_OK) {
473713094c56d25e25df2a508dbee4aea869ffdea1Ficus Kirkpatrick            throw new IllegalArgumentException("statusCode cannot be 200 for an error");
483713094c56d25e25df2a508dbee4aea869ffdea1Ficus Kirkpatrick        }
493713094c56d25e25df2a508dbee4aea869ffdea1Ficus Kirkpatrick        mStatusCode = statusCode;
503713094c56d25e25df2a508dbee4aea869ffdea1Ficus Kirkpatrick    }
513713094c56d25e25df2a508dbee4aea869ffdea1Ficus Kirkpatrick
523713094c56d25e25df2a508dbee4aea869ffdea1Ficus Kirkpatrick    public HttpUriRequest requestExecuted = null;
533713094c56d25e25df2a508dbee4aea869ffdea1Ficus Kirkpatrick
543713094c56d25e25df2a508dbee4aea869ffdea1Ficus Kirkpatrick    // This is the only one we actually use.
553713094c56d25e25df2a508dbee4aea869ffdea1Ficus Kirkpatrick    @Override
563713094c56d25e25df2a508dbee4aea869ffdea1Ficus Kirkpatrick    public HttpResponse execute(HttpUriRequest request, HttpContext context) {
573713094c56d25e25df2a508dbee4aea869ffdea1Ficus Kirkpatrick        requestExecuted = request;
583713094c56d25e25df2a508dbee4aea869ffdea1Ficus Kirkpatrick        StatusLine statusLine = new BasicStatusLine(
593713094c56d25e25df2a508dbee4aea869ffdea1Ficus Kirkpatrick                new ProtocolVersion("HTTP", 1, 1), mStatusCode, "");
603713094c56d25e25df2a508dbee4aea869ffdea1Ficus Kirkpatrick        HttpResponse response = new BasicHttpResponse(statusLine);
613713094c56d25e25df2a508dbee4aea869ffdea1Ficus Kirkpatrick        response.setEntity(mResponseEntity);
623713094c56d25e25df2a508dbee4aea869ffdea1Ficus Kirkpatrick
633713094c56d25e25df2a508dbee4aea869ffdea1Ficus Kirkpatrick        return response;
643713094c56d25e25df2a508dbee4aea869ffdea1Ficus Kirkpatrick    }
653713094c56d25e25df2a508dbee4aea869ffdea1Ficus Kirkpatrick
663713094c56d25e25df2a508dbee4aea869ffdea1Ficus Kirkpatrick
673713094c56d25e25df2a508dbee4aea869ffdea1Ficus Kirkpatrick    // Unimplemented methods ahoy
683713094c56d25e25df2a508dbee4aea869ffdea1Ficus Kirkpatrick
693713094c56d25e25df2a508dbee4aea869ffdea1Ficus Kirkpatrick    @Override
703713094c56d25e25df2a508dbee4aea869ffdea1Ficus Kirkpatrick    public HttpResponse execute(HttpUriRequest request) {
713713094c56d25e25df2a508dbee4aea869ffdea1Ficus Kirkpatrick        throw new UnsupportedOperationException();
723713094c56d25e25df2a508dbee4aea869ffdea1Ficus Kirkpatrick    }
733713094c56d25e25df2a508dbee4aea869ffdea1Ficus Kirkpatrick
743713094c56d25e25df2a508dbee4aea869ffdea1Ficus Kirkpatrick    @Override
753713094c56d25e25df2a508dbee4aea869ffdea1Ficus Kirkpatrick    public HttpResponse execute(HttpHost target, HttpRequest request) {
763713094c56d25e25df2a508dbee4aea869ffdea1Ficus Kirkpatrick        throw new UnsupportedOperationException();
773713094c56d25e25df2a508dbee4aea869ffdea1Ficus Kirkpatrick    }
783713094c56d25e25df2a508dbee4aea869ffdea1Ficus Kirkpatrick
793713094c56d25e25df2a508dbee4aea869ffdea1Ficus Kirkpatrick    @Override
803713094c56d25e25df2a508dbee4aea869ffdea1Ficus Kirkpatrick    public <T> T execute(HttpUriRequest arg0, ResponseHandler<? extends T> arg1) {
813713094c56d25e25df2a508dbee4aea869ffdea1Ficus Kirkpatrick        throw new UnsupportedOperationException();
823713094c56d25e25df2a508dbee4aea869ffdea1Ficus Kirkpatrick    }
833713094c56d25e25df2a508dbee4aea869ffdea1Ficus Kirkpatrick
843713094c56d25e25df2a508dbee4aea869ffdea1Ficus Kirkpatrick    @Override
853713094c56d25e25df2a508dbee4aea869ffdea1Ficus Kirkpatrick    public HttpResponse execute(HttpHost target, HttpRequest request, HttpContext context) {
863713094c56d25e25df2a508dbee4aea869ffdea1Ficus Kirkpatrick        throw new UnsupportedOperationException();
873713094c56d25e25df2a508dbee4aea869ffdea1Ficus Kirkpatrick    }
883713094c56d25e25df2a508dbee4aea869ffdea1Ficus Kirkpatrick
893713094c56d25e25df2a508dbee4aea869ffdea1Ficus Kirkpatrick    @Override
903713094c56d25e25df2a508dbee4aea869ffdea1Ficus Kirkpatrick    public <T> T execute(HttpUriRequest arg0, ResponseHandler<? extends T> arg1, HttpContext arg2) {
913713094c56d25e25df2a508dbee4aea869ffdea1Ficus Kirkpatrick        throw new UnsupportedOperationException();
923713094c56d25e25df2a508dbee4aea869ffdea1Ficus Kirkpatrick    }
933713094c56d25e25df2a508dbee4aea869ffdea1Ficus Kirkpatrick
943713094c56d25e25df2a508dbee4aea869ffdea1Ficus Kirkpatrick    @Override
953713094c56d25e25df2a508dbee4aea869ffdea1Ficus Kirkpatrick    public <T> T execute(HttpHost arg0, HttpRequest arg1, ResponseHandler<? extends T> arg2) {
963713094c56d25e25df2a508dbee4aea869ffdea1Ficus Kirkpatrick        throw new UnsupportedOperationException();
973713094c56d25e25df2a508dbee4aea869ffdea1Ficus Kirkpatrick    }
983713094c56d25e25df2a508dbee4aea869ffdea1Ficus Kirkpatrick
993713094c56d25e25df2a508dbee4aea869ffdea1Ficus Kirkpatrick    @Override
1003713094c56d25e25df2a508dbee4aea869ffdea1Ficus Kirkpatrick    public <T> T execute(HttpHost arg0, HttpRequest arg1, ResponseHandler<? extends T> arg2,
1013713094c56d25e25df2a508dbee4aea869ffdea1Ficus Kirkpatrick            HttpContext arg3) {
1023713094c56d25e25df2a508dbee4aea869ffdea1Ficus Kirkpatrick        throw new UnsupportedOperationException();
1033713094c56d25e25df2a508dbee4aea869ffdea1Ficus Kirkpatrick    }
1043713094c56d25e25df2a508dbee4aea869ffdea1Ficus Kirkpatrick
1053713094c56d25e25df2a508dbee4aea869ffdea1Ficus Kirkpatrick    @Override
1063713094c56d25e25df2a508dbee4aea869ffdea1Ficus Kirkpatrick    public ClientConnectionManager getConnectionManager() {
1073713094c56d25e25df2a508dbee4aea869ffdea1Ficus Kirkpatrick        throw new UnsupportedOperationException();
1083713094c56d25e25df2a508dbee4aea869ffdea1Ficus Kirkpatrick    }
1093713094c56d25e25df2a508dbee4aea869ffdea1Ficus Kirkpatrick
1103713094c56d25e25df2a508dbee4aea869ffdea1Ficus Kirkpatrick    @Override
1113713094c56d25e25df2a508dbee4aea869ffdea1Ficus Kirkpatrick    public HttpParams getParams() {
1123713094c56d25e25df2a508dbee4aea869ffdea1Ficus Kirkpatrick        throw new UnsupportedOperationException();
1133713094c56d25e25df2a508dbee4aea869ffdea1Ficus Kirkpatrick    }
1143713094c56d25e25df2a508dbee4aea869ffdea1Ficus Kirkpatrick}
115