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 com.android.volley.Network; 203713094c56d25e25df2a508dbee4aea869ffdea1Ficus Kirkpatrickimport com.android.volley.NetworkResponse; 213713094c56d25e25df2a508dbee4aea869ffdea1Ficus Kirkpatrickimport com.android.volley.Request; 223713094c56d25e25df2a508dbee4aea869ffdea1Ficus Kirkpatrickimport com.android.volley.ServerError; 233713094c56d25e25df2a508dbee4aea869ffdea1Ficus Kirkpatrickimport com.android.volley.VolleyError; 243713094c56d25e25df2a508dbee4aea869ffdea1Ficus Kirkpatrick 253713094c56d25e25df2a508dbee4aea869ffdea1Ficus Kirkpatrickpublic class MockNetwork implements Network { 263713094c56d25e25df2a508dbee4aea869ffdea1Ficus Kirkpatrick public final static int ALWAYS_THROW_EXCEPTIONS = -1; 273713094c56d25e25df2a508dbee4aea869ffdea1Ficus Kirkpatrick 283713094c56d25e25df2a508dbee4aea869ffdea1Ficus Kirkpatrick private int mNumExceptionsToThrow = 0; 293713094c56d25e25df2a508dbee4aea869ffdea1Ficus Kirkpatrick private byte[] mDataToReturn = null; 303713094c56d25e25df2a508dbee4aea869ffdea1Ficus Kirkpatrick 313713094c56d25e25df2a508dbee4aea869ffdea1Ficus Kirkpatrick /** 323713094c56d25e25df2a508dbee4aea869ffdea1Ficus Kirkpatrick * @param numExceptionsToThrow number of times to throw an exception or 333713094c56d25e25df2a508dbee4aea869ffdea1Ficus Kirkpatrick * {@link #ALWAYS_THROW_EXCEPTIONS} 343713094c56d25e25df2a508dbee4aea869ffdea1Ficus Kirkpatrick */ 353713094c56d25e25df2a508dbee4aea869ffdea1Ficus Kirkpatrick public void setNumExceptionsToThrow(int numExceptionsToThrow) { 363713094c56d25e25df2a508dbee4aea869ffdea1Ficus Kirkpatrick mNumExceptionsToThrow = numExceptionsToThrow; 373713094c56d25e25df2a508dbee4aea869ffdea1Ficus Kirkpatrick } 383713094c56d25e25df2a508dbee4aea869ffdea1Ficus Kirkpatrick 393713094c56d25e25df2a508dbee4aea869ffdea1Ficus Kirkpatrick public void setDataToReturn(byte[] data) { 403713094c56d25e25df2a508dbee4aea869ffdea1Ficus Kirkpatrick mDataToReturn = data; 413713094c56d25e25df2a508dbee4aea869ffdea1Ficus Kirkpatrick } 423713094c56d25e25df2a508dbee4aea869ffdea1Ficus Kirkpatrick 433713094c56d25e25df2a508dbee4aea869ffdea1Ficus Kirkpatrick public Request<?> requestHandled = null; 443713094c56d25e25df2a508dbee4aea869ffdea1Ficus Kirkpatrick 453713094c56d25e25df2a508dbee4aea869ffdea1Ficus Kirkpatrick @Override 463713094c56d25e25df2a508dbee4aea869ffdea1Ficus Kirkpatrick public NetworkResponse performRequest(Request<?> request) throws VolleyError { 473713094c56d25e25df2a508dbee4aea869ffdea1Ficus Kirkpatrick if (mNumExceptionsToThrow > 0 || mNumExceptionsToThrow == ALWAYS_THROW_EXCEPTIONS) { 483713094c56d25e25df2a508dbee4aea869ffdea1Ficus Kirkpatrick if (mNumExceptionsToThrow != ALWAYS_THROW_EXCEPTIONS) { 493713094c56d25e25df2a508dbee4aea869ffdea1Ficus Kirkpatrick mNumExceptionsToThrow--; 503713094c56d25e25df2a508dbee4aea869ffdea1Ficus Kirkpatrick } 513713094c56d25e25df2a508dbee4aea869ffdea1Ficus Kirkpatrick throw new ServerError(); 523713094c56d25e25df2a508dbee4aea869ffdea1Ficus Kirkpatrick } 533713094c56d25e25df2a508dbee4aea869ffdea1Ficus Kirkpatrick 543713094c56d25e25df2a508dbee4aea869ffdea1Ficus Kirkpatrick requestHandled = request; 553713094c56d25e25df2a508dbee4aea869ffdea1Ficus Kirkpatrick return new NetworkResponse(mDataToReturn); 563713094c56d25e25df2a508dbee4aea869ffdea1Ficus Kirkpatrick } 573713094c56d25e25df2a508dbee4aea869ffdea1Ficus Kirkpatrick 583713094c56d25e25df2a508dbee4aea869ffdea1Ficus Kirkpatrick} 59