Skip to content

Commit f11660b

Browse files
committed
Fix test and add static imports from TestUtils
1 parent 960ed56 commit f11660b

File tree

1 file changed

+39
-33
lines changed

1 file changed

+39
-33
lines changed

firebase-appdistribution/src/test/java/com/google/firebase/appdistribution/impl/FirebaseAppDistributionServiceImplTest.java

Lines changed: 39 additions & 33 deletions
Original file line numberDiff line numberDiff line change
@@ -26,6 +26,11 @@
2626
import static com.google.firebase.appdistribution.impl.ErrorMessages.NETWORK_ERROR;
2727
import static com.google.firebase.appdistribution.impl.ErrorMessages.RELEASE_NOT_FOUND_ERROR;
2828
import static com.google.firebase.appdistribution.impl.ErrorMessages.UPDATE_CANCELED;
29+
import static com.google.firebase.appdistribution.impl.TestUtils.awaitAsyncOperations;
30+
import static com.google.firebase.appdistribution.impl.TestUtils.awaitTask;
31+
import static com.google.firebase.appdistribution.impl.TestUtils.awaitTaskFailure;
32+
import static com.google.firebase.appdistribution.impl.TestUtils.awaitTermination;
33+
import static com.google.firebase.appdistribution.impl.TestUtils.mockForegroundActivity;
2934
import static org.junit.Assert.assertEquals;
3035
import static org.junit.Assert.assertFalse;
3136
import static org.junit.Assert.assertNull;
@@ -181,7 +186,7 @@ public void setup() throws FirebaseAppDistributionException {
181186
shadowPackageManager.installPackage(packageInfo);
182187

183188
activity = spy(Robolectric.buildActivity(TestActivity.class).create().get());
184-
TestUtils.mockForegroundActivity(mockLifecycleNotifier, activity);
189+
mockForegroundActivity(mockLifecycleNotifier, activity);
185190
}
186191

187192
@Test
@@ -194,7 +199,7 @@ public void checkForNewRelease_whenCheckForNewReleaseFails_throwsError() {
194199

195200
Task<AppDistributionRelease> task = firebaseAppDistribution.checkForNewRelease();
196201

197-
TestUtils.awaitTaskFailure(task, NETWORK_FAILURE, JSON_PARSING_ERROR);
202+
awaitTaskFailure(task, NETWORK_FAILURE, JSON_PARSING_ERROR);
198203
}
199204

200205
@Test
@@ -203,7 +208,7 @@ public void checkForNewRelease_testerIsNotSignedIn_taskFails() {
203208

204209
Task<AppDistributionRelease> task = firebaseAppDistribution.checkForNewRelease();
205210

206-
TestUtils.awaitTaskFailure(task, AUTHENTICATION_FAILURE, "Tester is not signed in");
211+
awaitTaskFailure(task, AUTHENTICATION_FAILURE, "Tester is not signed in");
207212
}
208213

209214
@Test
@@ -213,7 +218,7 @@ public void checkForNewRelease_whenCheckForNewReleaseSucceeds_returnsRelease()
213218
when(mockNewReleaseFetcher.checkForNewRelease()).thenReturn(Tasks.forResult(internalRelease));
214219

215220
Task<AppDistributionRelease> task = firebaseAppDistribution.checkForNewRelease();
216-
TestUtils.awaitTask(task);
221+
awaitTask(task);
217222

218223
assertEquals(TEST_RELEASE_NEWER_AAB, task.getResult());
219224
assertEquals(internalRelease, firebaseAppDistribution.getCachedNewRelease().getSnapshot());
@@ -228,8 +233,8 @@ public void checkForNewRelease_authenticationFailure_signOutTester() throws Inte
228233

229234
Task<AppDistributionRelease> task = firebaseAppDistribution.checkForNewRelease();
230235

231-
TestUtils.awaitTaskFailure(task, AUTHENTICATION_FAILURE, "Test");
232-
TestUtils.awaitTermination(testExecutor);
236+
awaitTaskFailure(task, AUTHENTICATION_FAILURE, "Test");
237+
awaitTermination(testExecutor);
233238
verify(mockSignInStorage, times(1)).setSignInStatus(false);
234239
}
235240

@@ -239,7 +244,7 @@ public void updateApp_whenNotSignedIn_throwsError() {
239244

240245
UpdateTask updateTask = firebaseAppDistribution.updateApp();
241246

242-
TestUtils.awaitTaskFailure(updateTask, AUTHENTICATION_FAILURE, "Tester is not signed in");
247+
awaitTaskFailure(updateTask, AUTHENTICATION_FAILURE, "Tester is not signed in");
243248
}
244249

