Merge pull request #251 from dsyer/feature/crontest
# By Dave Syer * dsyer-feature/crontest: Add additional test for daylight savings glitch
This commit is contained in:
commit
e9f74450ad
|
@ -56,7 +56,7 @@ public class CronTriggerTests {
|
|||
@Parameters
|
||||
public static List<Object[]> getParameters() {
|
||||
List<Object[]> list = new ArrayList<Object[]>();
|
||||
list.add(new Object[] { new Date(), TimeZone.getDefault() });
|
||||
list.add(new Object[] { new Date(), TimeZone.getTimeZone("PST") });
|
||||
list.add(new Object[] { new Date(), TimeZone.getTimeZone("CET") });
|
||||
return list;
|
||||
}
|
||||
|
@ -694,6 +694,26 @@ public class CronTriggerTests {
|
|||
assertEquals(calendar.getTime(), date = trigger.nextExecutionTime(context3));
|
||||
}
|
||||
|
||||
@Test
|
||||
public void testDaylightSavingMissingHour() throws Exception {
|
||||
// This trigger has to be somewhere in between 2am and 3am
|
||||
CronTrigger trigger = new CronTrigger("0 10 2 * * *", timeZone);
|
||||
calendar.set(Calendar.DAY_OF_MONTH, 31);
|
||||
calendar.set(Calendar.MONTH, Calendar.MARCH);
|
||||
calendar.set(Calendar.YEAR, 2013);
|
||||
calendar.set(Calendar.HOUR_OF_DAY, 1);
|
||||
calendar.set(Calendar.SECOND, 54);
|
||||
Date date = calendar.getTime();
|
||||
TriggerContext context1 = getTriggerContext(date);
|
||||
if (timeZone.equals(TimeZone.getTimeZone("CET"))) {
|
||||
// Clocks go forward an hour so 2am doesn't exist in CET for this date
|
||||
calendar.add(Calendar.DAY_OF_MONTH, 1);
|
||||
}
|
||||
calendar.add(Calendar.HOUR_OF_DAY, 1);
|
||||
calendar.set(Calendar.MINUTE, 10);
|
||||
calendar.set(Calendar.SECOND, 0);
|
||||
assertEquals(calendar.getTime(), date = trigger.nextExecutionTime(context1));
|
||||
}
|
||||
|
||||
private void assertMatchesNextSecond(CronTrigger trigger, Calendar calendar) {
|
||||
Date date = calendar.getTime();
|
||||
|
|
Loading…
Reference in New Issue