91 lines
3.5 KiB
Java
91 lines
3.5 KiB
Java
package org.whispersystems.jobqueue;
|
|
|
|
import android.test.AndroidTestCase;
|
|
|
|
import org.whispersystems.jobqueue.jobs.PersistentTestJob;
|
|
import org.whispersystems.jobqueue.jobs.RequirementTestJob;
|
|
import org.whispersystems.jobqueue.jobs.TestJob;
|
|
import org.whispersystems.jobqueue.persistence.JavaJobSerializer;
|
|
import org.whispersystems.jobqueue.util.MockRequirement;
|
|
import org.whispersystems.jobqueue.util.MockRequirementProvider;
|
|
import org.whispersystems.jobqueue.util.PersistentMockRequirement;
|
|
import org.whispersystems.jobqueue.util.PersistentRequirement;
|
|
import org.whispersystems.jobqueue.util.PersistentResult;
|
|
|
|
public class JobManagerTest extends AndroidTestCase {
|
|
|
|
public void testTransientJobExecution() throws InterruptedException {
|
|
TestJob testJob = new TestJob();
|
|
JobManager jobManager = new JobManager(getContext(), "transient-test", null, null, 1);
|
|
|
|
jobManager.add(testJob);
|
|
|
|
assertTrue(testJob.isAdded());
|
|
assertTrue(testJob.isRan());
|
|
}
|
|
|
|
public void testTransientRequirementJobExecution() throws InterruptedException {
|
|
MockRequirementProvider provider = new MockRequirementProvider();
|
|
MockRequirement requirement = new MockRequirement(false);
|
|
TestJob testJob = new RequirementTestJob(requirement);
|
|
JobManager jobManager = new JobManager(getContext(), "transient-requirement-test", provider, null, 1);
|
|
|
|
jobManager.add(testJob);
|
|
|
|
assertTrue(testJob.isAdded());
|
|
assertTrue(!testJob.isRan());
|
|
|
|
requirement.setPresent(true);
|
|
provider.fireChange();
|
|
|
|
assertTrue(testJob.isRan());
|
|
|
|
}
|
|
|
|
public void testPersistentJobExecuton() throws InterruptedException {
|
|
PersistentMockRequirement requirement = new PersistentMockRequirement();
|
|
PersistentTestJob testJob = new PersistentTestJob(requirement);
|
|
JobManager jobManager = new JobManager(getContext(), "persistent-requirement-test3", null, new JavaJobSerializer(getContext()), 1);
|
|
|
|
PersistentResult.getInstance().reset();
|
|
PersistentRequirement.getInstance().setPresent(false);
|
|
|
|
jobManager.add(testJob);
|
|
|
|
assertTrue(PersistentResult.getInstance().isAdded());
|
|
assertTrue(!PersistentResult.getInstance().isRan());
|
|
|
|
PersistentRequirement.getInstance().setPresent(true);
|
|
jobManager = new JobManager(getContext(), "persistent-requirement-test3", null, new JavaJobSerializer(getContext()), 1);
|
|
|
|
assertTrue(PersistentResult.getInstance().isRan());
|
|
}
|
|
|
|
public void testEncryptedJobExecuton() throws InterruptedException {
|
|
EncryptionKeys keys = new EncryptionKeys("foobar");
|
|
PersistentMockRequirement requirement = new PersistentMockRequirement();
|
|
PersistentTestJob testJob = new PersistentTestJob(requirement, keys);
|
|
JobManager jobManager = new JobManager(getContext(), "persistent-requirement-test4", null, new JavaJobSerializer(getContext()), 1);
|
|
jobManager.setEncryptionKeys(keys);
|
|
|
|
PersistentResult.getInstance().reset();
|
|
PersistentRequirement.getInstance().setPresent(false);
|
|
|
|
jobManager.add(testJob);
|
|
|
|
assertTrue(PersistentResult.getInstance().isAdded());
|
|
assertTrue(!PersistentResult.getInstance().isRan());
|
|
|
|
PersistentRequirement.getInstance().setPresent(true);
|
|
jobManager = new JobManager(getContext(), "persistent-requirement-test4", null, new JavaJobSerializer(getContext()), 1);
|
|
|
|
assertTrue(!PersistentResult.getInstance().isRan());
|
|
|
|
jobManager.setEncryptionKeys(keys);
|
|
|
|
assertTrue(PersistentResult.getInstance().isRan());
|
|
}
|
|
|
|
|
|
}
|