245250
@Test
@@ -249,7 +254,7 @@ public void updateIfNewReleaseAvailable_whenNewAabReleaseAvailable_showsUpdateDi
249254
.thenReturn(Tasks.forResult((TEST_RELEASE_NEWER_AAB_INTERNAL)));
250255

251256
firebaseAppDistribution.updateIfNewReleaseAvailable();
252-
TestUtils.awaitAsyncOperations(testExecutor);
257+
awaitAsyncOperations(testExecutor);
253258

254259
AlertDialog dialog = assertAlertDialogShown();
255260
assertEquals(
@@ -269,7 +274,7 @@ public void updateIfNewReleaseAvailable_fromABackgroundThread_showsUpdateDialog(
269274

270275
ExecutorService executorService = Executors.newSingleThreadExecutor();
271276
executorService.submit(() -> firebaseAppDistribution.updateIfNewReleaseAvailable());
272-
TestUtils.awaitAsyncOperations(executorService);
277+
awaitAsyncOperations(executorService);
273278

274279
assertAlertDialogShown();
275280
}
@@ -283,7 +288,7 @@ public void updateIfNewReleaseAvailable_whenReleaseNotesEmpty_doesNotShowRelease
283288
(TEST_RELEASE_NEWER_AAB_INTERNAL.toBuilder().setReleaseNotes("").build())));
284289

285290
firebaseAppDistribution.updateIfNewReleaseAvailable();
286-
TestUtils.awaitAsyncOperations(testExecutor);
291+
awaitAsyncOperations(testExecutor);
287292

288293
AlertDialog dialog = assertAlertDialogShown();
289294
assertEquals(
@@ -302,7 +307,7 @@ public void updateIfNewReleaseAvailable_whenNoReleaseAvailable_updateDialogNotSh
302307

303308
List<UpdateProgress> progressEvents = new ArrayList<>();
304309
task.addOnProgressListener(FirebaseExecutors.directExecutor(), progressEvents::add);
305-
TestUtils.awaitTermination(testExecutor);
310+
awaitTermination(testExecutor);
306311

307312
assertEquals(1, progressEvents.size());
308313
assertEquals(UpdateStatus.NEW_RELEASE_NOT_AVAILABLE, progressEvents.get(0).getUpdateStatus());
@@ -318,7 +323,7 @@ public void updateIfNewReleaseAvailable_whenActivityBackgrounded_updateDialogNot
318323

319324
List<UpdateProgress> progressEvents = new ArrayList<>();
320325
task.addOnProgressListener(FirebaseExecutors.directExecutor(), progressEvents::add);
321-
TestUtils.awaitTermination(testExecutor);
326+
awaitTermination(testExecutor);
322327

323328
assertEquals(1, progressEvents.size());
324329
assertEquals(UpdateStatus.NEW_RELEASE_NOT_AVAILABLE, progressEvents.get(0).getUpdateStatus());
@@ -339,7 +344,7 @@ public void updateIfNewReleaseAvailable_whenSignInCancelled_checkForUpdateNotCal
339344
AlertDialog signInDialog = assertAlertDialogShown();
340345
signInDialog.getButton(DialogInterface.BUTTON_POSITIVE).performClick();
341346

342-
TestUtils.awaitTaskFailure(
347+
awaitTaskFailure(
343348
updateTask, AUTHENTICATION_CANCELED, ErrorMessages.AUTHENTICATION_CANCELED);
344349
verify(mockTesterSignInManager, times(1)).signInTester();
345350
verify(mockNewReleaseFetcher, never()).checkForNewRelease();
@@ -359,7 +364,7 @@ public void updateIfNewReleaseAvailable_whenSignInFailed_checkForUpdateNotCalled
359364
AlertDialog signInDialog = assertAlertDialogShown();
360365
signInDialog.getButton(DialogInterface.BUTTON_POSITIVE).performClick();
361366

362-
TestUtils.awaitTaskFailure(updateTask, AUTHENTICATION_FAILURE, AUTHENTICATION_ERROR);
367+
awaitTaskFailure(updateTask, AUTHENTICATION_FAILURE, AUTHENTICATION_ERROR);
363368
}
364369

365370
@Test
@@ -369,12 +374,12 @@ public void updateIfNewReleaseAvailable_whenDialogDismissed_taskFails()
369374
.thenReturn(Tasks.forResult(TEST_RELEASE_NEWER_AAB_INTERNAL));
370375

371376
UpdateTask updateTask = firebaseAppDistribution.updateIfNewReleaseAvailable();
372-
TestUtils.awaitAsyncOperations(testExecutor);
377+
awaitAsyncOperations(testExecutor);
373378

374379
AlertDialog updateDialog = assertAlertDialogShown();
375380
updateDialog.getButton(AlertDialog.BUTTON_NEGATIVE).performClick(); // dismiss dialog
376381

377-
TestUtils.awaitTaskFailure(updateTask, INSTALLATION_CANCELED, UPDATE_CANCELED);
382+
awaitTaskFailure(updateTask, INSTALLATION_CANCELED, UPDATE_CANCELED);
378383
assertFalse(updateDialog.isShowing());
379384
}
380385

