Search in sources :

Example 76 with Params

use of com.birbit.android.jobqueue.Params in project android-priority-jobqueue by yigit.

the class SingleIdTest method testSingleId.

private void testSingleId(boolean persistent) throws Throwable {
    JobManager jobManager = createJobManager();
    jobManager.stop();
    String singleId = "forks";
    DummyJob dummyJob1 = new DummyJob(new Params(0).setPersistent(persistent).setSingleId(singleId));
    String jobId1 = addJob(jobManager, dummyJob1);
    DummyJob dummyJob2 = new DummyJob(new Params(0).setPersistent(persistent));
    String jobId2 = addJob(jobManager, dummyJob2);
    assertThat("should add job if doesn't have singleId", jobManager.countReadyJobs(), is(2));
    DummyJob dummyJob3 = new DummyJob(new Params(0).setPersistent(persistent).setSingleId("otherId"));
    String jobId3 = addJob(jobManager, dummyJob3);
    assertThat("should add job if different singleId", jobManager.countReadyJobs(), is(3));
    DummyJob dummyJob4 = new DummyJob(new Params(0).setPersistent(persistent).setSingleId(singleId));
    addJob(jobManager, dummyJob4);
    assertThat("should not add job with same singleId", jobManager.countReadyJobs(), is(3));
    assertThat("should return the same id", nextJob(jobManager).getId(), is(jobId1));
    assertThat("should return the same id", nextJob(jobManager).getId(), is(jobId2));
    assertThat("should return the same id", nextJob(jobManager).getId(), is(jobId3));
    assertThat("should return the same id", nextJob(jobManager), is(nullValue()));
}
Also used : DummyJob(com.birbit.android.jobqueue.test.jobs.DummyJob) Params(com.birbit.android.jobqueue.Params) JobManager(com.birbit.android.jobqueue.JobManager)

Example 77 with Params

use of com.birbit.android.jobqueue.Params in project android-priority-jobqueue by yigit.

the class SlowOnAddedTest method testNonPersistent.

@Test
public void testNonPersistent() throws InterruptedException {
    JobManager jobManager = createJobManager();
    CountDownLatch runLatch = new CountDownLatch(1);
    MyDummyJob job = new MyDummyJob(new Params(2), runLatch);
    for (int i = 0; i < 50; i++) {
        jobManager.addJob(new DummyJob(new Params(1)));
    }
    jobManager.addJob(job);
    runLatch.await();
    assertThat("on added should be called before on run", job.onAddedCntWhenRun, equalTo(1));
}
Also used : DummyJob(com.birbit.android.jobqueue.test.jobs.DummyJob) Params(com.birbit.android.jobqueue.Params) JobManager(com.birbit.android.jobqueue.JobManager) CountDownLatch(java.util.concurrent.CountDownLatch) RetryConstraint(com.birbit.android.jobqueue.RetryConstraint) Test(org.junit.Test)

Example 78 with Params

use of com.birbit.android.jobqueue.Params in project android-priority-jobqueue by yigit.

the class JobParamsTest method assertParamsUnderstood.

@Test
public void assertParamsUnderstood() {
    MockTimer mockTimer = new MockTimer();
    JobHolder j1 = JobQueueTestBase.createNewJobHolder(new Params(1).requireNetwork(), mockTimer);
    assertThat("require network param should be understood properly", j1.getRequiredNetworkType(), equalTo(NetworkUtil.METERED));
    JobHolder j2 = JobQueueTestBase.createNewJobHolder(new Params(1).groupBy("blah"), mockTimer);
    assertThat("group param should be understood properly", j2.getGroupId(), equalTo("blah"));
    assertThat("require network param should be understood properly", j2.getRequiredNetworkType(), equalTo(NetworkUtil.DISCONNECTED));
    JobHolder j3 = JobQueueTestBase.createNewJobHolder(new Params(1).persist(), mockTimer);
    assertThat("persist param should be understood properly", j3.persistent, equalTo(true));
    JobHolder j4 = JobQueueTestBase.createNewJobHolder(new Params(1).setPersistent(false).setRequiresNetwork(false).setGroupId(null).setSingleId(null), mockTimer);
    assertThat("persist param should be understood properly", j4.persistent, equalTo(false));
    assertThat("require network param should be understood properly", j4.getRequiredNetworkType(), equalTo(NetworkUtil.DISCONNECTED));
    assertThat("group param should be understood properly", j4.groupId, nullValue());
    assertThat("single param should be understood properly", j4.getSingleInstanceId(), nullValue());
    mockTimer.incrementMs(2);
    DummyJob j15 = new DummyJob(new Params(1).singleInstanceBy("bloop"));
    assertThat("single param should be understood properly", j15.getSingleInstanceId(), endsWith("bloop"));
    assertThat("group param should be automatically set if single instance", j15.getRunGroupId(), notNullValue());
    mockTimer.setNow(150);
    JobHolder j6 = JobQueueTestBase.createNewJobHolder(new Params(1), mockTimer);
    assertThat("no deadline", j6.getDeadlineNs(), is(Params.FOREVER));
    JobHolder j7 = JobQueueTestBase.createNewJobHolder(new Params(1).overrideDeadlineToCancelInMs(100), mockTimer);
    assertThat("100 ms deadline", j7.getDeadlineNs(), is(100000150L));
    assertThat("100 ms deadline", j7.shouldCancelOnDeadline(), is(true));
    JobHolder j13 = JobQueueTestBase.createNewJobHolder(new Params(1).overrideDeadlineToCancelInMs(200), mockTimer);
    assertThat("100 ms deadline", j13.getDeadlineNs(), is(200000150L));
    assertThat("100 ms deadline", j7.shouldCancelOnDeadline(), is(true));
}
Also used : JobHolder(com.birbit.android.jobqueue.JobHolder) MockTimer(com.birbit.android.jobqueue.test.timer.MockTimer) DummyJob(com.birbit.android.jobqueue.test.jobs.DummyJob) Params(com.birbit.android.jobqueue.Params) Test(org.junit.Test)

