@@ -78,37 +78,172 @@ public void shouldSendGetRequest() throws Exception {
78
78
}
79
79
80
80
@ Test
81
- public void shouldSendPostRequest ()throws Exception {
81
+ public void shouldSendPostRequestWithEmptyBody ()throws Exception {
82
+ final String expectedResponseBody ="response body for test shouldSendPostRequest" ;
83
+ final String expectedRequestBody ="" ;
84
+
85
+ final MockWebServer server =new MockWebServer ();
86
+ server .enqueue (new MockResponse ().setBody (expectedResponseBody ));
87
+ server .start ();
88
+
89
+ final HttpUrl baseUrl =server .url ("/testUrl" );
90
+
91
+ final OAuthRequest request =new OAuthRequest (Verb .POST ,baseUrl .toString ());
92
+ try (Response response =oAuthService .execute (request ,null ).get (30 ,TimeUnit .SECONDS )) {
93
+ assertEquals (expectedResponseBody ,response .getBody ());
94
+ }
95
+
96
+ final RecordedRequest recordedRequest =server .takeRequest ();
97
+ assertEquals ("POST" ,recordedRequest .getMethod ());
98
+ assertEquals (expectedRequestBody ,recordedRequest .getBody ().readUtf8 ());
99
+
100
+ server .shutdown ();
101
+ }
102
+
103
+ @ Test
104
+ public void shouldSendPostRequestWithStringBody ()throws Exception {
82
105
final String expectedResponseBody ="response body for test shouldSendPostRequest" ;
83
106
final String expectedRequestBody ="request body" ;
84
107
85
108
final MockWebServer server =new MockWebServer ();
86
109
server .enqueue (new MockResponse ().setBody (expectedResponseBody ));
110
+ server .start ();
111
+
112
+ final HttpUrl baseUrl =server .url ("/testUrl" );
113
+
114
+ final OAuthRequest request =new OAuthRequest (Verb .POST ,baseUrl .toString ());
115
+ request .setPayload (expectedRequestBody );
116
+ try (Response response =oAuthService .execute (request ,null ).get (30 ,TimeUnit .SECONDS )) {
117
+ assertEquals (expectedResponseBody ,response .getBody ());
118
+ }
119
+
120
+ final RecordedRequest recordedRequest =server .takeRequest ();
121
+ assertEquals ("POST" ,recordedRequest .getMethod ());
122
+ assertEquals (expectedRequestBody ,recordedRequest .getBody ().readUtf8 ());
123
+
124
+ server .shutdown ();
125
+ }
126
+
127
+ @ Test
128
+ public void shouldSendPostRequestWithStringBodyWithSpecialChars ()throws Exception {
129
+ final String expectedResponseBody ="response body for test shouldSendPostRequest" ;
130
+ final String expectedRequestBody ="~/!@#$%^&*()_+//\r \n %2F&" ;
131
+
132
+ final MockWebServer server =new MockWebServer ();
87
133
server .enqueue (new MockResponse ().setBody (expectedResponseBody ));
88
134
server .start ();
89
135
90
136
final HttpUrl baseUrl =server .url ("/testUrl" );
91
137
92
- // request with body
93
- OAuthRequest request =new OAuthRequest (Verb .POST ,baseUrl .toString ());
138
+ final OAuthRequest request =new OAuthRequest (Verb .POST ,baseUrl .toString ());
94
139
request .setPayload (expectedRequestBody );
95
140
try (Response response =oAuthService .execute (request ,null ).get (30 ,TimeUnit .SECONDS )) {
96
141
assertEquals (expectedResponseBody ,response .getBody ());
97
142
}
98
143
99
- RecordedRequest recordedRequest =server .takeRequest ();
144
+ final RecordedRequest recordedRequest =server .takeRequest ();
145
+ assertEquals ("POST" ,recordedRequest .getMethod ());
146
+ assertEquals (expectedRequestBody ,recordedRequest .getBody ().readUtf8 ());
147
+
148
+ server .shutdown ();
149
+ }
150
+
151
+ @ Test
152
+ public void shouldSendPostRequestWithByteBodyBody ()throws Exception {
153
+ final String expectedResponseBody ="response body for test shouldSendPostRequest" ;
154
+ final String expectedRequestBody ="request body" ;
155
+
156
+ final MockWebServer server =new MockWebServer ();
157
+ server .enqueue (new MockResponse ().setBody (expectedResponseBody ));
158
+ server .start ();
159
+
160
+ final HttpUrl baseUrl =server .url ("/testUrl" );
161
+
162
+ final OAuthRequest request =new OAuthRequest (Verb .POST ,baseUrl .toString ());
163
+ request .setPayload (expectedRequestBody .getBytes ());
164
+ try (Response response =oAuthService .execute (request ,null ).get (30 ,TimeUnit .SECONDS )) {
165
+ assertEquals (expectedResponseBody ,response .getBody ());
166
+ }
167
+
168
+ final RecordedRequest recordedRequest =server .takeRequest ();
169
+ assertEquals ("POST" ,recordedRequest .getMethod ());
170
+ assertEquals (expectedRequestBody ,recordedRequest .getBody ().readUtf8 ());
171
+
172
+ server .shutdown ();
173
+ }
174
+
175
+ @ Test
176
+ public void shouldSendPostRequestWithByteBodyWithSpecialChars ()throws Exception {
177
+ final String expectedResponseBody ="response body for test shouldSendPostRequest" ;
178
+ final String expectedRequestBody ="~/!@#$%^&*()_+//\r \n %2F&" ;
179
+
180
+ final MockWebServer server =new MockWebServer ();
181
+ server .enqueue (new MockResponse ().setBody (expectedResponseBody ));
182
+ server .start ();
183
+
184
+ final HttpUrl baseUrl =server .url ("/testUrl" );
185
+
186
+ final OAuthRequest request =new OAuthRequest (Verb .POST ,baseUrl .toString ());
187
+ request .setPayload (expectedRequestBody .getBytes ());
188
+ try (Response response =oAuthService .execute (request ,null ).get (30 ,TimeUnit .SECONDS )) {
189
+ assertEquals (expectedResponseBody ,response .getBody ());
190
+ }
191
+
192
+ final RecordedRequest recordedRequest =server .takeRequest ();
193
+ assertEquals ("POST" ,recordedRequest .getMethod ());
194
+ assertEquals (expectedRequestBody ,recordedRequest .getBody ().readUtf8 ());
195
+
196
+ server .shutdown ();
197
+ }
198
+
199
+ @ Test
200
+ public void shouldSendPostRequestWithBodyParamsBody ()throws Exception {
201
+ final String expectedResponseBody ="response body for test shouldSendPostRequest" ;
202
+ final String expectedRequestBodyParamName ="request body param name" ;
203
+ final String expectedRequestBodyParamValue ="request body param value" ;
204
+ final String expectedRequestBody =expectedRequestBodyParamName +'=' +expectedRequestBodyParamValue ;
205
+
206
+ final MockWebServer server =new MockWebServer ();
207
+ server .enqueue (new MockResponse ().setBody (expectedResponseBody ));
208
+ server .start ();
209
+
210
+ final HttpUrl baseUrl =server .url ("/testUrl" );
211
+
212
+ final OAuthRequest request =new OAuthRequest (Verb .POST ,baseUrl .toString ());
213
+ request .addBodyParameter (expectedRequestBodyParamName ,expectedRequestBodyParamValue );
214
+ try (Response response =oAuthService .execute (request ,null ).get (30 ,TimeUnit .SECONDS )) {
215
+ assertEquals (expectedResponseBody ,response .getBody ());
216
+ }
217
+
218
+ final RecordedRequest recordedRequest =server .takeRequest ();
100
219
assertEquals ("POST" ,recordedRequest .getMethod ());
101
220
assertEquals (expectedRequestBody ,recordedRequest .getBody ().readUtf8 ());
102
221
103
- // request with empty body
104
- request =new OAuthRequest (Verb .POST ,baseUrl .toString ());
222
+ server .shutdown ();
223
+ }
224
+
225
+ @ Test
226
+ public void shouldSendPostRequestWithBodyParamsBodyWithSpecialChars ()throws Exception {
227
+ final String expectedResponseBody ="response body for test shouldSendPostRequest" ;
228
+ final String expectedRequestBodyParamName ="~/!@#$%^&*()_+//\r \n %2F&name" ;
229
+ final String expectedRequestBodyParamValue ="~/!@#$%^&*()_+//\r \n %2F&value" ;
230
+ final String expectedRequestBody =expectedRequestBodyParamName +'=' +expectedRequestBodyParamValue ;
231
+
232
+ final MockWebServer server =new MockWebServer ();
233
+ server .enqueue (new MockResponse ().setBody (expectedResponseBody ));
234
+ server .start ();
235
+
236
+ final HttpUrl baseUrl =server .url ("/testUrl" );
237
+
238
+ final OAuthRequest request =new OAuthRequest (Verb .POST ,baseUrl .toString ());
239
+ request .addBodyParameter (expectedRequestBodyParamName ,expectedRequestBodyParamValue );
105
240
try (Response response =oAuthService .execute (request ,null ).get (30 ,TimeUnit .SECONDS )) {
106
241
assertEquals (expectedResponseBody ,response .getBody ());
107
242
}
108
243
109
- recordedRequest =server .takeRequest ();
244
+ final RecordedRequest recordedRequest =server .takeRequest ();
110
245
assertEquals ("POST" ,recordedRequest .getMethod ());
111
- assertEquals ("" ,recordedRequest .getBody ().readUtf8 ());
246
+ assertEquals (expectedRequestBody ,recordedRequest .getBody ().readUtf8 ());
112
247
113
248
server .shutdown ();
114
249
}