2727import java .util .Map ;
2828
2929import org .androidannotations .test15 .AndroidAnnotationsTestRunner ;
30+ import org .androidannotations .test15 .rest .RequestTestBuilder .RequestTestBuilderExecutor ;
3031import org .apache .http .Header ;
3132import org .apache .http .message .BasicHeader ;
3233import org .junit .Test ;
@@ -49,16 +50,16 @@ public class MyServiceTest {
4950 private void addPendingResponse (String jsonResponse ) {
5051 addPendingResponse (jsonResponse , "_=_" );
5152 }
53+
5254 private void addPendingResponse (String jsonResponse , String ... cookies ) {
53- Header [] headers = new Header [1 + cookies .length / 2 ];
55+ Header [] headers = new Header [1 + cookies .length / 2 ];
5456 headers [0 ] = new BasicHeader ("content-type" , "application/json" );
55- for (int i = 0 , j = 1 ; i < cookies .length - 1 ; i += 2 , j ++) {
56- headers [j ] = new BasicHeader ("set-cookie" , cookies [i ] + "=" + cookies [i + 1 ]);
57+ for (int i = 0 , j = 1 ; i < cookies .length - 1 ; i += 2 , j ++) {
58+ headers [j ] = new BasicHeader ("set-cookie" , cookies [i ] + "=" + cookies [i + 1 ]);
5759 }
5860 Robolectric .addPendingHttpResponse (HttpStatus .OK .value (), jsonResponse .replaceAll ("'" , "\" " ), headers );
5961 }
6062
61-
6263 @ Test
6364 public void can_override_root_url () {
6465 MyService_ myService = new MyService_ ();
@@ -164,46 +165,45 @@ public void urlWithAParameterDeclaredTwiceTest() {
164165
165166 Event event1 = new Event (1 , "event1" );
166167 Event event2 = new Event (2 , "event2" );
167- Event [][] events = new Event [][] {{ event1 , event2 }, {event1 , event2 } };
168+ Event [][] events = new Event [][] { { event1 , event2 }, { event1 , event2 } };
168169
169- for (int i = 0 ; i < events .length ; i ++) {
170+ for (int i = 0 ; i < events .length ; i ++) {
170171
171172 assertEquals (results [i ].length , events [i ].length );
172173
173- for (int j = 0 ; j < events [i ].length ; j ++) {
174+ for (int j = 0 ; j < events [i ].length ; j ++) {
174175 assertEquals (events [i ][j ].getName (), results [i ][j ].getName ());
175176 assertEquals (events [i ][j ].getId (), results [i ][j ].getId ());
176177 }
177178 }
178179 }
179-
180+
180181 @ Test
181182 public void manualFullUrl () {
182-
183+
183184 MyService_ myService = new MyService_ ();
184185
185186 RestTemplate restTemplate = mock (RestTemplate .class );
186187 myService .setRestTemplate (restTemplate );
187188
188189 // make sure we used the full custom url.
189190 // this may be used like in Google's APIs
190- // to fetch an oauth token; Mockito doesn't
191- // return a response with the mock'd template,
192- // so we just use this weird "ping" endpoint
191+ // to fetch an oauth token; Mockito doesn't
192+ // return a response with the mock'd template,
193+ // so we just use this weird "ping" endpoint
193194 addPendingResponse ("fancyHeaderToken" );
194195 myService .setHttpBasicAuth ("fancyUser" , "fancierPassword" );
195196 myService .ping ();
196197 verify (restTemplate ).exchange (eq ("http://company.com/client/ping" ), Mockito .<HttpMethod > any (), Mockito .<HttpEntity <?>> any (), Mockito .<Class <Object >> any ());
197198 }
198-
199+
199200 @ Test
200201 public void cookieInUrl () {
201-
202202 final String xtValue = "1234" ;
203203 final String sjsaidValue = "7890" ;
204204 final String locationValue = "somePlace" ;
205205 final int yearValue = 2013 ;
206-
206+
207207 MyService_ myService = new MyService_ ();
208208
209209 RestTemplate restTemplate = mock (RestTemplate .class );
@@ -212,13 +212,13 @@ public void cookieInUrl() {
212212 addPendingResponse ("{'id':1,'name':'event1'}" );
213213
214214 // normally this is set by a call like authenticate()
215- // which is annotated with @SetsCookie
215+ // which is annotated with @SetsCookie
216216 myService .setCookie ("xt" , xtValue );
217217 myService .setCookie ("sjsaid" , sjsaidValue );
218218 myService .setHttpBasicAuth ("fancyUser" , "fancierPassword" );
219219 myService .getEventsVoid (locationValue , yearValue );
220220
221- ArgumentMatcher <HttpEntity <Void >> matcher = new ArgumentMatcher <HttpEntity <Void >>() {
221+ ArgumentMatcher <HttpEntity <Void >> matcher = new ArgumentMatcher <HttpEntity <Void >>() {
222222
223223 @ Override
224224 public boolean matches (Object argument ) {
@@ -235,34 +235,46 @@ public boolean matches(Object argument) {
235235 }
236236
237237 @ Test
238- public void authenticatedRequests () {
239- String xtValue = "1234" ;
240- String sjsaidValue = "5678" ;
241-
242- final String fancyHeaderName = "SomeFancyHeader" ;
243- final String fancyToken = "fancyHeaderToken" ;
244- myService .setHeader (fancyHeaderName , fancyToken );
245-
246- addPendingResponse ("[]" , "xt" , xtValue , "sjsaid" , sjsaidValue );
247- myService .authenticate ();
248-
249- assertEquals (xtValue , myService .getCookie ("xt" ));
250- assertEquals (sjsaidValue , myService .getCookie ("sjsaid" ));
251-
252- RestTemplate restTemplate = mock (RestTemplate .class );
253- myService .setRestTemplate (restTemplate );
238+ public void authenticate () {
239+ RequestTestBuilder .build () //
240+ .requestHeader ("SomeFancyHeader" , "aFancyHeader" ) //
241+ .responseCookie ("xt" , "1234" ) //
242+ .responseCookie ("sjsaid" , "5678" ) //
243+ .asserts (new RequestTestBuilderExecutor () {
244+ @ Override
245+ public void execute (MyService myService ) {
246+ myService .authenticate ();
247+ }
248+ });
249+ }
254250
255- // deletes
256- ArgumentMatcher <HttpEntity <Void >> matcher = new ArgumentMatcher <HttpEntity <Void >>() {
251+ @ Test
252+ public void removeEventWithRequires () {
253+ RequestTestBuilder .build () //
254+ .requestCookie ("myCookie" , "myCookieValue" ) //
255+ .requestHeader ("SomeFancyHeader" , "aFancyHeader" ) //
256+ .hasUrlVariables (true ) //
257+ .asserts (new RequestTestBuilderExecutor () {
258+ @ Override
259+ public void execute (MyService myService ) {
260+ myService .removeEventWithRequires (0 );
261+ }
262+ });
263+ }
257264
258- @ Override
259- public boolean matches (Object argument ) {
260- final String expected = fancyToken ;
261- return expected .equals (((HttpEntity <?>) argument ).getHeaders ().get (fancyHeaderName ).get (0 ));
262- }
263- };
264- addPendingResponse ("" );
265- myService .removeEventWithRequires (0 );
266- verify (restTemplate ).exchange (Mockito .anyString (), eq (HttpMethod .DELETE ), argThat (matcher ), Mockito .<Class <Object >> any (), Mockito .<Map <String , ?>> any ());
265+ @ Test
266+ public void updateEventWithRequires () {
267+ RequestTestBuilder .build () //
268+ .requestCookie ("myCookie" , "myCookieValue" ) //
269+ .requestHeader ("SomeFancyHeader" , "aFancyHeader" ) //
270+ .responseContent ("{'id':1,'name':'event1'}" ) //
271+ .hasUrlVariables (true ) //
272+ .asserts (new RequestTestBuilderExecutor () {
273+ @ Override
274+ public void execute (MyService myService ) {
275+ myService .updateEventWithRequires (0 );
276+ }
277+ });
267278 }
279+
268280}
0 commit comments