Browse Source

Migrate CronTriggerTests to @⁠ParameterizedClass

This commit migrates CronTriggerTests to @⁠ParameterizedClass as a proof
of concept for how this can be applied across the code base.

See gh-35833
pull/35843/head
Sam Brannen 1 month ago
parent
commit
fac8708857
  1. 376
      spring-context/src/test/java/org/springframework/scheduling/support/CronTriggerTests.java

376
spring-context/src/test/java/org/springframework/scheduling/support/CronTriggerTests.java

@ -16,19 +16,16 @@ @@ -16,19 +16,16 @@
package org.springframework.scheduling.support;
import java.lang.annotation.ElementType;
import java.lang.annotation.Retention;
import java.lang.annotation.RetentionPolicy;
import java.lang.annotation.Target;
import java.util.Calendar;
import java.util.Date;
import java.util.GregorianCalendar;
import java.util.List;
import java.util.TimeZone;
import java.util.stream.Stream;
import org.junit.jupiter.params.ParameterizedTest;
import org.junit.jupiter.api.Test;
import org.junit.jupiter.params.ParameterizedClass;
import org.junit.jupiter.params.provider.Arguments;
import org.junit.jupiter.params.provider.MethodSource;
import org.junit.jupiter.params.provider.FieldSource;
import org.springframework.scheduling.TriggerContext;
@ -44,51 +41,55 @@ import static org.junit.jupiter.params.provider.Arguments.arguments; @@ -44,51 +41,55 @@ import static org.junit.jupiter.params.provider.Arguments.arguments;
* @author Juergen Hoeller
* @author Sam Brannen
*/
@ParameterizedClass
@FieldSource("parameters")
@SuppressWarnings("deprecation")
class CronTriggerTests {
static List<Arguments> parameters = List.of(
arguments(new Date(), TimeZone.getTimeZone("PST")),
arguments(new Date(), TimeZone.getTimeZone("CET")));
private final Calendar calendar = new GregorianCalendar();
private final Date localDateTime;
private final TimeZone timeZone;
private void setup(Date localDateTime, TimeZone timeZone) {
CronTriggerTests(Date localDateTime, TimeZone timeZone) {
this.calendar.setTime(localDateTime);
this.calendar.setTimeZone(timeZone);
roundup(this.calendar);
this.localDateTime = localDateTime;
this.timeZone = timeZone;
}
@ParameterizedCronTriggerTest
void matchAll(Date localDateTime, TimeZone timeZone) {
setup(localDateTime, timeZone);
@Test
void matchAll() {
CronTrigger trigger = new CronTrigger("* * * * * *", timeZone);
TriggerContext context = getTriggerContext(localDateTime);
assertThat(trigger.nextExecutionTime(context)).isEqualTo(this.calendar.getTime());
}
@ParameterizedCronTriggerTest
void matchLastSecond(Date localDateTime, TimeZone timeZone) {
setup(localDateTime, timeZone);
@Test
void matchLastSecond() {
CronTrigger trigger = new CronTrigger("* * * * * *", timeZone);
GregorianCalendar calendar = new GregorianCalendar();
calendar.set(Calendar.SECOND, 58);
assertMatchesNextSecond(trigger, calendar);
}
@ParameterizedCronTriggerTest
void matchSpecificSecond(Date localDateTime, TimeZone timeZone) {
setup(localDateTime, timeZone);
@Test
void matchSpecificSecond() {
CronTrigger trigger = new CronTrigger("10 * * * * *", timeZone);
GregorianCalendar calendar = new GregorianCalendar();
calendar.set(Calendar.SECOND, 9);
assertMatchesNextSecond(trigger, calendar);
}
@ParameterizedCronTriggerTest
void incrementSecondByOne(Date localDateTime, TimeZone timeZone) {
setup(localDateTime, timeZone);
@Test
void incrementSecondByOne() {
CronTrigger trigger = new CronTrigger("11 * * * * *", timeZone);
this.calendar.set(Calendar.SECOND, 10);
Date localDate = this.calendar.getTime();
@ -97,10 +98,8 @@ class CronTriggerTests { @@ -97,10 +98,8 @@ class CronTriggerTests {
assertThat(trigger.nextExecutionTime(context)).isEqualTo(this.calendar.getTime());
}
@ParameterizedCronTriggerTest
void incrementSecondWithPreviousExecutionTooEarly(Date localDateTime, TimeZone timeZone) {
setup(localDateTime, timeZone);
@Test
void incrementSecondWithPreviousExecutionTooEarly() {
CronTrigger trigger = new CronTrigger("11 * * * * *", timeZone);
this.calendar.set(Calendar.SECOND, 11);
SimpleTriggerContext context = new SimpleTriggerContext();
@ -110,10 +109,8 @@ class CronTriggerTests { @@ -110,10 +109,8 @@ class CronTriggerTests {
assertThat(trigger.nextExecutionTime(context)).isEqualTo(this.calendar.getTime());
}
@ParameterizedCronTriggerTest
void incrementSecondAndRollover(Date localDateTime, TimeZone timeZone) {
setup(localDateTime, timeZone);
@Test
void incrementSecondAndRollover() {
CronTrigger trigger = new CronTrigger("10 * * * * *", timeZone);
this.calendar.set(Calendar.SECOND, 11);
Date localDate = this.calendar.getTime();
@ -122,10 +119,8 @@ class CronTriggerTests { @@ -122,10 +119,8 @@ class CronTriggerTests {
assertThat(trigger.nextExecutionTime(context)).isEqualTo(this.calendar.getTime());
}
@ParameterizedCronTriggerTest
void secondRange(Date localDateTime, TimeZone timeZone) {
setup(localDateTime, timeZone);
@Test
void secondRange() {
CronTrigger trigger = new CronTrigger("10-15 * * * * *", timeZone);
this.calendar.set(Calendar.SECOND, 9);
assertMatchesNextSecond(trigger, this.calendar);
@ -133,10 +128,8 @@ class CronTriggerTests { @@ -133,10 +128,8 @@ class CronTriggerTests {
assertMatchesNextSecond(trigger, this.calendar);
}
@ParameterizedCronTriggerTest
void incrementMinute(Date localDateTime, TimeZone timeZone) {
setup(localDateTime, timeZone);
@Test
void incrementMinute() {
CronTrigger trigger = new CronTrigger("0 * * * * *", timeZone);
this.calendar.set(Calendar.MINUTE, 10);
Date localDate = this.calendar.getTime();
@ -151,10 +144,8 @@ class CronTriggerTests { @@ -151,10 +144,8 @@ class CronTriggerTests {
assertThat(localDate).isEqualTo(this.calendar.getTime());
}
@ParameterizedCronTriggerTest
void incrementMinuteByOne(Date localDateTime, TimeZone timeZone) {
setup(localDateTime, timeZone);
@Test
void incrementMinuteByOne() {
CronTrigger trigger = new CronTrigger("0 11 * * * *", timeZone);
this.calendar.set(Calendar.MINUTE, 10);
TriggerContext context = getTriggerContext(this.calendar.getTime());
@ -163,10 +154,8 @@ class CronTriggerTests { @@ -163,10 +154,8 @@ class CronTriggerTests {
assertThat(trigger.nextExecutionTime(context)).isEqualTo(this.calendar.getTime());
}
@ParameterizedCronTriggerTest
void incrementMinuteAndRollover(Date localDateTime, TimeZone timeZone) {
setup(localDateTime, timeZone);
@Test
void incrementMinuteAndRollover() {
CronTrigger trigger = new CronTrigger("0 10 * * * *", timeZone);
this.calendar.set(Calendar.MINUTE, 11);
this.calendar.set(Calendar.SECOND, 0);
@ -176,10 +165,8 @@ class CronTriggerTests { @@ -176,10 +165,8 @@ class CronTriggerTests {
assertThat(trigger.nextExecutionTime(context)).isEqualTo(this.calendar.getTime());
}
@ParameterizedCronTriggerTest
void incrementHour(Date localDateTime, TimeZone timeZone) {
setup(localDateTime, timeZone);
@Test
void incrementHour() {
CronTrigger trigger = new CronTrigger("0 0 * * * *", timeZone);
this.calendar.set(Calendar.MONTH, 9);
this.calendar.set(Calendar.DAY_OF_MONTH, 30);
@ -197,10 +184,8 @@ class CronTriggerTests { @@ -197,10 +184,8 @@ class CronTriggerTests {
assertThat(trigger.nextExecutionTime(context2)).isEqualTo(this.calendar.getTime());
}
@ParameterizedCronTriggerTest
void incrementHourAndRollover(Date localDateTime, TimeZone timeZone) {
setup(localDateTime, timeZone);
@Test
void incrementHourAndRollover() {
CronTrigger trigger = new CronTrigger("0 0 * * * *", timeZone);
this.calendar.set(Calendar.MONTH, 9);
this.calendar.set(Calendar.DAY_OF_MONTH, 10);
@ -219,10 +204,8 @@ class CronTriggerTests { @@ -219,10 +204,8 @@ class CronTriggerTests {
assertThat(trigger.nextExecutionTime(context2)).isEqualTo(this.calendar.getTime());
}
@ParameterizedCronTriggerTest
void incrementDayOfMonth(Date localDateTime, TimeZone timeZone) {
setup(localDateTime, timeZone);
@Test
void incrementDayOfMonth() {
CronTrigger trigger = new CronTrigger("0 0 0 * * *", timeZone);
this.calendar.set(Calendar.DAY_OF_MONTH, 1);
Date localDate = this.calendar.getTime();
@ -241,10 +224,8 @@ class CronTriggerTests { @@ -241,10 +224,8 @@ class CronTriggerTests {
assertThat(this.calendar.get(Calendar.DAY_OF_MONTH)).isEqualTo(3);
}
@ParameterizedCronTriggerTest
void incrementDayOfMonthByOne(Date localDateTime, TimeZone timeZone) {
setup(localDateTime, timeZone);
@Test
void incrementDayOfMonthByOne() {
CronTrigger trigger = new CronTrigger("* * * 10 * *", timeZone);
this.calendar.set(Calendar.DAY_OF_MONTH, 9);
Date localDate = this.calendar.getTime();
@ -256,10 +237,8 @@ class CronTriggerTests { @@ -256,10 +237,8 @@ class CronTriggerTests {
assertThat(trigger.nextExecutionTime(context)).isEqualTo(this.calendar.getTime());
}
@ParameterizedCronTriggerTest
void incrementDayOfMonthAndRollover(Date localDateTime, TimeZone timeZone) {
setup(localDateTime, timeZone);
@Test
void incrementDayOfMonthAndRollover() {
CronTrigger trigger = new CronTrigger("* * * 10 * *", timeZone);
this.calendar.set(Calendar.DAY_OF_MONTH, 11);
Date localDate = this.calendar.getTime();
@ -272,10 +251,8 @@ class CronTriggerTests { @@ -272,10 +251,8 @@ class CronTriggerTests {
assertThat(trigger.nextExecutionTime(context)).isEqualTo(this.calendar.getTime());
}
@ParameterizedCronTriggerTest
void dailyTriggerInShortMonth(Date localDateTime, TimeZone timeZone) {
setup(localDateTime, timeZone);
@Test
void dailyTriggerInShortMonth() {
CronTrigger trigger = new CronTrigger("0 0 0 * * *", timeZone);
this.calendar.set(Calendar.MONTH, 8); // September: 30 days
this.calendar.set(Calendar.DAY_OF_MONTH, 30);
@ -293,10 +270,8 @@ class CronTriggerTests { @@ -293,10 +270,8 @@ class CronTriggerTests {
assertThat(trigger.nextExecutionTime(context2)).isEqualTo(this.calendar.getTime());
}
@ParameterizedCronTriggerTest
void dailyTriggerInLongMonth(Date localDateTime, TimeZone timeZone) {
setup(localDateTime, timeZone);
@Test
void dailyTriggerInLongMonth() {
CronTrigger trigger = new CronTrigger("0 0 0 * * *", timeZone);
this.calendar.set(Calendar.MONTH, 7); // August: 31 days and not a daylight saving boundary
this.calendar.set(Calendar.DAY_OF_MONTH, 30);
@ -314,10 +289,8 @@ class CronTriggerTests { @@ -314,10 +289,8 @@ class CronTriggerTests {
assertThat(trigger.nextExecutionTime(context2)).isEqualTo(this.calendar.getTime());
}
@ParameterizedCronTriggerTest
void dailyTriggerOnDaylightSavingBoundary(Date localDateTime, TimeZone timeZone) {
setup(localDateTime, timeZone);
@Test
void dailyTriggerOnDaylightSavingBoundary() {
CronTrigger trigger = new CronTrigger("0 0 0 * * *", timeZone);
this.calendar.set(Calendar.MONTH, 9); // October: 31 days and a daylight saving boundary in CET
this.calendar.set(Calendar.DAY_OF_MONTH, 30);
@ -335,10 +308,8 @@ class CronTriggerTests { @@ -335,10 +308,8 @@ class CronTriggerTests {
assertThat(trigger.nextExecutionTime(context2)).isEqualTo(this.calendar.getTime());
}
@ParameterizedCronTriggerTest
void incrementMonth(Date localDateTime, TimeZone timeZone) {
setup(localDateTime, timeZone);
@Test
void incrementMonth() {
CronTrigger trigger = new CronTrigger("0 0 0 1 * *", timeZone);
this.calendar.set(Calendar.MONTH, 9);
this.calendar.set(Calendar.DAY_OF_MONTH, 30);
@ -356,10 +327,8 @@ class CronTriggerTests { @@ -356,10 +327,8 @@ class CronTriggerTests {
assertThat(trigger.nextExecutionTime(context2)).isEqualTo(this.calendar.getTime());
}
@ParameterizedCronTriggerTest
void incrementMonthAndRollover(Date localDateTime, TimeZone timeZone) {
setup(localDateTime, timeZone);
@Test
void incrementMonthAndRollover() {
CronTrigger trigger = new CronTrigger("0 0 0 1 * *", timeZone);
this.calendar.set(Calendar.MONTH, 11);
this.calendar.set(Calendar.DAY_OF_MONTH, 31);
@ -379,10 +348,8 @@ class CronTriggerTests { @@ -379,10 +348,8 @@ class CronTriggerTests {
assertThat(trigger.nextExecutionTime(context2)).isEqualTo(this.calendar.getTime());
}
@ParameterizedCronTriggerTest
void monthlyTriggerInLongMonth(Date localDateTime, TimeZone timeZone) {
setup(localDateTime, timeZone);
@Test
void monthlyTriggerInLongMonth() {
CronTrigger trigger = new CronTrigger("0 0 0 31 * *", timeZone);
this.calendar.set(Calendar.MONTH, 9);
this.calendar.set(Calendar.DAY_OF_MONTH, 30);
@ -395,10 +362,8 @@ class CronTriggerTests { @@ -395,10 +362,8 @@ class CronTriggerTests {
assertThat(trigger.nextExecutionTime(context)).isEqualTo(this.calendar.getTime());
}
@ParameterizedCronTriggerTest
void monthlyTriggerInShortMonth(Date localDateTime, TimeZone timeZone) {
setup(localDateTime, timeZone);
@Test
void monthlyTriggerInShortMonth() {
CronTrigger trigger = new CronTrigger("0 0 0 1 * *", timeZone);
this.calendar.set(Calendar.MONTH, 9);
this.calendar.set(Calendar.DAY_OF_MONTH, 30);
@ -412,10 +377,8 @@ class CronTriggerTests { @@ -412,10 +377,8 @@ class CronTriggerTests {
assertThat(trigger.nextExecutionTime(context)).isEqualTo(this.calendar.getTime());
}
@ParameterizedCronTriggerTest
void incrementDayOfWeekByOne(Date localDateTime, TimeZone timeZone) {
setup(localDateTime, timeZone);
@Test
void incrementDayOfWeekByOne() {
CronTrigger trigger = new CronTrigger("* * * * * 2", timeZone);
this.calendar.set(Calendar.DAY_OF_WEEK, 2);
Date localDate = this.calendar.getTime();
@ -428,10 +391,8 @@ class CronTriggerTests { @@ -428,10 +391,8 @@ class CronTriggerTests {
assertThat(this.calendar.get(Calendar.DAY_OF_WEEK)).isEqualTo(Calendar.TUESDAY);
}
@ParameterizedCronTriggerTest
void incrementDayOfWeekAndRollover(Date localDateTime, TimeZone timeZone) {
setup(localDateTime, timeZone);
@Test
void incrementDayOfWeekAndRollover() {
CronTrigger trigger = new CronTrigger("* * * * * 2", timeZone);
this.calendar.set(Calendar.DAY_OF_WEEK, 4);
Date localDate = this.calendar.getTime();
@ -444,10 +405,8 @@ class CronTriggerTests { @@ -444,10 +405,8 @@ class CronTriggerTests {
assertThat(this.calendar.get(Calendar.DAY_OF_WEEK)).isEqualTo(Calendar.TUESDAY);
}
@ParameterizedCronTriggerTest
void specificMinuteSecond(Date localDateTime, TimeZone timeZone) {
setup(localDateTime, timeZone);
@Test
void specificMinuteSecond() {
CronTrigger trigger = new CronTrigger("55 5 * * * *", timeZone);
this.calendar.set(Calendar.MINUTE, 4);
this.calendar.set(Calendar.SECOND, 54);
@ -463,10 +422,8 @@ class CronTriggerTests { @@ -463,10 +422,8 @@ class CronTriggerTests {
assertThat(actual).isEqualTo(this.calendar.getTime());
}
@ParameterizedCronTriggerTest
void specificHourSecond(Date localDateTime, TimeZone timeZone) {
setup(localDateTime, timeZone);
@Test
void specificHourSecond() {
CronTrigger trigger = new CronTrigger("55 * 10 * * *", timeZone);
this.calendar.set(Calendar.HOUR_OF_DAY, 9);
this.calendar.set(Calendar.SECOND, 54);
@ -483,10 +440,8 @@ class CronTriggerTests { @@ -483,10 +440,8 @@ class CronTriggerTests {
assertThat(actual).isEqualTo(this.calendar.getTime());
}
@ParameterizedCronTriggerTest
void specificMinuteHour(Date localDateTime, TimeZone timeZone) {
setup(localDateTime, timeZone);
@Test
void specificMinuteHour() {
CronTrigger trigger = new CronTrigger("* 5 10 * * *", timeZone);
this.calendar.set(Calendar.MINUTE, 4);
this.calendar.set(Calendar.HOUR_OF_DAY, 9);
@ -504,10 +459,8 @@ class CronTriggerTests { @@ -504,10 +459,8 @@ class CronTriggerTests {
assertThat(actual).isEqualTo(this.calendar.getTime());
}
@ParameterizedCronTriggerTest
void specificDayOfMonthSecond(Date localDateTime, TimeZone timeZone) {
setup(localDateTime, timeZone);
@Test
void specificDayOfMonthSecond() {
CronTrigger trigger = new CronTrigger("55 * * 3 * *", timeZone);
this.calendar.set(Calendar.DAY_OF_MONTH, 2);
this.calendar.set(Calendar.SECOND, 54);
@ -525,10 +478,8 @@ class CronTriggerTests { @@ -525,10 +478,8 @@ class CronTriggerTests {
assertThat(actual).isEqualTo(this.calendar.getTime());
}
@ParameterizedCronTriggerTest
void specificDate(Date localDateTime, TimeZone timeZone) {
setup(localDateTime, timeZone);
@Test
void specificDate() {
CronTrigger trigger = new CronTrigger("* * * 3 11 *", timeZone);
this.calendar.set(Calendar.DAY_OF_MONTH, 2);
this.calendar.set(Calendar.MONTH, 9);
@ -547,10 +498,8 @@ class CronTriggerTests { @@ -547,10 +498,8 @@ class CronTriggerTests {
assertThat(actual).isEqualTo(this.calendar.getTime());
}
@ParameterizedCronTriggerTest
void nonExistentSpecificDate(Date localDateTime, TimeZone timeZone) {
setup(localDateTime, timeZone);
@Test
void nonExistentSpecificDate() {
// TODO: maybe try and detect this as a special case in parser?
CronTrigger trigger = new CronTrigger("0 0 0 31 6 *", timeZone);
this.calendar.set(Calendar.DAY_OF_MONTH, 10);
@ -560,10 +509,8 @@ class CronTriggerTests { @@ -560,10 +509,8 @@ class CronTriggerTests {
assertThat(trigger.nextExecutionTime(context1)).isNull();
}
@ParameterizedCronTriggerTest
void leapYearSpecificDate(Date localDateTime, TimeZone timeZone) {
setup(localDateTime, timeZone);
@Test
void leapYearSpecificDate() {
CronTrigger trigger = new CronTrigger("0 0 0 29 2 *", timeZone);
this.calendar.set(Calendar.YEAR, 2007);
this.calendar.set(Calendar.DAY_OF_MONTH, 10);
@ -583,10 +530,8 @@ class CronTriggerTests { @@ -583,10 +530,8 @@ class CronTriggerTests {
assertThat(actual).isEqualTo(this.calendar.getTime());
}
@ParameterizedCronTriggerTest
void weekDaySequence(Date localDateTime, TimeZone timeZone) {
setup(localDateTime, timeZone);
@Test
void weekDaySequence() {
CronTrigger trigger = new CronTrigger("0 0 7 ? * MON-FRI", timeZone);
// This is a Saturday
this.calendar.set(2009, 8, 26);
@ -611,184 +556,138 @@ class CronTriggerTests { @@ -611,184 +556,138 @@ class CronTriggerTests {
assertThat(actual).isEqualTo(this.calendar.getTime());
}
@ParameterizedCronTriggerTest
void dayOfWeekIndifferent(Date localDateTime, TimeZone timeZone) {
setup(localDateTime, timeZone);
@Test
void dayOfWeekIndifferent() {
CronTrigger trigger1 = new CronTrigger("* * * 2 * *", timeZone);
CronTrigger trigger2 = new CronTrigger("* * * 2 * ?", timeZone);
assertThat(trigger2).isEqualTo(trigger1);
}
@ParameterizedCronTriggerTest
void secondIncrementer(Date localDateTime, TimeZone timeZone) {
setup(localDateTime, timeZone);
@Test
void secondIncrementer() {
CronTrigger trigger1 = new CronTrigger("57,59 * * * * *", timeZone);
CronTrigger trigger2 = new CronTrigger("57/2 * * * * *", timeZone);
assertThat(trigger2).isEqualTo(trigger1);
}
@ParameterizedCronTriggerTest
void secondIncrementerWithRange(Date localDateTime, TimeZone timeZone) {
setup(localDateTime, timeZone);
@Test
void secondIncrementerWithRange() {
CronTrigger trigger1 = new CronTrigger("1,3,5 * * * * *", timeZone);
CronTrigger trigger2 = new CronTrigger("1-6/2 * * * * *", timeZone);
assertThat(trigger2).isEqualTo(trigger1);
}
@ParameterizedCronTriggerTest
void hourIncrementer(Date localDateTime, TimeZone timeZone) {
setup(localDateTime, timeZone);
@Test
void hourIncrementer() {
CronTrigger trigger1 = new CronTrigger("* * 4,8,12,16,20 * * *", timeZone);
CronTrigger trigger2 = new CronTrigger("* * 4/4 * * *", timeZone);
assertThat(trigger2).isEqualTo(trigger1);
}
@ParameterizedCronTriggerTest
void dayNames(Date localDateTime, TimeZone timeZone) {
setup(localDateTime, timeZone);
@Test
void dayNames() {
CronTrigger trigger1 = new CronTrigger("* * * * * 0-6", timeZone);
CronTrigger trigger2 = new CronTrigger("* * * * * TUE,WED,THU,FRI,SAT,SUN,MON", timeZone);
assertThat(trigger2).isEqualTo(trigger1);
}
@ParameterizedCronTriggerTest
void sundayIsZero(Date localDateTime, TimeZone timeZone) {
setup(localDateTime, timeZone);
@Test
void sundayIsZero() {
CronTrigger trigger1 = new CronTrigger("* * * * * 0", timeZone);
CronTrigger trigger2 = new CronTrigger("* * * * * SUN", timeZone);
assertThat(trigger2).isEqualTo(trigger1);
}
@ParameterizedCronTriggerTest
void sundaySynonym(Date localDateTime, TimeZone timeZone) {
setup(localDateTime, timeZone);
@Test
void sundaySynonym() {
CronTrigger trigger1 = new CronTrigger("* * * * * 0", timeZone);
CronTrigger trigger2 = new CronTrigger("* * * * * 7", timeZone);
assertThat(trigger2).isEqualTo(trigger1);
}
@ParameterizedCronTriggerTest
void monthNames(Date localDateTime, TimeZone timeZone) {
setup(localDateTime, timeZone);
@Test
void monthNames() {
CronTrigger trigger1 = new CronTrigger("* * * * 1-12 *", timeZone);
CronTrigger trigger2 = new CronTrigger("* * * * FEB,JAN,MAR,APR,MAY,JUN,JUL,AUG,SEP,OCT,NOV,DEC *", timeZone);
assertThat(trigger2).isEqualTo(trigger1);
}
@ParameterizedCronTriggerTest
void monthNamesMixedCase(Date localDateTime, TimeZone timeZone) {
setup(localDateTime, timeZone);
@Test
void monthNamesMixedCase() {
CronTrigger trigger1 = new CronTrigger("* * * * 2 *", timeZone);
CronTrigger trigger2 = new CronTrigger("* * * * Feb *", timeZone);
assertThat(trigger2).isEqualTo(trigger1);
}
@ParameterizedCronTriggerTest
void secondInvalid(Date localDateTime, TimeZone timeZone) {
setup(localDateTime, timeZone);
@Test
void secondInvalid() {
assertThatIllegalArgumentException().isThrownBy(() -> new CronTrigger("77 * * * * *", timeZone));
}
@ParameterizedCronTriggerTest
void secondRangeInvalid(Date localDateTime, TimeZone timeZone) {
setup(localDateTime, timeZone);
@Test
void secondRangeInvalid() {
assertThatIllegalArgumentException().isThrownBy(() -> new CronTrigger("44-77 * * * * *", timeZone));
}
@ParameterizedCronTriggerTest
void minuteInvalid(Date localDateTime, TimeZone timeZone) {
setup(localDateTime, timeZone);
@Test
void minuteInvalid() {
assertThatIllegalArgumentException().isThrownBy(() -> new CronTrigger("* 77 * * * *", timeZone));
}
@ParameterizedCronTriggerTest
void minuteRangeInvalid(Date localDateTime, TimeZone timeZone) {
setup(localDateTime, timeZone);
@Test
void minuteRangeInvalid() {
assertThatIllegalArgumentException().isThrownBy(() -> new CronTrigger("* 44-77 * * * *", timeZone));
}
@ParameterizedCronTriggerTest
void hourInvalid(Date localDateTime, TimeZone timeZone) {
setup(localDateTime, timeZone);
@Test
void hourInvalid() {
assertThatIllegalArgumentException().isThrownBy(() -> new CronTrigger("* * 27 * * *", timeZone));
}
@ParameterizedCronTriggerTest
void hourRangeInvalid(Date localDateTime, TimeZone timeZone) {
setup(localDateTime, timeZone);
@Test
void hourRangeInvalid() {
assertThatIllegalArgumentException().isThrownBy(() -> new CronTrigger("* * 23-28 * * *", timeZone));
}
@ParameterizedCronTriggerTest
void dayInvalid(Date localDateTime, TimeZone timeZone) {
setup(localDateTime, timeZone);
@Test
void dayInvalid() {
assertThatIllegalArgumentException().isThrownBy(() -> new CronTrigger("* * * 45 * *", timeZone));
}
@ParameterizedCronTriggerTest
void dayRangeInvalid(Date localDateTime, TimeZone timeZone) {
setup(localDateTime, timeZone);
@Test
void dayRangeInvalid() {
assertThatIllegalArgumentException().isThrownBy(() -> new CronTrigger("* * * 28-45 * *", timeZone));
}
@ParameterizedCronTriggerTest
void monthInvalid(Date localDateTime, TimeZone timeZone) {
setup(localDateTime, timeZone);
@Test
void monthInvalid() {
assertThatIllegalArgumentException().isThrownBy(() -> new CronTrigger("0 0 0 25 13 ?", timeZone));
}
@ParameterizedCronTriggerTest
void monthInvalidTooSmall(Date localDateTime, TimeZone timeZone) {
setup(localDateTime, timeZone);
@Test
void monthInvalidTooSmall() {
assertThatIllegalArgumentException().isThrownBy(() -> new CronTrigger("0 0 0 25 0 ?", timeZone));
}
@ParameterizedCronTriggerTest
void dayOfMonthInvalid(Date localDateTime, TimeZone timeZone) {
setup(localDateTime, timeZone);
@Test
void dayOfMonthInvalid() {
assertThatIllegalArgumentException().isThrownBy(() -> new CronTrigger("0 0 0 32 12 ?", timeZone));
}
@ParameterizedCronTriggerTest
void monthRangeInvalid(Date localDateTime, TimeZone timeZone) {
setup(localDateTime, timeZone);
@Test
void monthRangeInvalid() {
assertThatIllegalArgumentException().isThrownBy(() -> new CronTrigger("* * * * 11-13 *", timeZone));
}
@ParameterizedCronTriggerTest
void whitespace(Date localDateTime, TimeZone timeZone) {
setup(localDateTime, timeZone);
@Test
void whitespace() {
CronTrigger trigger1 = new CronTrigger("* * * * 1 *", timeZone);
CronTrigger trigger2 = new CronTrigger("* * * * 1 *", timeZone);
assertThat(trigger2).isEqualTo(trigger1);
}
@ParameterizedCronTriggerTest
void monthSequence(Date localDateTime, TimeZone timeZone) {
setup(localDateTime, timeZone);
@Test
void monthSequence() {
CronTrigger trigger = new CronTrigger("0 30 23 30 1/3 ?", timeZone);
this.calendar.set(2010, 11, 30);
Date localDate = this.calendar.getTime();
@ -812,10 +711,8 @@ class CronTriggerTests { @@ -812,10 +711,8 @@ class CronTriggerTests {
assertThat(actual).isEqualTo(this.calendar.getTime());
}
@ParameterizedCronTriggerTest
void daylightSavingMissingHour(Date localDateTime, TimeZone timeZone) {
setup(localDateTime, timeZone);
@Test
void daylightSavingMissingHour() {
// This trigger has to be somewhere between 2:00 AM and 3:00 AM, so we
// use a cron expression for 2:10 AM every day.
CronTrigger trigger = new CronTrigger("0 10 2 * * *", timeZone);
@ -865,19 +762,4 @@ class CronTriggerTests { @@ -865,19 +762,4 @@ class CronTriggerTests {
return new SimpleTriggerContext(null, null, lastCompletionTime);
}
@Retention(RetentionPolicy.RUNTIME)
@Target(ElementType.METHOD)
@ParameterizedTest(name = "[{index}] localDateTime[{0}], time zone[{1}]")
@MethodSource("parameters")
@interface ParameterizedCronTriggerTest {
}
static Stream<Arguments> parameters() {
return Stream.of(
arguments(new Date(), TimeZone.getTimeZone("PST")),
arguments(new Date(), TimeZone.getTimeZone("CET"))
);
}
}

Loading…
Cancel
Save