29
29
30
30
import com .google .api .client .googleapis .util .Utils ;
31
31
import com .google .api .client .http .HttpRequest ;
32
+ import com .google .api .client .http .HttpRequestFactory ;
32
33
import com .google .api .client .http .HttpResponse ;
33
34
import com .google .api .client .http .HttpResponseInterceptor ;
34
35
import com .google .api .client .json .JsonParser ;
43
44
import com .google .firebase .FirebaseOptions ;
44
45
import com .google .firebase .TestOnlyImplFirebaseTrampolines ;
45
46
import com .google .firebase .auth .MockGoogleCredentials ;
47
+ import com .google .firebase .internal .TestApiClientUtils ;
46
48
import com .google .firebase .testing .MultiRequestMockHttpTransport ;
47
49
import java .io .ByteArrayOutputStream ;
48
50
import java .io .IOException ;
@@ -370,7 +372,7 @@ public void listIosAppsAsyncMultiplePages() throws Exception {
370
372
MockLowLevelHttpResponse secondRpcResponse = new MockLowLevelHttpResponse ();
371
373
secondRpcResponse .setContent (LIST_IOS_APPS_PAGE_2_RESPONSE );
372
374
serviceImpl = initServiceImpl (
373
- ImmutableList .< MockLowLevelHttpResponse > of (firstRpcResponse , secondRpcResponse ),
375
+ ImmutableList .of (firstRpcResponse , secondRpcResponse ),
374
376
interceptor );
375
377
376
378
List <IosApp > iosAppList = serviceImpl .listIosAppsAsync (PROJECT_ID ).get ();
@@ -400,7 +402,7 @@ public void createIosApp() throws Exception {
400
402
MockLowLevelHttpResponse thirdRpcResponse = new MockLowLevelHttpResponse ();
401
403
thirdRpcResponse .setContent (CREATE_IOS_GET_OPERATION_ATTEMPT_2_RESPONSE );
402
404
serviceImpl = initServiceImpl (
403
- ImmutableList .< MockLowLevelHttpResponse > of (
405
+ ImmutableList .of (
404
406
firstRpcResponse , secondRpcResponse , thirdRpcResponse ),
405
407
interceptor );
406
408
@@ -624,7 +626,7 @@ public void listAndroidAppsMultiplePages() throws Exception {
624
626
MockLowLevelHttpResponse secondRpcResponse = new MockLowLevelHttpResponse ();
625
627
secondRpcResponse .setContent (LIST_ANDROID_APPS_PAGE_2_RESPONSE );
626
628
serviceImpl = initServiceImpl (
627
- ImmutableList .< MockLowLevelHttpResponse > of (firstRpcResponse , secondRpcResponse ),
629
+ ImmutableList .of (firstRpcResponse , secondRpcResponse ),
628
630
interceptor );
629
631
630
632
List <AndroidApp > androidAppList = serviceImpl .listAndroidApps (PROJECT_ID );
@@ -652,7 +654,7 @@ public void listAndroidAppsAsyncMultiplePages() throws Exception {
652
654
MockLowLevelHttpResponse secondRpcResponse = new MockLowLevelHttpResponse ();
653
655
secondRpcResponse .setContent (LIST_ANDROID_APPS_PAGE_2_RESPONSE );
654
656
serviceImpl = initServiceImpl (
655
- ImmutableList .< MockLowLevelHttpResponse > of (firstRpcResponse , secondRpcResponse ),
657
+ ImmutableList .of (firstRpcResponse , secondRpcResponse ),
656
658
interceptor );
657
659
658
660
List <AndroidApp > androidAppList = serviceImpl .listAndroidAppsAsync (PROJECT_ID ).get ();
@@ -682,7 +684,7 @@ public void createAndroidApp() throws Exception {
682
684
MockLowLevelHttpResponse thirdRpcResponse = new MockLowLevelHttpResponse ();
683
685
thirdRpcResponse .setContent (CREATE_ANDROID_GET_OPERATION_ATTEMPT_2_RESPONSE );
684
686
serviceImpl = initServiceImpl (
685
- ImmutableList .< MockLowLevelHttpResponse > of (
687
+ ImmutableList .of (
686
688
firstRpcResponse , secondRpcResponse , thirdRpcResponse ),
687
689
interceptor );
688
690
@@ -714,7 +716,7 @@ public void createAndroidAppAsync() throws Exception {
714
716
MockLowLevelHttpResponse thirdRpcResponse = new MockLowLevelHttpResponse ();
715
717
thirdRpcResponse .setContent (CREATE_ANDROID_GET_OPERATION_ATTEMPT_2_RESPONSE );
716
718
serviceImpl = initServiceImpl (
717
- ImmutableList .< MockLowLevelHttpResponse > of (
719
+ ImmutableList .of (
718
720
firstRpcResponse , secondRpcResponse , thirdRpcResponse ),
719
721
interceptor );
720
722
@@ -915,10 +917,48 @@ public void deleteShaCertificateAsync() throws Exception {
915
917
checkRequestHeader (expectedUrl , HttpMethod .DELETE );
916
918
}
917
919
920
+ @ Test
921
+ public void testAuthAndRetriesSupport () {
922
+ FirebaseOptions options = new FirebaseOptions .Builder ()
923
+ .setCredentials (new MockGoogleCredentials ("test-token" ))
924
+ .setProjectId (PROJECT_ID )
925
+ .build ();
926
+ FirebaseApp app = FirebaseApp .initializeApp (options );
927
+
928
+ FirebaseProjectManagementServiceImpl serviceImpl =
929
+ new FirebaseProjectManagementServiceImpl (app );
930
+
931
+ TestApiClientUtils .assertAuthAndRetrySupport (serviceImpl .getRequestFactory ());
932
+ }
933
+
934
+ @ Test
935
+ public void testHttpRetries () throws Exception {
936
+ List <MockLowLevelHttpResponse > mockResponses = ImmutableList .of (
937
+ firstRpcResponse .setStatusCode (503 ).setContent ("{}" ),
938
+ new MockLowLevelHttpResponse ().setContent ("{}" ));
939
+ MockHttpTransport transport = new MultiRequestMockHttpTransport (mockResponses );
940
+ FirebaseOptions options = new FirebaseOptions .Builder ()
941
+ .setCredentials (new MockGoogleCredentials ("test-token" ))
942
+ .setProjectId (PROJECT_ID )
943
+ .setHttpTransport (transport )
944
+ .build ();
945
+ FirebaseApp app = FirebaseApp .initializeApp (options );
946
+ HttpRequestFactory requestFactory = TestApiClientUtils .delayBypassedRequestFactory (app );
947
+ FirebaseProjectManagementServiceImpl serviceImpl = new FirebaseProjectManagementServiceImpl (
948
+ app , new MockSleeper (), new MockScheduler (), requestFactory );
949
+ serviceImpl .setInterceptor (interceptor );
950
+
951
+ serviceImpl .deleteShaCertificate (SHA1_RESOURCE_NAME );
952
+
953
+ String expectedUrl = String .format (
954
+ "%s/v1beta1/%s" , FIREBASE_PROJECT_MANAGEMENT_URL , SHA1_RESOURCE_NAME );
955
+ checkRequestHeader (expectedUrl , HttpMethod .DELETE );
956
+ }
957
+
918
958
private static FirebaseProjectManagementServiceImpl initServiceImpl (
919
959
MockLowLevelHttpResponse mockResponse ,
920
960
MultiRequestTestResponseInterceptor interceptor ) {
921
- return initServiceImpl (ImmutableList .< MockLowLevelHttpResponse > of (mockResponse ), interceptor );
961
+ return initServiceImpl (ImmutableList .of (mockResponse ), interceptor );
922
962
}
923
963
924
964
private static FirebaseProjectManagementServiceImpl initServiceImpl (
@@ -931,8 +971,9 @@ private static FirebaseProjectManagementServiceImpl initServiceImpl(
931
971
.setHttpTransport (transport )
932
972
.build ();
933
973
FirebaseApp app = FirebaseApp .initializeApp (options );
934
- FirebaseProjectManagementServiceImpl serviceImpl =
935
- new FirebaseProjectManagementServiceImpl (app , new MockSleeper (), new MockScheduler ());
974
+ HttpRequestFactory requestFactory = TestApiClientUtils .retryDisabledRequestFactory (app );
975
+ FirebaseProjectManagementServiceImpl serviceImpl = new FirebaseProjectManagementServiceImpl (
976
+ app , new MockSleeper (), new MockScheduler (), requestFactory );
936
977
serviceImpl .setInterceptor (interceptor );
937
978
return serviceImpl ;
938
979
}
0 commit comments