@@ -387,15 +392,15 @@ public void updateIfNewReleaseAvailable_whenDialogCanceled_taskFails()
387392
UpdateTask updateTask = firebaseAppDistribution.updateIfNewReleaseAvailable();
388393

389394
// Task callbacks happen on the executor
390-
TestUtils.awaitTermination(testExecutor);
395+
awaitTermination(testExecutor);
391396

392397
// Show update confirmation dialog happens on the UI thread
393398
shadowOf(getMainLooper()).idle();
394399

395400
AlertDialog updateDialog = assertAlertDialogShown();
396401
updateDialog.onBackPressed(); // cancels the dialog
397402

398-
TestUtils.awaitTaskFailure(updateTask, INSTALLATION_CANCELED, UPDATE_CANCELED);
403+
awaitTaskFailure(updateTask, INSTALLATION_CANCELED, UPDATE_CANCELED);
399404
assertFalse(updateDialog.isShowing());
400405
}
401406

@@ -412,7 +417,7 @@ public void updateIfNewReleaseAvailable_whenCheckForUpdateFails_updateAppNotCall
412417
List<UpdateProgress> progressEvents = new ArrayList<>();
413418
updateTask.addOnProgressListener(FirebaseExecutors.directExecutor(), progressEvents::add);
414419

415-
TestUtils.awaitTaskFailure(updateTask, NETWORK_FAILURE, NETWORK_ERROR);
420+
awaitTaskFailure(updateTask, NETWORK_FAILURE, NETWORK_ERROR);
416421
assertEquals(1, progressEvents.size());
417422
assertEquals(UpdateStatus.NEW_RELEASE_CHECK_FAILED, progressEvents.get(0).getUpdateStatus());
418423
verify(firebaseAppDistribution, never()).updateApp();
@@ -425,7 +430,7 @@ public void updateIfNewReleaseAvailable_whenTesterIsSignedIn_doesNotOpenDialog()
425430
when(mockSignInStorage.getSignInStatus()).thenReturn(true);
426431

427432
UpdateTask task = firebaseAppDistribution.updateIfNewReleaseAvailable();
428-
TestUtils.awaitTask(task);
433+
awaitTask(task);
429434

