@Test
public void testObserversFire() {
Uri[] uris = new Uri[]{Uri.parse("doist.com"), Uri.parse("todoist.com"), Uri.parse("twistapp.com")};
for (int i = 0; i < uris.length; i++) {
jobStore.add(JobStatus.createFromJobInfo(
JobCreator.create(context, i, 5000)
.addTriggerContentUri(new JobInfo.TriggerContentUri(uris[i], 0))
.build(),
AlarmScheduler.TAG));
}
service.startCommand(0, 0);
ShadowApplication application = ShadowApplication.getInstance();
ShadowContentResolver contentResolver = shadowOf(context.getContentResolver());
for (Uri uri : uris) {
assertEquals(0, application.getBoundServiceConnections().size());
assertEquals(1, contentResolver.getContentObservers(uri).size());
contentResolver.notifyChange(uri, null);
DeviceTestUtils.advanceTime(JobStatus.DEFAULT_TRIGGER_MAX_DELAY);
assertEquals(1, contentResolver.getContentObservers(uri).size());
assertEquals(AlarmJobService.class.getCanonicalName(),
application.getNextStartedService().getComponent().getClassName());
}
}
}