Skip to content

Instantly share code, notes, and snippets.

@Phoenix124
Created February 12, 2020 07:58
Show Gist options
  • Save Phoenix124/d4760cc1de782c1655b6a41632bf7c8c to your computer and use it in GitHub Desktop.
Save Phoenix124/d4760cc1de782c1655b6a41632bf7c8c to your computer and use it in GitHub Desktop.
@Test
public void testThatWatchedCronExpressionIsCorrect() {
CronTrigger trigger =
new CronTrigger(watchedCron);
Calendar today = Calendar.getInstance();
today.set(Calendar.HOUR_OF_DAY, 9);
today.set(Calendar.MINUTE, 0);
final Date yesterday = today.getTime();
Date nextExecutionTime = trigger.nextExecutionTime(
new TriggerContext() {
@Override
public Date lastScheduledExecutionTime() {
return yesterday;
}
@Override
public Date lastActualExecutionTime() {
return yesterday;
}
@Override
public Date lastCompletionTime() {
return yesterday;
}
});
assertEquals(nextExecutionTime.getHours(), 9);
assertEquals(nextExecutionTime.getMinutes(), 0);
ZoneId defaultZoneId = ZoneId.systemDefault();
LocalDate yesterdayLocalDate = LocalDate.ofInstant(yesterday.toInstant(), defaultZoneId);
LocalDate nextExecutionLocalDate = LocalDate.ofInstant(nextExecutionTime.toInstant(), defaultZoneId);
long difference = DAYS.between(yesterdayLocalDate, nextExecutionLocalDate);
assertEquals(1, difference);
}
@Test
public void testThatExpiredCronExpressionIsCorrect() {
CronTrigger trigger =
new CronTrigger(expiredCron);
Calendar halfAnHour = Calendar.getInstance();
halfAnHour.set(Calendar.MINUTE, 30);
halfAnHour.set(Calendar.SECOND, 0);
halfAnHour.set(Calendar.MILLISECOND, 0);
final Date firstExecutionTime = halfAnHour.getTime();
Date nextExecutionTime = trigger.nextExecutionTime(
new TriggerContext() {
@Override
public Date lastScheduledExecutionTime() {
return firstExecutionTime;
}
@Override
public Date lastActualExecutionTime() {
return firstExecutionTime;
}
@Override
public Date lastCompletionTime() {
return firstExecutionTime;
}
});
var diffInMillis = nextExecutionTime.getTime() - firstExecutionTime.getTime();
assertEquals(30, TimeUnit.MILLISECONDS.toMinutes(diffInMillis));
}
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment