/** * @return Extra arguments for this {@link Job}. Never returns {@code null}. */ @NonNull public PersistableBundleCompat getExtras() { if (mExtras == null) { mExtras = mRequest.getExtras(); if (mExtras == null) { mExtras = new PersistableBundleCompat(); } } return mExtras; }
@Test public void verifyHasExtras() { long start = 0; long end = 1L; int jobId = DailyJob.schedule(DummyJobs.createBuilder(DummyJobs.SuccessJob.class), start, end); JobRequest request = manager().getJobRequest(jobId); assertThat(request).isNotNull(); assertThat(request.getExtras().getLong(DailyJob.EXTRA_START_MS, -1)).isEqualTo(0L); assertThat(request.getExtras().getLong(DailyJob.EXTRA_END_MS, -1)).isEqualTo(1L); assertThat(request.getExtras().size()).isEqualTo(2); }
@Test public void verifyExtraValuesAreOverwritten() { long start = 0; long end = 1L; PersistableBundleCompat extras = new PersistableBundleCompat(); extras.putLong("something", 9L); // make sure this value is not overwritten extras.putLong(DailyJob.EXTRA_START_MS, 9L); // make sure they're overwritten extras.putLong(DailyJob.EXTRA_END_MS, 9L); int jobId = DailyJob.schedule(DummyJobs.createBuilder(DummyJobs.SuccessJob.class).setExtras(extras), start, end); JobRequest request = manager().getJobRequest(jobId); assertThat(request).isNotNull(); assertThat(request.getExtras().getLong(DailyJob.EXTRA_START_MS, -1)).isEqualTo(0L); assertThat(request.getExtras().getLong(DailyJob.EXTRA_END_MS, -1)).isEqualTo(1L); assertThat(request.getExtras().size()).isEqualTo(3); }
@Test public void testPeriodic() { long interval = JobRequest.MIN_INTERVAL * 5; JobRequest request = getBuilder() .setPeriodic(interval) .setExtras(new PersistableBundleCompat()) .build(); assertThat(request.getJobId()).isGreaterThan(0); assertThat(request.getTag()).isEqualTo(DummyJobs.SuccessJob.TAG); assertThat(request.getIntervalMs()).isEqualTo(interval); assertThat(request.getFlexMs()).isEqualTo(interval); assertThat(request.isPeriodic()).isTrue(); assertThat(request.isFlexSupport()).isFalse(); assertThat(request.getStartMs()).isNegative(); assertThat(request.getEndMs()).isNegative(); assertThat(request.getBackoffMs()).isEqualTo(JobRequest.DEFAULT_BACKOFF_MS); assertThat(request.getBackoffPolicy()).isEqualTo(JobRequest.DEFAULT_BACKOFF_POLICY); assertThat(request.getExtras()).isNotNull(); assertThat(request.isExact()).isFalse(); assertThat(request.requiredNetworkType()).isEqualTo(JobRequest.DEFAULT_NETWORK_TYPE); assertThat(request.requirementsEnforced()).isFalse(); assertThat(request.requiresCharging()).isFalse(); assertThat(request.requiresDeviceIdle()).isFalse(); }
/** * @return Extra arguments for this {@link Job}. Never returns {@code null}. */ @NonNull public PersistableBundleCompat getExtras() { if (mExtras == null) { mExtras = mRequest.getExtras(); if (mExtras == null) { mExtras = new PersistableBundleCompat(); } } return mExtras; }
/** * {@inheritDoc} */ @Override public boolean cancelRequest(String requestId) { boolean cancelled = false; for (Job job : JobManager.instance().getAllJobs()) { String currJobId = ((UploadJob) job).requestId; if (requestId.equals(currJobId)) { job.cancel(); cancelled = true; } } if (!cancelled) { for (JobRequest job : JobManager.instance().getAllJobRequests()) { String id = job.getExtras().getString("requestId", null); if (requestId.equals(id)) { cancelled = JobManager.instance().cancel(job.getJobId()); break; } } } killThread(requestId); Logger.i(TAG, String.format("Cancelling request %s, success: %s", requestId, cancelled)); return cancelled; }
@Test public void testAdapter() throws InterruptedException, IOException { FilePayload payload = buildPayload(); int tenMinutes = 10 * 60 * 1000; UploadRequest<FilePayload> request = buildUploadRequest(payload, tenMinutes); JobRequest adapted = AndroidJobStrategy.adapt(request); assertEquals(20, adapted.getStartMs()); assertEquals(tenMinutes, adapted.getEndMs()); assertEquals(true, adapted.requiresCharging()); assertEquals(false, adapted.requiresDeviceIdle()); assertEquals(100, adapted.getBackoffMs()); assertEquals(JobRequest.BackoffPolicy.LINEAR, adapted.getBackoffPolicy()); assertEquals(9, adapted.getExtras().get("maxErrorRetries")); } }