INT-858 CronSequenceGenerator: corrected trigger time on rollover when lower order bits specified

This commit is contained in:
Mark Fisher
2009-10-26 20:24:57 +00:00
parent 1a46284de1
commit 9495ffaa2a
2 changed files with 83 additions and 5 deletions

View File

@@ -302,6 +302,20 @@ public class CronTriggerTests {
assertEquals(calendar.getTime(), date = trigger.getNextRunTime(null, date));
}
@Test
public void testSpecificHourSecond() throws Exception {
CronTrigger trigger = new CronTrigger("55 * 2 * * *");
calendar.set(Calendar.HOUR_OF_DAY, 1);
calendar.set(Calendar.SECOND, 54);
Date date = calendar.getTime();
calendar.add(Calendar.HOUR_OF_DAY, 1);
calendar.set(Calendar.MINUTE, 0);
calendar.set(Calendar.SECOND, 55);
assertEquals(calendar.getTime(), date = trigger.getNextRunTime(null, date));
calendar.add(Calendar.MINUTE, 1);
assertEquals(calendar.getTime(), date = trigger.getNextRunTime(null, date));
}
@Test
public void testSpecificMinuteHour() throws Exception {
CronTrigger trigger = new CronTrigger("* 5 10 * * *");
@@ -317,6 +331,36 @@ public class CronTriggerTests {
assertEquals(calendar.getTime(), date = trigger.getNextRunTime(null, date));
}
@Test
public void testSpecificDayOfMonthSecond() throws Exception {
CronTrigger trigger = new CronTrigger("55 * * 3 * *");
calendar.set(Calendar.DAY_OF_MONTH, 2);
calendar.set(Calendar.SECOND, 54);
Date date = calendar.getTime();
calendar.add(Calendar.DAY_OF_MONTH, 1);
calendar.set(Calendar.HOUR_OF_DAY, 0);
calendar.set(Calendar.MINUTE, 0);
calendar.set(Calendar.SECOND, 55);
assertEquals(calendar.getTime(), date = trigger.getNextRunTime(null, date));
calendar.add(Calendar.MINUTE, 1);
assertEquals(calendar.getTime(), date = trigger.getNextRunTime(null, date));
}
@Test
public void testSpecificDate() throws Exception {
CronTrigger trigger = new CronTrigger("* * * 3 10 *");
calendar.set(Calendar.DAY_OF_MONTH, 2);
calendar.set(Calendar.MONTH, 10);
Date date = calendar.getTime();
calendar.add(Calendar.DAY_OF_MONTH, 1);
calendar.set(Calendar.HOUR_OF_DAY, 0);
calendar.set(Calendar.MINUTE, 0);
calendar.set(Calendar.SECOND, 0);
assertEquals(calendar.getTime(), date = trigger.getNextRunTime(null, date));
calendar.add(Calendar.SECOND, 1);
assertEquals(calendar.getTime(), date = trigger.getNextRunTime(null, date));
}
@Test
public void testWeekDaySequence() throws Exception {
CronTrigger trigger = new CronTrigger("0 0 7 ? * MON-FRI");