ScheduleExpression every10Secs = this.getTimezoneSpecificScheduleExpression();
every10Secs.second("*/10");
every10Secs.minute("*");
every10Secs.hour("*");
CalendarBasedTimeout calendarTimeout = new CalendarBasedTimeout(every10Secs);
Calendar firstTimeout = calendarTimeout.getFirstTimeout();
int firstTimeoutSecond = firstTimeout.get(Calendar.SECOND);
Assert.assertTrue("Unexpected second " + firstTimeoutSecond + " in first timeout " + firstTimeout,
firstTimeoutSecond % 10 == 0);
Calendar previousTimeout = firstTimeout;
for (int i = 0; i < 5; i++) {
Calendar nextTimeout = calendarTimeout.getNextTimeout(previousTimeout);
int nextTimeoutSecond = nextTimeout.get(Calendar.SECOND);
Assert.assertTrue("Unexpected second " + nextTimeoutSecond + " in next timeout " + nextTimeout,
nextTimeoutSecond % 10 == 0);
previousTimeout = nextTimeout;