@@ -56,10 +56,8 @@ public class HttpRequestRunnableTest {
56
56
private static HttpJsonCallOptions fakeCallOptions ;
57
57
private static CatMessage catMessage ;
58
58
private static final String ENDPOINT = "https://www.googleapis.com/animals/v1/projects/" ;
59
- private static HttpRequestRunnable httpRequestRunnable ;
60
59
private static HttpRequestFormatter <CatMessage > catFormatter ;
61
60
private static HttpResponseParser <EmptyMessage > catParser ;
62
- private static ApiMethodDescriptor <CatMessage , EmptyMessage > methodDescriptor ;
63
61
private static PathTemplate nameTemplate = PathTemplate .create ("name/{name}" );
64
62
private static Set <String > queryParams =
65
63
Sets .newTreeSet (Lists .newArrayList ("food" , "size" , "gibberish" ));
@@ -139,29 +137,29 @@ public String serialize(EmptyMessage response) {
139
137
return null ;
140
138
}
141
139
};
140
+ }
142
141
143
- methodDescriptor =
142
+ @ Test
143
+ public void testRequestUrl () throws IOException {
144
+ ApiMethodDescriptor <CatMessage , EmptyMessage > methodDescriptor =
144
145
ApiMethodDescriptor .<CatMessage , EmptyMessage >newBuilder ()
145
146
.setFullMethodName ("house.cat.get" )
146
147
.setHttpMethod (null )
147
148
.setRequestFormatter (catFormatter )
148
149
.setResponseParser (catParser )
149
150
.build ();
150
151
151
- httpRequestRunnable =
152
+ HttpRequestRunnable < CatMessage , EmptyMessage > httpRequestRunnable =
152
153
HttpRequestRunnable .<CatMessage , EmptyMessage >newBuilder ()
153
154
.setHttpJsonCallOptions (fakeCallOptions )
154
155
.setEndpoint (ENDPOINT )
155
156
.setRequest (catMessage )
156
157
.setApiMethodDescriptor (methodDescriptor )
157
158
.setHttpTransport (new MockHttpTransport ())
158
159
.setJsonFactory (new GsonFactory ())
159
- .setResponseFuture (SettableApiFuture .< EmptyMessage > create ())
160
+ .setResponseFuture (SettableApiFuture .create ())
160
161
.build ();
161
- }
162
162
163
- @ Test
164
- public void testRequestUrl () throws IOException {
165
163
HttpRequest httpRequest = httpRequestRunnable .createHttpRequest ();
166
164
Truth .assertThat (httpRequest .getContent ()).isInstanceOf (EmptyContent .class );
167
165
String expectedUrl = ENDPOINT + "name/feline" + "?food=bird&food=mouse&size=small" ;
@@ -170,21 +168,60 @@ public void testRequestUrl() throws IOException {
170
168
171
169
@ Test
172
170
public void testRequestUrlUnnormalized () throws IOException {
173
- httpRequestRunnable =
171
+ ApiMethodDescriptor <CatMessage , EmptyMessage > methodDescriptor =
172
+ ApiMethodDescriptor .<CatMessage , EmptyMessage >newBuilder ()
173
+ .setFullMethodName ("house.cat.get" )
174
+ .setHttpMethod ("PUT" )
175
+ .setRequestFormatter (catFormatter )
176
+ .setResponseParser (catParser )
177
+ .build ();
178
+
179
+ HttpRequestRunnable <CatMessage , EmptyMessage > httpRequestRunnable =
180
+ HttpRequestRunnable .<CatMessage , EmptyMessage >newBuilder ()
181
+ .setHttpJsonCallOptions (fakeCallOptions )
182
+ .setEndpoint ("www.googleapis.com/animals/v1/projects" )
183
+ .setRequest (catMessage )
184
+ .setApiMethodDescriptor (methodDescriptor )
185
+ .setHttpTransport (new MockHttpTransport ())
186
+ .setJsonFactory (new GsonFactory ())
187
+ .setResponseFuture (SettableApiFuture .create ())
188
+ .build ();
189
+ HttpRequest httpRequest = httpRequestRunnable .createHttpRequest ();
190
+ Truth .assertThat (httpRequest .getContent ()).isInstanceOf (EmptyContent .class );
191
+ String expectedUrl =
192
+ "https://www.googleapis.com/animals/v1/projects/name/feline?food=bird&food=mouse&size=small" ;
193
+ Truth .assertThat (httpRequest .getUrl ().toString ()).isEqualTo (expectedUrl );
194
+ Truth .assertThat (httpRequest .getRequestMethod ()).isEqualTo ("PUT" );
195
+ Truth .assertThat (httpRequest .getHeaders ().get ("X-HTTP-Method-Override" )).isNull ();
196
+ }
197
+
198
+ @ Test
199
+ public void testRequestUrlUnnormalizedPatch () throws IOException {
200
+ ApiMethodDescriptor <CatMessage , EmptyMessage > methodDescriptor =
201
+ ApiMethodDescriptor .<CatMessage , EmptyMessage >newBuilder ()
202
+ .setFullMethodName ("house.cat.get" )
203
+ .setHttpMethod ("PATCH" )
204
+ .setRequestFormatter (catFormatter )
205
+ .setResponseParser (catParser )
206
+ .build ();
207
+
208
+ HttpRequestRunnable <CatMessage , EmptyMessage > httpRequestRunnable =
174
209
HttpRequestRunnable .<CatMessage , EmptyMessage >newBuilder ()
175
210
.setHttpJsonCallOptions (fakeCallOptions )
176
211
.setEndpoint ("www.googleapis.com/animals/v1/projects" )
177
212
.setRequest (catMessage )
178
213
.setApiMethodDescriptor (methodDescriptor )
179
214
.setHttpTransport (new MockHttpTransport ())
180
215
.setJsonFactory (new GsonFactory ())
181
- .setResponseFuture (SettableApiFuture .< EmptyMessage > create ())
216
+ .setResponseFuture (SettableApiFuture .create ())
182
217
.build ();
183
218
HttpRequest httpRequest = httpRequestRunnable .createHttpRequest ();
184
219
Truth .assertThat (httpRequest .getContent ()).isInstanceOf (EmptyContent .class );
185
220
String expectedUrl =
186
221
"https://www.googleapis.com/animals/v1/projects/name/feline?food=bird&food=mouse&size=small" ;
187
222
Truth .assertThat (httpRequest .getUrl ().toString ()).isEqualTo (expectedUrl );
223
+ Truth .assertThat (httpRequest .getRequestMethod ()).isEqualTo ("POST" );
224
+ Truth .assertThat (httpRequest .getHeaders ().get ("X-HTTP-Method-Override" )).isEqualTo ("PATCH" );
188
225
}
189
226
190
227
// TODO(andrealin): test request body
0 commit comments