Example 79 with Params

use of com.birbit.android.jobqueue.Params in project android-priority-jobqueue by yigit.

the class JobQueueTestBase method testDelayUntilWithUnmeteredNetworkRequirement2.

@Test
public void testDelayUntilWithUnmeteredNetworkRequirement2() {
    JobQueue jobQueue = createNewJobQueue();
    JobHolder holder1 = createNewJobHolder(new Params(2).overrideDeadlineToRunInMs(3000).requireUnmeteredNetwork().delayInMs(2000));
    jobQueue.insert(holder1);
    TestConstraint constraint = new TestConstraint(mockTimer);
    constraint.setMaxNetworkType(NetworkUtil.UNMETERED);
    assertThat(jobQueue.getNextJobDelayUntilNs(constraint), is(2000000000L));
    constraint.setMaxNetworkType(NetworkUtil.METERED);
    assertThat(jobQueue.getNextJobDelayUntilNs(constraint), is(3000000000L));
}
Also used : JobHolder(com.birbit.android.jobqueue.JobHolder) TestConstraint(com.birbit.android.jobqueue.TestConstraint) JobQueue(com.birbit.android.jobqueue.JobQueue) Params(com.birbit.android.jobqueue.Params) Test(org.junit.Test)

Example 80 with Params

use of com.birbit.android.jobqueue.Params in project android-priority-jobqueue by yigit.

the class RetryLogicTest method testChangePriority.

@Ignore
public void testChangePriority(boolean persistent) throws InterruptedException {
    final AtomicInteger priority = new AtomicInteger(1);
    retryProvider = new RetryProvider() {

        @Override
        public RetryConstraint build(Job job, Throwable throwable, int runCount, int maxRunCount) {
            RetryConstraint constraint = new RetryConstraint(true);
            priority.set(job.getPriority() * 2);
            constraint.setNewPriority(priority.get());
            return constraint;
        }
    };
    onRunCallback = new Callback() {

        @Override
        public void on(Job job) {
            assertThat("priority should be the expected value", job.getPriority(), is(priority.get()));
        }
    };
    RetryJob retryJob = new RetryJob(new Params(priority.get()).setPersistent(persistent));
    retryJob.retryLimit = 3;
    canRun = true;
    onRunLatch = new CountDownLatch(3);
    createJobManager().addJob(retryJob);
    assertThat(onRunLatch.await(5, TimeUnit.SECONDS), is(true));
    assertThat("it should run 3 times", runCount, is(3));
    assertThat(cancelLatch.await(5, TimeUnit.SECONDS), is(true));
}
Also used : RetryConstraint(com.birbit.android.jobqueue.RetryConstraint) AtomicInteger(java.util.concurrent.atomic.AtomicInteger) Params(com.birbit.android.jobqueue.Params) DummyJob(com.birbit.android.jobqueue.test.jobs.DummyJob) Job(com.birbit.android.jobqueue.Job) CountDownLatch(java.util.concurrent.CountDownLatch) RetryConstraint(com.birbit.android.jobqueue.RetryConstraint) Ignore(org.junit.Ignore)

Aggregations

Params (com.birbit.android.jobqueue.Params)95 Test (org.junit.Test)75 JobManager (com.birbit.android.jobqueue.JobManager)47 JobHolder (com.birbit.android.jobqueue.JobHolder)46 DummyJob (com.birbit.android.jobqueue.test.jobs.DummyJob)41 JobQueue (com.birbit.android.jobqueue.JobQueue)40 TestConstraint (com.birbit.android.jobqueue.TestConstraint)37 Job (com.birbit.android.jobqueue.Job)31 CountDownLatch (java.util.concurrent.CountDownLatch)31 Configuration (com.birbit.android.jobqueue.config.Configuration)17 RetryConstraint (com.birbit.android.jobqueue.RetryConstraint)12 TargetApi (android.annotation.TargetApi)9 CancelResult (com.birbit.android.jobqueue.CancelResult)9 Constraint (com.birbit.android.jobqueue.Constraint)8 TagConstraint (com.birbit.android.jobqueue.TagConstraint)8 JobManagerCallbackAdapter (com.birbit.android.jobqueue.callback.JobManagerCallbackAdapter)8 AtomicInteger (java.util.concurrent.atomic.AtomicInteger)8 ArrayList (java.util.ArrayList)6 JobManagerCallback (com.birbit.android.jobqueue.callback.JobManagerCallback)4 SqliteJobQueue (com.birbit.android.jobqueue.persistentQueue.sqlite.SqliteJobQueue)3