package com.path.android.jobqueue.test.jobmanager;
import com.path.android.jobqueue.JobManager;
import org.hamcrest.MatcherAssert;
import org.junit.Test;
import org.junit.runner.RunWith;
import org.robolectric.RobolectricTestRunner;
import static org.hamcrest.CoreMatchers.equalTo;
@RunWith(RobolectricTestRunner.class)
public class ReRunWithLimitTest extends JobManagerTestBase {
@Test
public void testReRunWithLimit() throws Exception {
JobManager jobManager = createJobManager();
testReRun(jobManager, false);
testReRun(jobManager, true);
}
private void testReRun(JobManager jobManager, boolean persist) throws InterruptedException {
DummyJobWithRunCount.runCount = 0;//reset
DummyJobWithRunCount job = new DummyJobWithRunCount(persist);
jobManager.addJob(0, job);
int limit = 25;
while (limit-- > 0 && DummyJobWithRunCount.runCount != 5) {
Thread.sleep(100);
}
MatcherAssert.assertThat(DummyJobWithRunCount.runCount, equalTo(job.getRetryLimit()));
MatcherAssert.assertThat((int) jobManager.count(), equalTo(0));
}
}