package com.path.android.jobqueue.test.jobmanager;
import com.path.android.jobqueue.BaseJob;
import com.path.android.jobqueue.JobManager;
import static org.hamcrest.CoreMatchers.*;
import org.hamcrest.*;
import org.junit.Test;
import org.junit.runner.RunWith;
import org.robolectric.*;
import java.util.concurrent.CountDownLatch;
import java.util.concurrent.TimeUnit;
@RunWith(RobolectricTestRunner.class)
public class RunFailingJobTest extends JobManagerTestBase {
@Test
public void runFailingJob() throws Exception {
final CountDownLatch latch = new CountDownLatch(1);
JobManager jobManager = createJobManager();
jobManager.addJob(0, new BaseJob(true) {
@Override
public void onAdded() {
}
@Override
public void onRun() throws Throwable {
throw new RuntimeException();
}
@Override
protected void onCancel() {
latch.countDown();
}
@Override
protected boolean shouldReRunOnThrowable(Throwable throwable) {
return false;
}
});
latch.await(10, TimeUnit.SECONDS);
MatcherAssert.assertThat((int) latch.getCount(), equalTo(0));
}
}