1/*
2 * Copyright (C) 2012 The Android Open Source Project
3 *
4 * Licensed under the Apache License, Version 2.0 (the "License");
5 * you may not use this file except in compliance with the License.
6 * You may obtain a copy of the License at
7 *
8 *      http://www.apache.org/licenses/LICENSE-2.0
9 *
10 * Unless required by applicable law or agreed to in writing, software
11 * distributed under the License is distributed on an "AS IS" BASIS,
12 * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
13 * See the License for the specific language governing permissions and
14 * limitations under the License.
15 */
16
17package com.android.volley.toolbox;
18
19import com.android.volley.Request.Method;
20import com.android.volley.mock.TestRequest;
21import com.android.volley.toolbox.HttpClientStack.HttpPatch;
22
23import org.apache.http.client.methods.HttpDelete;
24import org.apache.http.client.methods.HttpGet;
25import org.apache.http.client.methods.HttpHead;
26import org.apache.http.client.methods.HttpOptions;
27import org.apache.http.client.methods.HttpPost;
28import org.apache.http.client.methods.HttpPut;
29import org.apache.http.client.methods.HttpTrace;
30import org.apache.http.client.methods.HttpUriRequest;
31
32import org.junit.Test;
33import org.junit.runner.RunWith;
34import org.robolectric.RobolectricTestRunner;
35
36import static org.junit.Assert.*;
37
38@RunWith(RobolectricTestRunner.class)
39public class HttpClientStackTest {
40
41    @Test public void createDeprecatedGetRequest() throws Exception {
42        TestRequest.DeprecatedGet request = new TestRequest.DeprecatedGet();
43        assertEquals(request.getMethod(), Method.DEPRECATED_GET_OR_POST);
44
45        HttpUriRequest httpRequest = HttpClientStack.createHttpRequest(request, null);
46        assertTrue(httpRequest instanceof HttpGet);
47    }
48
49    @Test public void createDeprecatedPostRequest() throws Exception {
50        TestRequest.DeprecatedPost request = new TestRequest.DeprecatedPost();
51        assertEquals(request.getMethod(), Method.DEPRECATED_GET_OR_POST);
52
53        HttpUriRequest httpRequest = HttpClientStack.createHttpRequest(request, null);
54        assertTrue(httpRequest instanceof HttpPost);
55    }
56
57    @Test public void createGetRequest() throws Exception {
58        TestRequest.Get request = new TestRequest.Get();
59        assertEquals(request.getMethod(), Method.GET);
60
61        HttpUriRequest httpRequest = HttpClientStack.createHttpRequest(request, null);
62        assertTrue(httpRequest instanceof HttpGet);
63    }
64
65    @Test public void createPostRequest() throws Exception {
66        TestRequest.Post request = new TestRequest.Post();
67        assertEquals(request.getMethod(), Method.POST);
68
69        HttpUriRequest httpRequest = HttpClientStack.createHttpRequest(request, null);
70        assertTrue(httpRequest instanceof HttpPost);
71    }
72
73    @Test public void createPostRequestWithBody() throws Exception {
74        TestRequest.PostWithBody request = new TestRequest.PostWithBody();
75        assertEquals(request.getMethod(), Method.POST);
76
77        HttpUriRequest httpRequest = HttpClientStack.createHttpRequest(request, null);
78        assertTrue(httpRequest instanceof HttpPost);
79    }
80
81    @Test public void createPutRequest() throws Exception {
82        TestRequest.Put request = new TestRequest.Put();
83        assertEquals(request.getMethod(), Method.PUT);
84
85        HttpUriRequest httpRequest = HttpClientStack.createHttpRequest(request, null);
86        assertTrue(httpRequest instanceof HttpPut);
87    }
88
89    @Test public void createPutRequestWithBody() throws Exception {
90        TestRequest.PutWithBody request = new TestRequest.PutWithBody();
91        assertEquals(request.getMethod(), Method.PUT);
92
93        HttpUriRequest httpRequest = HttpClientStack.createHttpRequest(request, null);
94        assertTrue(httpRequest instanceof HttpPut);
95    }
96
97    @Test public void createDeleteRequest() throws Exception {
98        TestRequest.Delete request = new TestRequest.Delete();
99        assertEquals(request.getMethod(), Method.DELETE);
100
101        HttpUriRequest httpRequest = HttpClientStack.createHttpRequest(request, null);
102        assertTrue(httpRequest instanceof HttpDelete);
103    }
104
105    @Test public void createHeadRequest() throws Exception {
106        TestRequest.Head request = new TestRequest.Head();
107        assertEquals(request.getMethod(), Method.HEAD);
108
109        HttpUriRequest httpRequest = HttpClientStack.createHttpRequest(request, null);
110        assertTrue(httpRequest instanceof HttpHead);
111    }
112
113    @Test public void createOptionsRequest() throws Exception {
114        TestRequest.Options request = new TestRequest.Options();
115        assertEquals(request.getMethod(), Method.OPTIONS);
116
117        HttpUriRequest httpRequest = HttpClientStack.createHttpRequest(request, null);
118        assertTrue(httpRequest instanceof HttpOptions);
119    }
120
121    @Test public void createTraceRequest() throws Exception {
122        TestRequest.Trace request = new TestRequest.Trace();
123        assertEquals(request.getMethod(), Method.TRACE);
124
125        HttpUriRequest httpRequest = HttpClientStack.createHttpRequest(request, null);
126        assertTrue(httpRequest instanceof HttpTrace);
127    }
128
129    @Test public void createPatchRequest() throws Exception {
130        TestRequest.Patch request = new TestRequest.Patch();
131        assertEquals(request.getMethod(), Method.PATCH);
132
133        HttpUriRequest httpRequest = HttpClientStack.createHttpRequest(request, null);
134        assertTrue(httpRequest instanceof HttpPatch);
135    }
136
137    @Test public void createPatchRequestWithBody() throws Exception {
138        TestRequest.PatchWithBody request = new TestRequest.PatchWithBody();
139        assertEquals(request.getMethod(), Method.PATCH);
140
141        HttpUriRequest httpRequest = HttpClientStack.createHttpRequest(request, null);
142        assertTrue(httpRequest instanceof HttpPatch);
143    }
144}
145