@@ -462,6 +462,31 @@ public void alwaysCloseResponseOnSuccessfulRequest() throws IOException {
462462 verify (response , times (1 )).close ();
463463 }
464464
465+ @ Test
466+ public void alwaysCloseResponseOnSuccessfulRequestAsync () throws Exception {
467+ OkHttpClient okClient = Mockito .mock (OkHttpClient .class );
468+ okhttp3 .Response response = Mockito .mock (okhttp3 .Response .class );
469+ Call call = Mockito .mock (Call .class );
470+
471+ doReturn (call ).when (okClient ).newCall (any ());
472+
473+ doAnswer (invocation -> {
474+ ((Callback ) invocation .getArgument (0 )).onResponse (call , response );
475+ return null ;
476+ }).when (call ).enqueue (any (Callback .class ));
477+
478+ Headers headers = Mockito .mock (Headers .class );
479+ when (response .headers ()).thenReturn (headers );
480+
481+ DefaultHttpClient client = new DefaultHttpClient (okClient );
482+ Auth0HttpRequest request = Auth0HttpRequest .newBuilder (server .url ("/users/" ).toString (), HttpMethod .POST )
483+ .withBody (HttpRequestBody .create ("application/json" , "{}" .getBytes ()))
484+ .build ();
485+
486+ client .sendRequestAsync (request ).get ();
487+ verify (response , times (1 )).close ();
488+ }
489+
465490 @ Test
466491 public void closesResponseOnAPIError () throws Exception {
467492 okhttp3 .Response response = Mockito .mock (okhttp3 .Response .class );
@@ -490,6 +515,36 @@ public void closesResponseOnAPIError() throws Exception {
490515 verify (response , times (1 )).close ();
491516 }
492517
518+ @ Test
519+ public void closesResponseOnAPIErrorAsync () throws Exception {
520+ OkHttpClient okClient = Mockito .mock (OkHttpClient .class );
521+ okhttp3 .Response response = Mockito .mock (okhttp3 .Response .class );
522+ Call call = Mockito .mock (Call .class );
523+
524+ doReturn (call ).when (okClient ).newCall (any ());
525+
526+ doAnswer (invocation -> {
527+ ((Callback ) invocation .getArgument (0 )).onResponse (call , response );
528+ return null ;
529+ }).when (call ).enqueue (any (Callback .class ));
530+
531+ Headers headers = Mockito .mock (Headers .class );
532+ when (response .headers ()).thenReturn (headers );
533+
534+ DefaultHttpClient client = new DefaultHttpClient (okClient );
535+ Auth0HttpRequest request = Auth0HttpRequest .newBuilder (server .url ("/users/" ).toString (), HttpMethod .POST )
536+ .withBody (HttpRequestBody .create ("application/json" , "{}" .getBytes ()))
537+ .build ();
538+
539+ MockResponse mockResponse = new MockResponse ()
540+ .setResponseCode (500 )
541+ .setBody ("server error" );
542+
543+ server .enqueue (mockResponse );
544+ client .sendRequestAsync (request ).get ();
545+ verify (response , times (1 )).close ();
546+ }
547+
493548 @ Test
494549 public void makesFormBodyPostRequest () throws Exception {
495550 Map <String , Object > params = new HashMap <>();
0 commit comments