1e48f4430bfd3030350aa5ba827b449c37e2fadc9Jean-Baptiste Queru/*
2e48f4430bfd3030350aa5ba827b449c37e2fadc9Jean-Baptiste Queru * Copyright (C) 2012 The Android Open Source Project
3e48f4430bfd3030350aa5ba827b449c37e2fadc9Jean-Baptiste Queru *
4e48f4430bfd3030350aa5ba827b449c37e2fadc9Jean-Baptiste Queru * Licensed under the Apache License, Version 2.0 (the "License");
5e48f4430bfd3030350aa5ba827b449c37e2fadc9Jean-Baptiste Queru * you may not use this file except in compliance with the License.
6e48f4430bfd3030350aa5ba827b449c37e2fadc9Jean-Baptiste Queru * You may obtain a copy of the License at
7e48f4430bfd3030350aa5ba827b449c37e2fadc9Jean-Baptiste Queru *
8e48f4430bfd3030350aa5ba827b449c37e2fadc9Jean-Baptiste Queru *      http://www.apache.org/licenses/LICENSE-2.0
9e48f4430bfd3030350aa5ba827b449c37e2fadc9Jean-Baptiste Queru *
10e48f4430bfd3030350aa5ba827b449c37e2fadc9Jean-Baptiste Queru * Unless required by applicable law or agreed to in writing, software
11e48f4430bfd3030350aa5ba827b449c37e2fadc9Jean-Baptiste Queru * distributed under the License is distributed on an "AS IS" BASIS,
12e48f4430bfd3030350aa5ba827b449c37e2fadc9Jean-Baptiste Queru * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
13e48f4430bfd3030350aa5ba827b449c37e2fadc9Jean-Baptiste Queru * See the License for the specific language governing permissions and
14e48f4430bfd3030350aa5ba827b449c37e2fadc9Jean-Baptiste Queru * limitations under the License.
15e48f4430bfd3030350aa5ba827b449c37e2fadc9Jean-Baptiste Queru */
16e48f4430bfd3030350aa5ba827b449c37e2fadc9Jean-Baptiste Queru
17e48f4430bfd3030350aa5ba827b449c37e2fadc9Jean-Baptiste Querupackage com.android.volley.mock;
18e48f4430bfd3030350aa5ba827b449c37e2fadc9Jean-Baptiste Queru
19e48f4430bfd3030350aa5ba827b449c37e2fadc9Jean-Baptiste Queruimport com.android.volley.NetworkResponse;
20e48f4430bfd3030350aa5ba827b449c37e2fadc9Jean-Baptiste Queruimport com.android.volley.Request;
21e48f4430bfd3030350aa5ba827b449c37e2fadc9Jean-Baptiste Queruimport com.android.volley.Response;
22e48f4430bfd3030350aa5ba827b449c37e2fadc9Jean-Baptiste Queru
23e48f4430bfd3030350aa5ba827b449c37e2fadc9Jean-Baptiste Queruimport java.util.HashMap;
24e48f4430bfd3030350aa5ba827b449c37e2fadc9Jean-Baptiste Queruimport java.util.Map;
25e48f4430bfd3030350aa5ba827b449c37e2fadc9Jean-Baptiste Queru
26e48f4430bfd3030350aa5ba827b449c37e2fadc9Jean-Baptiste Querupublic class TestRequest {
27e48f4430bfd3030350aa5ba827b449c37e2fadc9Jean-Baptiste Queru    private static final String TEST_URL = "http://foo.com";
28e48f4430bfd3030350aa5ba827b449c37e2fadc9Jean-Baptiste Queru
29e48f4430bfd3030350aa5ba827b449c37e2fadc9Jean-Baptiste Queru    /** Base Request class for testing allowing both the deprecated and new constructor. */
30e48f4430bfd3030350aa5ba827b449c37e2fadc9Jean-Baptiste Queru    private static class Base extends Request<byte[]> {
31e48f4430bfd3030350aa5ba827b449c37e2fadc9Jean-Baptiste Queru        @SuppressWarnings("deprecation")
32e48f4430bfd3030350aa5ba827b449c37e2fadc9Jean-Baptiste Queru        public Base(String url, Response.ErrorListener listener) {
33e48f4430bfd3030350aa5ba827b449c37e2fadc9Jean-Baptiste Queru            super(url, listener);
34e48f4430bfd3030350aa5ba827b449c37e2fadc9Jean-Baptiste Queru        }
35e48f4430bfd3030350aa5ba827b449c37e2fadc9Jean-Baptiste Queru
36e48f4430bfd3030350aa5ba827b449c37e2fadc9Jean-Baptiste Queru        public Base(int method, String url, Response.ErrorListener listener) {
37e48f4430bfd3030350aa5ba827b449c37e2fadc9Jean-Baptiste Queru            super(method, url, listener);
38e48f4430bfd3030350aa5ba827b449c37e2fadc9Jean-Baptiste Queru        }
39e48f4430bfd3030350aa5ba827b449c37e2fadc9Jean-Baptiste Queru
40e48f4430bfd3030350aa5ba827b449c37e2fadc9Jean-Baptiste Queru        @Override
41e48f4430bfd3030350aa5ba827b449c37e2fadc9Jean-Baptiste Queru        protected Response<byte[]> parseNetworkResponse(NetworkResponse response) {
42e48f4430bfd3030350aa5ba827b449c37e2fadc9Jean-Baptiste Queru            return null;
43e48f4430bfd3030350aa5ba827b449c37e2fadc9Jean-Baptiste Queru        }
44e48f4430bfd3030350aa5ba827b449c37e2fadc9Jean-Baptiste Queru
45e48f4430bfd3030350aa5ba827b449c37e2fadc9Jean-Baptiste Queru        @Override
46e48f4430bfd3030350aa5ba827b449c37e2fadc9Jean-Baptiste Queru        protected void deliverResponse(byte[] response) {
47e48f4430bfd3030350aa5ba827b449c37e2fadc9Jean-Baptiste Queru        }
48e48f4430bfd3030350aa5ba827b449c37e2fadc9Jean-Baptiste Queru    }
49e48f4430bfd3030350aa5ba827b449c37e2fadc9Jean-Baptiste Queru
50e48f4430bfd3030350aa5ba827b449c37e2fadc9Jean-Baptiste Queru    /** Test example of a GET request in the deprecated style. */
51e48f4430bfd3030350aa5ba827b449c37e2fadc9Jean-Baptiste Queru    public static class DeprecatedGet extends Base {
52e48f4430bfd3030350aa5ba827b449c37e2fadc9Jean-Baptiste Queru        public DeprecatedGet() {
53e48f4430bfd3030350aa5ba827b449c37e2fadc9Jean-Baptiste Queru            super(TEST_URL, null);
54e48f4430bfd3030350aa5ba827b449c37e2fadc9Jean-Baptiste Queru        }
55e48f4430bfd3030350aa5ba827b449c37e2fadc9Jean-Baptiste Queru    }
56e48f4430bfd3030350aa5ba827b449c37e2fadc9Jean-Baptiste Queru
57e48f4430bfd3030350aa5ba827b449c37e2fadc9Jean-Baptiste Queru    /** Test example of a POST request in the deprecated style. */
58e48f4430bfd3030350aa5ba827b449c37e2fadc9Jean-Baptiste Queru    public static class DeprecatedPost extends Base {
59e48f4430bfd3030350aa5ba827b449c37e2fadc9Jean-Baptiste Queru        private Map<String, String> mPostParams;
60e48f4430bfd3030350aa5ba827b449c37e2fadc9Jean-Baptiste Queru
61e48f4430bfd3030350aa5ba827b449c37e2fadc9Jean-Baptiste Queru        public DeprecatedPost() {
62e48f4430bfd3030350aa5ba827b449c37e2fadc9Jean-Baptiste Queru            super(TEST_URL, null);
63e48f4430bfd3030350aa5ba827b449c37e2fadc9Jean-Baptiste Queru            mPostParams = new HashMap<String, String>();
64e48f4430bfd3030350aa5ba827b449c37e2fadc9Jean-Baptiste Queru            mPostParams.put("requestpost", "foo");
65e48f4430bfd3030350aa5ba827b449c37e2fadc9Jean-Baptiste Queru        }
66e48f4430bfd3030350aa5ba827b449c37e2fadc9Jean-Baptiste Queru
67e48f4430bfd3030350aa5ba827b449c37e2fadc9Jean-Baptiste Queru        @Override
68e48f4430bfd3030350aa5ba827b449c37e2fadc9Jean-Baptiste Queru        protected Map<String, String> getPostParams() {
69e48f4430bfd3030350aa5ba827b449c37e2fadc9Jean-Baptiste Queru            return mPostParams;
70e48f4430bfd3030350aa5ba827b449c37e2fadc9Jean-Baptiste Queru        }
71e48f4430bfd3030350aa5ba827b449c37e2fadc9Jean-Baptiste Queru    }
72e48f4430bfd3030350aa5ba827b449c37e2fadc9Jean-Baptiste Queru
73e48f4430bfd3030350aa5ba827b449c37e2fadc9Jean-Baptiste Queru    /** Test example of a GET request in the new style. */
74e48f4430bfd3030350aa5ba827b449c37e2fadc9Jean-Baptiste Queru    public static class Get extends Base {
75e48f4430bfd3030350aa5ba827b449c37e2fadc9Jean-Baptiste Queru        public Get() {
76e48f4430bfd3030350aa5ba827b449c37e2fadc9Jean-Baptiste Queru            super(Method.GET, TEST_URL, null);
77e48f4430bfd3030350aa5ba827b449c37e2fadc9Jean-Baptiste Queru        }
78e48f4430bfd3030350aa5ba827b449c37e2fadc9Jean-Baptiste Queru    }
79e48f4430bfd3030350aa5ba827b449c37e2fadc9Jean-Baptiste Queru
80e48f4430bfd3030350aa5ba827b449c37e2fadc9Jean-Baptiste Queru    /**
81e48f4430bfd3030350aa5ba827b449c37e2fadc9Jean-Baptiste Queru     * Test example of a POST request in the new style.  In the new style, it is possible
82e48f4430bfd3030350aa5ba827b449c37e2fadc9Jean-Baptiste Queru     * to have a POST with no body.
83e48f4430bfd3030350aa5ba827b449c37e2fadc9Jean-Baptiste Queru     */
84e48f4430bfd3030350aa5ba827b449c37e2fadc9Jean-Baptiste Queru    public static class Post extends Base {
85e48f4430bfd3030350aa5ba827b449c37e2fadc9Jean-Baptiste Queru        public Post() {
86e48f4430bfd3030350aa5ba827b449c37e2fadc9Jean-Baptiste Queru            super(Method.POST, TEST_URL, null);
87e48f4430bfd3030350aa5ba827b449c37e2fadc9Jean-Baptiste Queru        }
88e48f4430bfd3030350aa5ba827b449c37e2fadc9Jean-Baptiste Queru    }
89e48f4430bfd3030350aa5ba827b449c37e2fadc9Jean-Baptiste Queru
90e48f4430bfd3030350aa5ba827b449c37e2fadc9Jean-Baptiste Queru    /** Test example of a POST request in the new style with a body. */
91e48f4430bfd3030350aa5ba827b449c37e2fadc9Jean-Baptiste Queru    public static class PostWithBody extends Post {
92e48f4430bfd3030350aa5ba827b449c37e2fadc9Jean-Baptiste Queru        private Map<String, String> mParams;
93e48f4430bfd3030350aa5ba827b449c37e2fadc9Jean-Baptiste Queru
94e48f4430bfd3030350aa5ba827b449c37e2fadc9Jean-Baptiste Queru        public PostWithBody() {
95e48f4430bfd3030350aa5ba827b449c37e2fadc9Jean-Baptiste Queru            mParams = new HashMap<String, String>();
96e48f4430bfd3030350aa5ba827b449c37e2fadc9Jean-Baptiste Queru            mParams.put("testKey", "testValue");
97e48f4430bfd3030350aa5ba827b449c37e2fadc9Jean-Baptiste Queru        }
98e48f4430bfd3030350aa5ba827b449c37e2fadc9Jean-Baptiste Queru
99e48f4430bfd3030350aa5ba827b449c37e2fadc9Jean-Baptiste Queru        @Override
100e48f4430bfd3030350aa5ba827b449c37e2fadc9Jean-Baptiste Queru        public Map<String, String> getParams() {
101e48f4430bfd3030350aa5ba827b449c37e2fadc9Jean-Baptiste Queru            return mParams;
102e48f4430bfd3030350aa5ba827b449c37e2fadc9Jean-Baptiste Queru        }
103e48f4430bfd3030350aa5ba827b449c37e2fadc9Jean-Baptiste Queru    }
104e48f4430bfd3030350aa5ba827b449c37e2fadc9Jean-Baptiste Queru
105e48f4430bfd3030350aa5ba827b449c37e2fadc9Jean-Baptiste Queru    /**
106e48f4430bfd3030350aa5ba827b449c37e2fadc9Jean-Baptiste Queru     * Test example of a PUT request in the new style.  In the new style, it is possible to have a
107e48f4430bfd3030350aa5ba827b449c37e2fadc9Jean-Baptiste Queru     * PUT with no body.
108e48f4430bfd3030350aa5ba827b449c37e2fadc9Jean-Baptiste Queru     */
109e48f4430bfd3030350aa5ba827b449c37e2fadc9Jean-Baptiste Queru    public static class Put extends Base {
110e48f4430bfd3030350aa5ba827b449c37e2fadc9Jean-Baptiste Queru        public Put() {
111e48f4430bfd3030350aa5ba827b449c37e2fadc9Jean-Baptiste Queru            super(Method.PUT, TEST_URL, null);
112e48f4430bfd3030350aa5ba827b449c37e2fadc9Jean-Baptiste Queru        }
113e48f4430bfd3030350aa5ba827b449c37e2fadc9Jean-Baptiste Queru    }
114e48f4430bfd3030350aa5ba827b449c37e2fadc9Jean-Baptiste Queru
115e48f4430bfd3030350aa5ba827b449c37e2fadc9Jean-Baptiste Queru    /** Test example of a PUT request in the new style with a body. */
116e48f4430bfd3030350aa5ba827b449c37e2fadc9Jean-Baptiste Queru    public static class PutWithBody extends Put {
117e48f4430bfd3030350aa5ba827b449c37e2fadc9Jean-Baptiste Queru        private Map<String, String> mParams = new HashMap<String, String>();
118e48f4430bfd3030350aa5ba827b449c37e2fadc9Jean-Baptiste Queru
119e48f4430bfd3030350aa5ba827b449c37e2fadc9Jean-Baptiste Queru        public PutWithBody() {
120e48f4430bfd3030350aa5ba827b449c37e2fadc9Jean-Baptiste Queru            mParams = new HashMap<String, String>();
121e48f4430bfd3030350aa5ba827b449c37e2fadc9Jean-Baptiste Queru            mParams.put("testKey", "testValue");
122e48f4430bfd3030350aa5ba827b449c37e2fadc9Jean-Baptiste Queru        }
123e48f4430bfd3030350aa5ba827b449c37e2fadc9Jean-Baptiste Queru
124e48f4430bfd3030350aa5ba827b449c37e2fadc9Jean-Baptiste Queru        @Override
125e48f4430bfd3030350aa5ba827b449c37e2fadc9Jean-Baptiste Queru        public Map<String, String> getParams() {
126e48f4430bfd3030350aa5ba827b449c37e2fadc9Jean-Baptiste Queru            return mParams;
127e48f4430bfd3030350aa5ba827b449c37e2fadc9Jean-Baptiste Queru        }
128e48f4430bfd3030350aa5ba827b449c37e2fadc9Jean-Baptiste Queru    }
129e48f4430bfd3030350aa5ba827b449c37e2fadc9Jean-Baptiste Queru
130e48f4430bfd3030350aa5ba827b449c37e2fadc9Jean-Baptiste Queru    /** Test example of a DELETE request in the new style. */
131e48f4430bfd3030350aa5ba827b449c37e2fadc9Jean-Baptiste Queru    public static class Delete extends Base {
132e48f4430bfd3030350aa5ba827b449c37e2fadc9Jean-Baptiste Queru        public Delete() {
133e48f4430bfd3030350aa5ba827b449c37e2fadc9Jean-Baptiste Queru            super(Method.DELETE, TEST_URL, null);
134e48f4430bfd3030350aa5ba827b449c37e2fadc9Jean-Baptiste Queru        }
135e48f4430bfd3030350aa5ba827b449c37e2fadc9Jean-Baptiste Queru    }
136364614be46d20fba35c3b6bc1c2d43fe8e861e9cMaurice Chu
137364614be46d20fba35c3b6bc1c2d43fe8e861e9cMaurice Chu    /** Test example of a HEAD request in the new style. */
138364614be46d20fba35c3b6bc1c2d43fe8e861e9cMaurice Chu    public static class Head extends Base {
139364614be46d20fba35c3b6bc1c2d43fe8e861e9cMaurice Chu        public Head() {
140364614be46d20fba35c3b6bc1c2d43fe8e861e9cMaurice Chu            super(Method.HEAD, TEST_URL, null);
141364614be46d20fba35c3b6bc1c2d43fe8e861e9cMaurice Chu        }
142364614be46d20fba35c3b6bc1c2d43fe8e861e9cMaurice Chu    }
143364614be46d20fba35c3b6bc1c2d43fe8e861e9cMaurice Chu
144364614be46d20fba35c3b6bc1c2d43fe8e861e9cMaurice Chu    /** Test example of a OPTIONS request in the new style. */
145364614be46d20fba35c3b6bc1c2d43fe8e861e9cMaurice Chu    public static class Options extends Base {
146364614be46d20fba35c3b6bc1c2d43fe8e861e9cMaurice Chu        public Options() {
147364614be46d20fba35c3b6bc1c2d43fe8e861e9cMaurice Chu            super(Method.OPTIONS, TEST_URL, null);
148364614be46d20fba35c3b6bc1c2d43fe8e861e9cMaurice Chu        }
149364614be46d20fba35c3b6bc1c2d43fe8e861e9cMaurice Chu    }
150364614be46d20fba35c3b6bc1c2d43fe8e861e9cMaurice Chu
151364614be46d20fba35c3b6bc1c2d43fe8e861e9cMaurice Chu    /** Test example of a TRACE request in the new style. */
152364614be46d20fba35c3b6bc1c2d43fe8e861e9cMaurice Chu    public static class Trace extends Base {
153364614be46d20fba35c3b6bc1c2d43fe8e861e9cMaurice Chu        public Trace() {
154364614be46d20fba35c3b6bc1c2d43fe8e861e9cMaurice Chu            super(Method.TRACE, TEST_URL, null);
155364614be46d20fba35c3b6bc1c2d43fe8e861e9cMaurice Chu        }
156364614be46d20fba35c3b6bc1c2d43fe8e861e9cMaurice Chu    }
157364614be46d20fba35c3b6bc1c2d43fe8e861e9cMaurice Chu
158364614be46d20fba35c3b6bc1c2d43fe8e861e9cMaurice Chu    /** Test example of a PATCH request in the new style. */
159364614be46d20fba35c3b6bc1c2d43fe8e861e9cMaurice Chu    public static class Patch extends Base {
160364614be46d20fba35c3b6bc1c2d43fe8e861e9cMaurice Chu        public Patch() {
161364614be46d20fba35c3b6bc1c2d43fe8e861e9cMaurice Chu            super(Method.PATCH, TEST_URL, null);
162364614be46d20fba35c3b6bc1c2d43fe8e861e9cMaurice Chu        }
163364614be46d20fba35c3b6bc1c2d43fe8e861e9cMaurice Chu    }
164364614be46d20fba35c3b6bc1c2d43fe8e861e9cMaurice Chu
165364614be46d20fba35c3b6bc1c2d43fe8e861e9cMaurice Chu    /** Test example of a PATCH request in the new style with a body. */
166364614be46d20fba35c3b6bc1c2d43fe8e861e9cMaurice Chu    public static class PatchWithBody extends Patch {
167364614be46d20fba35c3b6bc1c2d43fe8e861e9cMaurice Chu        private Map<String, String> mParams = new HashMap<String, String>();
168364614be46d20fba35c3b6bc1c2d43fe8e861e9cMaurice Chu
169364614be46d20fba35c3b6bc1c2d43fe8e861e9cMaurice Chu        public PatchWithBody() {
170364614be46d20fba35c3b6bc1c2d43fe8e861e9cMaurice Chu            mParams = new HashMap<String, String>();
171364614be46d20fba35c3b6bc1c2d43fe8e861e9cMaurice Chu            mParams.put("testKey", "testValue");
172364614be46d20fba35c3b6bc1c2d43fe8e861e9cMaurice Chu        }
173364614be46d20fba35c3b6bc1c2d43fe8e861e9cMaurice Chu
174364614be46d20fba35c3b6bc1c2d43fe8e861e9cMaurice Chu        @Override
175364614be46d20fba35c3b6bc1c2d43fe8e861e9cMaurice Chu        public Map<String, String> getParams() {
176364614be46d20fba35c3b6bc1c2d43fe8e861e9cMaurice Chu            return mParams;
177364614be46d20fba35c3b6bc1c2d43fe8e861e9cMaurice Chu        }
178364614be46d20fba35c3b6bc1c2d43fe8e861e9cMaurice Chu    }
179e48f4430bfd3030350aa5ba827b449c37e2fadc9Jean-Baptiste Queru}
180