use of org.motechproject.event.MotechEvent in project motech by motech.
the class TestEventListener method shouldNotScheduleRunOnceJobInThePast.
@Test(expected = MotechSchedulerException.class)
public void shouldNotScheduleRunOnceJobInThePast() throws SchedulerException {
try {
fakeNow(newDateTime(2020, 7, 15, 10, 0, 0));
Map<String, Object> params = new HashMap<>();
params.put(MotechSchedulerService.JOB_ID_KEY, "job_id");
schedulerService.scheduleRunOnceJob(new RunOnceSchedulableJob(new MotechEvent("test_event", params), newDateTime(2020, 6, 15, 12, 0, 0)));
} finally {
stopFakingTime();
}
}
use of org.motechproject.event.MotechEvent in project motech by motech.
the class TestEventListener method shouldNotIgnoreFiresInPastWhenSchedulingCronJob.
@Test
public // See http://quartz-scheduler.org/documentation/quartz-2.x/configuration/ConfigJobStoreTX
void shouldNotIgnoreFiresInPastWhenSchedulingCronJob() throws InterruptedException, SchedulerException {
final String eventSubject = id("eve");
try {
TestEventListener listener = new TestEventListener();
eventRegistry.registerListener(listener, eventSubject);
DateTime now = findSuitableTimeToScheduleWithSafeBufferFromTriggerTime();
Map<String, Object> params = new HashMap<>();
params.put(MotechSchedulerService.JOB_ID_KEY, "job_id");
DateTime jobStartTimeInPast = now.minusMinutes(3);
schedulerService.scheduleJob(new CronSchedulableJob(new MotechEvent(eventSubject, params), "0 0/1 * 1/1 * ? *", jobStartTimeInPast, null, false));
synchronized (listener.getReceivedEvents()) {
listener.getReceivedEvents().wait(5000);
}
assertTrue("Listener didn't receive misfired events.", listener.getReceivedEvents().size() > 0);
} finally {
eventRegistry.clearListenersForBean(eventSubject);
schedulerService.unscheduleAllJobs(eventSubject + "-job_id");
}
}
use of org.motechproject.event.MotechEvent in project motech by motech.
the class TestEventListener method shouldRescheduleCronJob.
@Test
public void shouldRescheduleCronJob() throws SchedulerException {
try {
fakeNow(new DateTime(2020, 7, 15, 10, 0, 0));
Map<String, Object> params = new HashMap<>();
final String jobId = id("jobId");
params.put(MotechSchedulerService.JOB_ID_KEY, jobId);
schedulerService.scheduleJob(new CronSchedulableJob(new MotechEvent("test_event", params), "0 0 10 * * ?"));
schedulerService.scheduleJob(new CronSchedulableJob(new MotechEvent("test_event", params), "0 0 14 * * ?"));
List<DateTime> first3FireTimes = getFireTimes("test_event-" + jobId).subList(0, 3);
assertEquals(asList(newDateTime(2020, 7, 15, 14, 0, 0), newDateTime(2020, 7, 16, 14, 0, 0), newDateTime(2020, 7, 17, 14, 0, 0)), first3FireTimes);
} finally {
stopFakingTime();
}
}
use of org.motechproject.event.MotechEvent in project motech by motech.
the class TestEventListener method shouldScheduleInterveningDayOfWeekJob.
@Test
public void shouldScheduleInterveningDayOfWeekJob() throws SchedulerException {
try {
fakeNow(newDateTime(2020, 7, 15, 10, 0, 0));
Map<String, Object> params = new HashMap<>();
params.put(MotechSchedulerService.JOB_ID_KEY, "job_id");
schedulerService.scheduleDayOfWeekJob(new DayOfWeekSchedulableJob(new MotechEvent("test_event", params), // friday
newDateTime(2020, 7, 10), newDateTime(2020, 7, 22), asList(DayOfWeek.Monday, DayOfWeek.Thursday), new Time(10, 10), true));
List<DateTime> fireTimes = getFireTimes("test_event-job_id");
assertEquals(asList(newDateTime(2020, 7, 16, 10, 10, 0), newDateTime(2020, 7, 20, 10, 10, 0)), fireTimes);
} finally {
stopFakingTime();
}
}
use of org.motechproject.event.MotechEvent in project motech by motech.
the class TestEventListener method shouldRescheduleCronJobWithNewSchedule.
@Test
public void shouldRescheduleCronJobWithNewSchedule() throws SchedulerException {
try {
fakeNow(new DateTime(2020, 7, 15, 10, 0, 0));
Map<String, Object> params = new HashMap<>();
params.put(MotechSchedulerService.JOB_ID_KEY, "job_id");
schedulerService.scheduleJob(new CronSchedulableJob(new MotechEvent("test_event", params), "0 0 10 * * ?"));
schedulerService.rescheduleJob("test_event", "job_id", "0 0 14 * * ?");
List<DateTime> first3FireTimes = getFireTimes("test_event-job_id").subList(0, 3);
assertEquals(asList(newDateTime(2020, 7, 15, 14, 0, 0), newDateTime(2020, 7, 16, 14, 0, 0), newDateTime(2020, 7, 17, 14, 0, 0)), first3FireTimes);
} finally {
stopFakingTime();
}
}
Aggregations