430435
assertNull(ShadowAlertDialog.getLatestAlertDialog());
431436
}
@@ -438,7 +443,7 @@ public void signInTester_whenDialogDismissed_taskFails() {
438443
AlertDialog dialog = assertAlertDialogShown();
439444
dialog.getButton(AlertDialog.BUTTON_NEGATIVE).performClick(); // dismiss dialog
440445

441-
TestUtils.awaitTaskFailure(
446+
awaitTaskFailure(
442447
updateTask, AUTHENTICATION_CANCELED, ErrorMessages.AUTHENTICATION_CANCELED);
443448
}
444449

@@ -450,7 +455,7 @@ public void updateIfNewReleaseAvailable_whenSignInDialogCanceled_taskFails() {
450455
AlertDialog dialog = assertAlertDialogShown();
451456
dialog.onBackPressed(); // cancel dialog
452457

453-
TestUtils.awaitTaskFailure(
458+
awaitTaskFailure(
454459
signInTask, AUTHENTICATION_CANCELED, ErrorMessages.AUTHENTICATION_CANCELED);
455460
}
456461

@@ -463,8 +468,9 @@ private AlertDialog assertAlertDialogShown() {
463468
}
464469

465470
@Test
466-
public void signOutTester_setsSignInStatusFalse() {
471+
public void signOutTester_setsSignInStatusFalse() throws InterruptedException {
467472
firebaseAppDistribution.signOutTester();
473+
awaitTermination(testExecutor);
468474
verify(mockSignInStorage).setSignInStatus(false);
469475
}
470476

@@ -486,12 +492,12 @@ public void updateIfNewReleaseAvailable_receiveProgressUpdateFromUpdateApp()
486492

487493
List<UpdateProgress> progressEvents = new ArrayList<>();
488494
updateTask.addOnProgressListener(FirebaseExecutors.directExecutor(), progressEvents::add);
489-
TestUtils.awaitAsyncOperations(testExecutor);
495+
awaitAsyncOperations(testExecutor);
490496

491497
// Clicking the update button.
492498
AlertDialog updateDialog = (AlertDialog) ShadowAlertDialog.getLatestDialog();
493499
updateDialog.getButton(Dialog.BUTTON_POSITIVE).performClick();
494-
TestUtils.awaitAsyncOperations(testExecutor);
500+
awaitAsyncOperations(testExecutor);
495501

496502
// Update flow
497503
assertEquals(1, progressEvents.size());
@@ -506,7 +512,7 @@ public void updateIfNewReleaseAvailable_fromABackgroundThread_showsSignInDialog(
506512
ExecutorService executorService = Executors.newSingleThreadExecutor();
507513
Future<UpdateTask> future =
508514
executorService.submit(() -> firebaseAppDistribution.updateIfNewReleaseAvailable());
509-
TestUtils.awaitAsyncOperations(executorService);
515+
awaitAsyncOperations(executorService);
510516

511517
assertAlertDialogShown();
512518
assertFalse(((UpdateTask) future.get()).isComplete());
@@ -536,7 +542,7 @@ public void updateIfNewReleaseAvailable_whenScreenRotates_updateDialogReappears(
536542
when(activity.isChangingConfigurations()).thenReturn(true);
537543

538544
UpdateTask updateTask = firebaseAppDistribution.updateIfNewReleaseAvailable();
539-
TestUtils.awaitAsyncOperations(testExecutor);
545+
awaitAsyncOperations(testExecutor);
540546

541547
// Mimic activity recreation due to a configuration change
542548
firebaseAppDistribution.onActivityDestroyed(activity);
@@ -558,7 +564,7 @@ public void updateIfNewReleaseAvailable_whenScreenRotates_updateDialogReappears(
558564
firebaseAppDistribution.onActivityPaused(activity);
559565
firebaseAppDistribution.onActivityResumed(testActivity2);
560566

561-
TestUtils.awaitTaskFailure(
567+
awaitTaskFailure(
562568
updateTask, HOST_ACTIVITY_INTERRUPTED, ErrorMessages.HOST_ACTIVITY_INTERRUPTED);
563569
}
564570

@@ -571,13 +577,13 @@ public void updateIfNewReleaseAvailable_whenScreenRotates_updateDialogReappears(
571577
when(mockNewReleaseFetcher.checkForNewRelease()).thenReturn(Tasks.forResult(newRelease));
572578

573579
UpdateTask updateTask = firebaseAppDistribution.updateIfNewReleaseAvailable();
574-
TestUtils.awaitAsyncOperations(testExecutor);
580+
awaitAsyncOperations(testExecutor);
575581

576582
// Mimic different activity getting resumed
577583
firebaseAppDistribution.onActivityPaused(activity);
578584
firebaseAppDistribution.onActivityResumed(testActivity2);
579585

580-
TestUtils.awaitTaskFailure(
586+
awaitTaskFailure(
581587
updateTask, HOST_ACTIVITY_INTERRUPTED, ErrorMessages.HOST_ACTIVITY_INTERRUPTED);
582588
}
583589

@@ -588,7 +594,7 @@ public void updateAppTask_whenNoReleaseAvailable_throwsError() {
588594

589595
UpdateTask updateTask = firebaseAppDistribution.updateApp();
590596

591-
TestUtils.awaitTaskFailure(updateTask, UPDATE_NOT_AVAILABLE, RELEASE_NOT_FOUND_ERROR);
597+
awaitTaskFailure(updateTask, UPDATE_NOT_AVAILABLE, RELEASE_NOT_FOUND_ERROR);
592598
}
593599

594600
@Test
@@ -605,7 +611,7 @@ public void updateApp_withAabReleaseAvailable_returnsSameAabTask()
605611

606612
// Complete original task
607613
updateTaskToReturn.setResult();
608-
TestUtils.awaitTask(updateTask);
614+
awaitTask(updateTask);
609615

610616
// Returned task is complete
611617
assertTrue(updateTask.isSuccessful());
@@ -625,7 +631,7 @@ public void updateApp_withApkReleaseAvailable_returnsSameApkTask()
625631

626632
// Complete original task
627633
updateTaskToReturn.setResult();
628-
TestUtils.awaitTask(updateTask);
634+
awaitTask(updateTask);
629635

630636
// Returned task is complete
631637
assertTrue(updateTask.isSuccessful());

0 commit comments

Comments
 (0)