diff options
Diffstat (limited to 'work/workmanager/src/androidTest/java')
-rw-r--r-- | work/workmanager/src/androidTest/java/androidx/work/impl/WorkContinuationImplTest.java | 25 |
1 files changed, 25 insertions, 0 deletions
diff --git a/work/workmanager/src/androidTest/java/androidx/work/impl/WorkContinuationImplTest.java b/work/workmanager/src/androidTest/java/androidx/work/impl/WorkContinuationImplTest.java index 6317d9b55a2..778320853f7 100644 --- a/work/workmanager/src/androidTest/java/androidx/work/impl/WorkContinuationImplTest.java +++ b/work/workmanager/src/androidTest/java/androidx/work/impl/WorkContinuationImplTest.java @@ -45,6 +45,7 @@ import androidx.work.State; import androidx.work.TestLifecycleOwner; import androidx.work.WorkContinuation; import androidx.work.WorkManagerTest; +import androidx.work.WorkStatus; import androidx.work.impl.model.WorkSpec; import androidx.work.impl.model.WorkSpecDao; import androidx.work.impl.utils.taskexecutor.InstantTaskExecutorRule; @@ -57,6 +58,7 @@ import org.junit.Test; import org.junit.runner.RunWith; import org.mockito.ArgumentCaptor; +import java.util.ArrayList; import java.util.Arrays; import java.util.Collections; import java.util.HashSet; @@ -478,6 +480,29 @@ public class WorkContinuationImplTest extends WorkManagerTest { assertThat(joined.hasCycles(), is(false)); } + @Test + @SmallTest + public void testGetStatusesSync() { + OneTimeWorkRequest aWork = createTestWorker(); // A + OneTimeWorkRequest bWork = createTestWorker(); // B + OneTimeWorkRequest cWork = createTestWorker(); // C + OneTimeWorkRequest dWork = createTestWorker(); // D + + WorkContinuation firstChain = mWorkManagerImpl.beginWith(aWork).then(bWork); + WorkContinuation secondChain = mWorkManagerImpl.beginWith(cWork); + WorkContinuation combined = WorkContinuation.combine(dWork, firstChain, secondChain); + + combined.synchronous().enqueueSync(); + List<WorkStatus> statuses = combined.synchronous().getStatusesSync(); + assertThat(statuses, is(notNullValue())); + List<UUID> ids = new ArrayList<>(statuses.size()); + for (WorkStatus status : statuses) { + ids.add(status.getId()); + } + assertThat(ids, containsInAnyOrder( + aWork.getId(), bWork.getId(), cWork.getId(), dWork.getId())); + } + private static void verifyEnqueued(WorkContinuationImpl continuation) { assertThat(continuation.isEnqueued(), is(true)); List<WorkContinuationImpl> parents = continuation.getParents(); |