@Test public void restorePackage_shouldRestoreSpecifiedPackage() { RestoreSession restoreSession = backupManager.beginRestoreSession(); restoreSession.restoreSome(123L, restoreObserver, new String[0]); assertThat(shadowOf(backupManager).getPackageRestoreToken("bar.baz")).isEqualTo(0L); restoreSession.endRestoreSession(); Robolectric.flushForegroundThreadScheduler(); Mockito.reset(restoreObserver); restoreSession = backupManager.beginRestoreSession(); int result = restoreSession.restorePackage("bar.baz", restoreObserver); assertThat(result).isEqualTo(BackupManager.SUCCESS); Robolectric.flushForegroundThreadScheduler(); verify(restoreObserver).restoreStarting(eq(1)); verify(restoreObserver).restoreFinished(eq(BackupManager.SUCCESS)); assertThat(shadowOf(backupManager).getPackageRestoreToken("bar.baz")).isEqualTo(123L); }
@Test public void restorePackage_noRestoreToken_shouldReturnFailure() { RestoreSession restoreSession = backupManager.beginRestoreSession(); int result = restoreSession.restorePackage("bar.baz", restoreObserver); assertThat(result).isEqualTo(-1); }
@Test public void restoreSome_shouldRestoreSpecifiedPackages() { RestoreSession restoreSession = backupManager.beginRestoreSession(); int result = restoreSession.restoreSome(123L, restoreObserver, new String[] {"bar.baz"}); assertThat(result).isEqualTo(BackupManager.SUCCESS); Robolectric.flushForegroundThreadScheduler(); verify(restoreObserver).restoreStarting(eq(1)); verify(restoreObserver).restoreFinished(eq(BackupManager.SUCCESS)); assertThat(shadowOf(backupManager).getPackageRestoreToken("foo.bar")).isEqualTo(0L); assertThat(shadowOf(backupManager).getPackageRestoreToken("bar.baz")).isEqualTo(123L); }
@Test public void getAvailableRestoreSets_shouldCallbackToRestoreSetsAvailable() { RestoreSession restoreSession = backupManager.beginRestoreSession(); int result = restoreSession.getAvailableRestoreSets(restoreObserver); assertThat(result).isEqualTo(BackupManager.SUCCESS); Robolectric.flushForegroundThreadScheduler(); ArgumentCaptor<RestoreSet[]> restoreSetArg = ArgumentCaptor.forClass(RestoreSet[].class); verify(restoreObserver).restoreSetsAvailable(restoreSetArg.capture()); RestoreSet[] restoreSets = restoreSetArg.getValue(); assertThat(restoreSets).hasLength(2); assertThat(restoreSets) .asList() .comparingElementsUsing(fieldCorrespondence("token")) .containsExactly(123L, 456L); }
@Test public void restoreAll_shouldRestoreData() { RestoreSession restoreSession = backupManager.beginRestoreSession(); int result = restoreSession.restoreAll(123L, restoreObserver); assertThat(result).isEqualTo(BackupManager.SUCCESS); Robolectric.flushForegroundThreadScheduler(); verify(restoreObserver).restoreStarting(eq(2)); verify(restoreObserver).restoreFinished(eq(BackupManager.SUCCESS)); assertThat(shadowOf(backupManager).getPackageRestoreToken("foo.bar")).isEqualTo(123L); assertThat(shadowOf(backupManager).getPackageRestoreToken("bar.baz")).isEqualTo(123L); assertThat(shadowOf(backupManager).getPackageRestoreToken("hello.world")).isEqualTo(0L); }