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 com.android.volley.NetworkResponse;
20d56b88ae161057e848e7410d1b9ce5b0b8c427fcJean-Baptiste Queruimport com.android.volley.Request;
21d56b88ae161057e848e7410d1b9ce5b0b8c427fcJean-Baptiste Queruimport com.android.volley.Response;
22d56b88ae161057e848e7410d1b9ce5b0b8c427fcJean-Baptiste Queruimport com.android.volley.Response.ErrorListener;
23d56b88ae161057e848e7410d1b9ce5b0b8c427fcJean-Baptiste Queruimport com.android.volley.VolleyError;
24d56b88ae161057e848e7410d1b9ce5b0b8c427fcJean-Baptiste Queruimport com.android.volley.utils.CacheTestUtils;
25d56b88ae161057e848e7410d1b9ce5b0b8c427fcJean-Baptiste Queru
26d56b88ae161057e848e7410d1b9ce5b0b8c427fcJean-Baptiste Queruimport java.util.HashMap;
27d56b88ae161057e848e7410d1b9ce5b0b8c427fcJean-Baptiste Queruimport java.util.Map;
28d56b88ae161057e848e7410d1b9ce5b0b8c427fcJean-Baptiste Queru
29d56b88ae161057e848e7410d1b9ce5b0b8c427fcJean-Baptiste Querupublic class MockRequest extends Request<byte[]> {
30d56b88ae161057e848e7410d1b9ce5b0b8c427fcJean-Baptiste Queru    public MockRequest() {
3135d5cc345a7bc5c7391aeda3d3fce711c6376c7bFicus Kirkpatrick        super(Request.Method.GET, "http://foo.com", null);
32d56b88ae161057e848e7410d1b9ce5b0b8c427fcJean-Baptiste Queru    }
33d56b88ae161057e848e7410d1b9ce5b0b8c427fcJean-Baptiste Queru
34d56b88ae161057e848e7410d1b9ce5b0b8c427fcJean-Baptiste Queru    public MockRequest(String url, ErrorListener listener) {
3535d5cc345a7bc5c7391aeda3d3fce711c6376c7bFicus Kirkpatrick        super(Request.Method.GET, url, listener);
36d56b88ae161057e848e7410d1b9ce5b0b8c427fcJean-Baptiste Queru    }
37d56b88ae161057e848e7410d1b9ce5b0b8c427fcJean-Baptiste Queru
38d56b88ae161057e848e7410d1b9ce5b0b8c427fcJean-Baptiste Queru    private Map<String, String> mPostParams = new HashMap<String, String>();
39d56b88ae161057e848e7410d1b9ce5b0b8c427fcJean-Baptiste Queru
40d56b88ae161057e848e7410d1b9ce5b0b8c427fcJean-Baptiste Queru    public void setPostParams(Map<String, String> postParams) {
41d56b88ae161057e848e7410d1b9ce5b0b8c427fcJean-Baptiste Queru        mPostParams = postParams;
42d56b88ae161057e848e7410d1b9ce5b0b8c427fcJean-Baptiste Queru    }
43d56b88ae161057e848e7410d1b9ce5b0b8c427fcJean-Baptiste Queru
44d56b88ae161057e848e7410d1b9ce5b0b8c427fcJean-Baptiste Queru    @Override
45d56b88ae161057e848e7410d1b9ce5b0b8c427fcJean-Baptiste Queru    public Map<String, String> getPostParams() {
46d56b88ae161057e848e7410d1b9ce5b0b8c427fcJean-Baptiste Queru        return mPostParams;
47d56b88ae161057e848e7410d1b9ce5b0b8c427fcJean-Baptiste Queru    }
48d56b88ae161057e848e7410d1b9ce5b0b8c427fcJean-Baptiste Queru
49d56b88ae161057e848e7410d1b9ce5b0b8c427fcJean-Baptiste Queru    private String mCacheKey = super.getCacheKey();
50d56b88ae161057e848e7410d1b9ce5b0b8c427fcJean-Baptiste Queru
51d56b88ae161057e848e7410d1b9ce5b0b8c427fcJean-Baptiste Queru    public void setCacheKey(String cacheKey) {
52d56b88ae161057e848e7410d1b9ce5b0b8c427fcJean-Baptiste Queru        mCacheKey = cacheKey;
53d56b88ae161057e848e7410d1b9ce5b0b8c427fcJean-Baptiste Queru    }
54d56b88ae161057e848e7410d1b9ce5b0b8c427fcJean-Baptiste Queru
55d56b88ae161057e848e7410d1b9ce5b0b8c427fcJean-Baptiste Queru    @Override
56d56b88ae161057e848e7410d1b9ce5b0b8c427fcJean-Baptiste Queru    public String getCacheKey() {
57d56b88ae161057e848e7410d1b9ce5b0b8c427fcJean-Baptiste Queru        return mCacheKey;
58d56b88ae161057e848e7410d1b9ce5b0b8c427fcJean-Baptiste Queru    }
59d56b88ae161057e848e7410d1b9ce5b0b8c427fcJean-Baptiste Queru
60d56b88ae161057e848e7410d1b9ce5b0b8c427fcJean-Baptiste Queru    public boolean deliverResponse_called = false;
61d56b88ae161057e848e7410d1b9ce5b0b8c427fcJean-Baptiste Queru    public boolean parseResponse_called = false;
62d56b88ae161057e848e7410d1b9ce5b0b8c427fcJean-Baptiste Queru
63d56b88ae161057e848e7410d1b9ce5b0b8c427fcJean-Baptiste Queru    @Override
64d56b88ae161057e848e7410d1b9ce5b0b8c427fcJean-Baptiste Queru    protected void deliverResponse(byte[] response) {
65d56b88ae161057e848e7410d1b9ce5b0b8c427fcJean-Baptiste Queru        deliverResponse_called = true;
66d56b88ae161057e848e7410d1b9ce5b0b8c427fcJean-Baptiste Queru    }
67d56b88ae161057e848e7410d1b9ce5b0b8c427fcJean-Baptiste Queru
68d56b88ae161057e848e7410d1b9ce5b0b8c427fcJean-Baptiste Queru    public boolean deliverError_called = false;
69d56b88ae161057e848e7410d1b9ce5b0b8c427fcJean-Baptiste Queru
70d56b88ae161057e848e7410d1b9ce5b0b8c427fcJean-Baptiste Queru    @Override
71d56b88ae161057e848e7410d1b9ce5b0b8c427fcJean-Baptiste Queru    public void deliverError(VolleyError error) {
72d56b88ae161057e848e7410d1b9ce5b0b8c427fcJean-Baptiste Queru        super.deliverError(error);
73d56b88ae161057e848e7410d1b9ce5b0b8c427fcJean-Baptiste Queru        deliverError_called = true;
74d56b88ae161057e848e7410d1b9ce5b0b8c427fcJean-Baptiste Queru    }
75d56b88ae161057e848e7410d1b9ce5b0b8c427fcJean-Baptiste Queru
76d56b88ae161057e848e7410d1b9ce5b0b8c427fcJean-Baptiste Queru    public boolean cancel_called = false;
77d56b88ae161057e848e7410d1b9ce5b0b8c427fcJean-Baptiste Queru
78d56b88ae161057e848e7410d1b9ce5b0b8c427fcJean-Baptiste Queru    @Override
79d56b88ae161057e848e7410d1b9ce5b0b8c427fcJean-Baptiste Queru    public void cancel() {
80d56b88ae161057e848e7410d1b9ce5b0b8c427fcJean-Baptiste Queru        cancel_called = true;
81d56b88ae161057e848e7410d1b9ce5b0b8c427fcJean-Baptiste Queru        super.cancel();
82d56b88ae161057e848e7410d1b9ce5b0b8c427fcJean-Baptiste Queru    }
83d56b88ae161057e848e7410d1b9ce5b0b8c427fcJean-Baptiste Queru
84d56b88ae161057e848e7410d1b9ce5b0b8c427fcJean-Baptiste Queru    private Priority mPriority = super.getPriority();
85d56b88ae161057e848e7410d1b9ce5b0b8c427fcJean-Baptiste Queru
86d56b88ae161057e848e7410d1b9ce5b0b8c427fcJean-Baptiste Queru    public void setPriority(Priority priority) {
87d56b88ae161057e848e7410d1b9ce5b0b8c427fcJean-Baptiste Queru        mPriority = priority;
88d56b88ae161057e848e7410d1b9ce5b0b8c427fcJean-Baptiste Queru    }
89d56b88ae161057e848e7410d1b9ce5b0b8c427fcJean-Baptiste Queru
90d56b88ae161057e848e7410d1b9ce5b0b8c427fcJean-Baptiste Queru    @Override
91d56b88ae161057e848e7410d1b9ce5b0b8c427fcJean-Baptiste Queru    public Priority getPriority() {
92d56b88ae161057e848e7410d1b9ce5b0b8c427fcJean-Baptiste Queru        return mPriority;
93d56b88ae161057e848e7410d1b9ce5b0b8c427fcJean-Baptiste Queru    }
94d56b88ae161057e848e7410d1b9ce5b0b8c427fcJean-Baptiste Queru
95d56b88ae161057e848e7410d1b9ce5b0b8c427fcJean-Baptiste Queru    @Override
96d56b88ae161057e848e7410d1b9ce5b0b8c427fcJean-Baptiste Queru    protected Response<byte[]> parseNetworkResponse(NetworkResponse response) {
97d56b88ae161057e848e7410d1b9ce5b0b8c427fcJean-Baptiste Queru        parseResponse_called = true;
98d56b88ae161057e848e7410d1b9ce5b0b8c427fcJean-Baptiste Queru        return Response.success(response.data, CacheTestUtils.makeRandomCacheEntry(response.data));
99d56b88ae161057e848e7410d1b9ce5b0b8c427fcJean-Baptiste Queru    }
100d56b88ae161057e848e7410d1b9ce5b0b8c427fcJean-Baptiste Queru
101d56b88ae161057e848e7410d1b9ce5b0b8c427fcJean-Baptiste Queru}
102