Search in sources :

Example 1 with JobCreator

use of com.evernote.android.job.JobCreator in project android-job by evernote.

the class PlatformWorkManagerTest method testExecution.

@Test
public void testExecution() {
    final AtomicBoolean executed = new AtomicBoolean(false);
    final Job job = new Job() {

        @NonNull
        @Override
        protected Result onRunJob(@NonNull Params params) {
            executed.set(true);
            return Result.SUCCESS;
        }
    };
    mWorkManagerRule.getManager().addJobCreator(new JobCreator() {

        @Nullable
        @Override
        public Job create(@NonNull String tag) {
            if (tag.equals(TAG)) {
                return job;
            } else {
                return null;
            }
        }
    });
    int jobId = new JobRequest.Builder(TAG).setExecutionWindow(TimeUnit.HOURS.toMillis(4), TimeUnit.HOURS.toMillis(5)).build().schedule();
    String tag = JobProxyWorkManager.createTag(jobId);
    mWorkManagerRule.runJob(tag);
    WorkInfo.State state = mWorkManagerRule.getWorkStatus(tag).get(0).getState();
    assertThat(executed.get()).isTrue();
    assertThat(state).isEqualTo(WorkInfo.State.SUCCEEDED);
}
Also used : JobCreator(com.evernote.android.job.JobCreator) AtomicBoolean(java.util.concurrent.atomic.AtomicBoolean) JobRequest(com.evernote.android.job.JobRequest) WorkInfo(androidx.work.WorkInfo) NonNull(androidx.annotation.NonNull) Job(com.evernote.android.job.Job) Nullable(androidx.annotation.Nullable) Test(org.junit.Test) LargeTest(androidx.test.filters.LargeTest)

Aggregations

NonNull (androidx.annotation.NonNull)1 Nullable (androidx.annotation.Nullable)1 LargeTest (androidx.test.filters.LargeTest)1 WorkInfo (androidx.work.WorkInfo)1 Job (com.evernote.android.job.Job)1 JobCreator (com.evernote.android.job.JobCreator)1 JobRequest (com.evernote.android.job.JobRequest)1 AtomicBoolean (java.util.concurrent.atomic.AtomicBoolean)1 Test (org.junit.Test)1