@@ -56,10 +56,8 @@ public class HttpRequestRunnableTest {
5656 private static HttpJsonCallOptions fakeCallOptions ;
5757 private static CatMessage catMessage ;
5858 private static final String ENDPOINT = "https://www.googleapis.com/animals/v1/projects/" ;
59- private static HttpRequestRunnable httpRequestRunnable ;
6059 private static HttpRequestFormatter <CatMessage > catFormatter ;
6160 private static HttpResponseParser <EmptyMessage > catParser ;
62- private static ApiMethodDescriptor <CatMessage , EmptyMessage > methodDescriptor ;
6361 private static PathTemplate nameTemplate = PathTemplate .create ("name/{name}" );
6462 private static Set <String > queryParams =
6563 Sets .newTreeSet (Lists .newArrayList ("food" , "size" , "gibberish" ));
@@ -139,29 +137,29 @@ public String serialize(EmptyMessage response) {
139137 return null ;
140138 }
141139 };
140+ }
142141
143- methodDescriptor =
142+ @ Test
143+ public void testRequestUrl () throws IOException {
144+ ApiMethodDescriptor <CatMessage , EmptyMessage > methodDescriptor =
144145 ApiMethodDescriptor .<CatMessage , EmptyMessage >newBuilder ()
145146 .setFullMethodName ("house.cat.get" )
146147 .setHttpMethod (null )
147148 .setRequestFormatter (catFormatter )
148149 .setResponseParser (catParser )
149150 .build ();
150151
151- httpRequestRunnable =
152+ HttpRequestRunnable < CatMessage , EmptyMessage > httpRequestRunnable =
152153 HttpRequestRunnable .<CatMessage , EmptyMessage >newBuilder ()
153154 .setHttpJsonCallOptions (fakeCallOptions )
154155 .setEndpoint (ENDPOINT )
155156 .setRequest (catMessage )
156157 .setApiMethodDescriptor (methodDescriptor )
157158 .setHttpTransport (new MockHttpTransport ())
158159 .setJsonFactory (new GsonFactory ())
159- .setResponseFuture (SettableApiFuture .< EmptyMessage > create ())
160+ .setResponseFuture (SettableApiFuture .create ())
160161 .build ();
161- }
162162
163- @ Test
164- public void testRequestUrl () throws IOException {
165163 HttpRequest httpRequest = httpRequestRunnable .createHttpRequest ();
166164 Truth .assertThat (httpRequest .getContent ()).isInstanceOf (EmptyContent .class );
167165 String expectedUrl = ENDPOINT + "name/feline" + "?food=bird&food=mouse&size=small" ;
@@ -170,21 +168,60 @@ public void testRequestUrl() throws IOException {
170168
171169 @ Test
172170 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 =
174209 HttpRequestRunnable .<CatMessage , EmptyMessage >newBuilder ()
175210 .setHttpJsonCallOptions (fakeCallOptions )
176211 .setEndpoint ("www.googleapis.com/animals/v1/projects" )
177212 .setRequest (catMessage )
178213 .setApiMethodDescriptor (methodDescriptor )
179214 .setHttpTransport (new MockHttpTransport ())
180215 .setJsonFactory (new GsonFactory ())
181- .setResponseFuture (SettableApiFuture .< EmptyMessage > create ())
216+ .setResponseFuture (SettableApiFuture .create ())
182217 .build ();
183218 HttpRequest httpRequest = httpRequestRunnable .createHttpRequest ();
184219 Truth .assertThat (httpRequest .getContent ()).isInstanceOf (EmptyContent .class );
185220 String expectedUrl =
186221 "https://www.googleapis.com/animals/v1/projects/name/feline?food=bird&food=mouse&size=small" ;
187222 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" );
188225 }
189226
190227 // TODO(andrealin): test request body
0 commit comments