Skip to content

Commit 9787c7d

Browse files
committed
Added tests, fixed empty body error
1 parent 6f21f15 commit 9787c7d

3 files changed

Lines changed: 94 additions & 1 deletion

File tree

scribejava-httpclient-okhttp/pom.xml

Lines changed: 6 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -25,6 +25,12 @@
2525
<artifactId>okhttp</artifactId>
2626
<version>3.4.2</version>
2727
</dependency>
28+
<dependency>
29+
<groupId>com.squareup.okhttp3</groupId>
30+
<artifactId>mockwebserver</artifactId>
31+
<version>3.4.2</version>
32+
<scope>test</scope>
33+
</dependency>
2834
</dependencies>
2935

3036
<build>

scribejava-httpclient-okhttp/src/main/java/com/github/scribejava/httpclient/okhttp/OkHttpHttpClient.java

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -47,7 +47,7 @@ public <T> Future<T> executeAsync(String userAgent, Map<String, String> headers,
4747

4848
// prepare body
4949
RequestBody body = null;
50-
if (bodyContents != null && !bodyContents.isEmpty() && HttpMethod.permitsRequestBody(method)) {
50+
if (bodyContents != null && HttpMethod.permitsRequestBody(method)) {
5151
final String contentType = headers.containsKey(AbstractRequest.CONTENT_TYPE) ?
5252
headers.get(AbstractRequest.CONTENT_TYPE) : DEFAULT_CONTENT_TYPE;
5353
body = RequestBody.create(MediaType.parse(contentType), bodyContents);
Lines changed: 87 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,87 @@
1+
package com.github.scribejava.httpclient.okhttp;
2+
3+
import com.github.scribejava.core.model.*;
4+
import com.github.scribejava.core.oauth.OAuth20Service;
5+
import com.github.scribejava.core.oauth.OAuthService;
6+
import okhttp3.HttpUrl;
7+
import okhttp3.OkHttpClient;
8+
import okhttp3.mockwebserver.MockResponse;
9+
import okhttp3.mockwebserver.MockWebServer;
10+
import okhttp3.mockwebserver.RecordedRequest;
11+
import org.junit.Before;
12+
import org.junit.Test;
13+
14+
import java.net.MalformedURLException;
15+
import java.util.concurrent.TimeUnit;
16+
17+
import static org.junit.Assert.assertEquals;
18+
19+
public class OkHttpHttpClientTest {
20+
private OAuthService<?> oAuthService;
21+
22+
@Before
23+
public void setUp() throws MalformedURLException {
24+
HttpClient client = new OkHttpHttpClient(new OkHttpClient());
25+
oAuthService = new OAuth20Service(null,
26+
new OAuthConfig("test", "test", null, null, null, null, null, null, null, null, null, null, client));
27+
}
28+
29+
30+
@Test
31+
public void shouldSendGetRequest() throws Exception {
32+
String expectedResponseBody = "response body";
33+
34+
MockWebServer server = new MockWebServer();
35+
server.enqueue(new MockResponse().setBody(expectedResponseBody));
36+
server.start();
37+
38+
HttpUrl baseUrl = server.url("/testUrl");
39+
40+
OAuthRequestAsync request = new OAuthRequestAsync(Verb.GET, baseUrl.toString(), oAuthService);
41+
Response response = request.sendAsync(null).get(30, TimeUnit.SECONDS);
42+
43+
assertEquals(expectedResponseBody, response.getBody());
44+
45+
RecordedRequest recordedRequest = server.takeRequest();
46+
assertEquals("GET", recordedRequest.getMethod());
47+
48+
server.shutdown();
49+
}
50+
51+
@Test
52+
public void shouldSendPostRequest() throws Exception {
53+
String expectedResponseBody = "response body";
54+
String expectedRequestBody = "request body";
55+
56+
MockWebServer server = new MockWebServer();
57+
server.enqueue(new MockResponse().setBody(expectedResponseBody));
58+
server.enqueue(new MockResponse().setBody(expectedResponseBody));
59+
server.start();
60+
61+
HttpUrl baseUrl = server.url("/testUrl");
62+
63+
// request with body
64+
OAuthRequestAsync request = new OAuthRequestAsync(Verb.POST, baseUrl.toString(), oAuthService);
65+
request.addPayload(expectedRequestBody);
66+
Response response = request.sendAsync(null).get(30, TimeUnit.SECONDS);
67+
68+
assertEquals(expectedResponseBody, response.getBody());
69+
70+
RecordedRequest recordedRequest = server.takeRequest();
71+
assertEquals("POST", recordedRequest.getMethod());
72+
assertEquals(expectedRequestBody, recordedRequest.getBody().readUtf8());
73+
74+
75+
// request with empty body
76+
request = new OAuthRequestAsync(Verb.POST, baseUrl.toString(), oAuthService);
77+
response = request.sendAsync(null).get(30, TimeUnit.SECONDS);
78+
79+
assertEquals(expectedResponseBody, response.getBody());
80+
81+
recordedRequest = server.takeRequest();
82+
assertEquals("POST", recordedRequest.getMethod());
83+
assertEquals("", recordedRequest.getBody().readUtf8());
84+
85+
server.shutdown();
86+
}
87+
}

0 commit comments

Comments
 (0)