Skip to content

Commit cee6cb8

Browse files
committed
added test for month sequence (SPR-7807)
1 parent 19c6a4e commit cee6cb8

File tree

1 file changed

+26
-3
lines changed

1 file changed

+26
-3
lines changed

org.springframework.context/src/test/java/org/springframework/scheduling/support/CronTriggerTests.java

Lines changed: 26 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -1,5 +1,5 @@
11
/*
2-
* Copyright 2002-2010 the original author or authors.
2+
* Copyright 2002-2011 the original author or authors.
33
*
44
* Licensed under the Apache License, Version 2.0 (the "License");
55
* you may not use this file except in compliance with the License.
@@ -16,8 +16,6 @@
1616

1717
package org.springframework.scheduling.support;
1818

19-
import static org.junit.Assert.assertEquals;
20-
2119
import java.util.ArrayList;
2220
import java.util.Calendar;
2321
import java.util.Date;
@@ -30,8 +28,11 @@
3028
import org.junit.runner.RunWith;
3129
import org.junit.runners.Parameterized;
3230
import org.junit.runners.Parameterized.Parameters;
31+
3332
import org.springframework.scheduling.TriggerContext;
3433

34+
import static org.junit.Assert.*;
35+
3536
/**
3637
* @author Dave Syer
3738
* @author Mark Fisher
@@ -670,6 +671,28 @@ public void testWhitespace() throws Exception {
670671
assertEquals(trigger1, trigger2);
671672
}
672673

674+
@Test
675+
public void testMonthSequence() throws Exception {
676+
CronTrigger trigger = new CronTrigger("0 30 23 30 1/3 ?", timeZone);
677+
calendar.set(2010, 11, 30);
678+
Date date = calendar.getTime();
679+
// set expected next trigger time
680+
calendar.set(Calendar.HOUR_OF_DAY, 23);
681+
calendar.set(Calendar.MINUTE, 30);
682+
calendar.set(Calendar.SECOND, 0);
683+
calendar.add(Calendar.MONTH, 1);
684+
TriggerContext context1 = getTriggerContext(date);
685+
assertEquals(calendar.getTime(), date = trigger.nextExecutionTime(context1));
686+
// Next trigger is 3 months latter
687+
calendar.add(Calendar.MONTH, 3);
688+
TriggerContext context2 = getTriggerContext(date);
689+
assertEquals(calendar.getTime(), date = trigger.nextExecutionTime(context2));
690+
// Next trigger is 3 months latter
691+
calendar.add(Calendar.MONTH, 3);
692+
TriggerContext context3 = getTriggerContext(date);
693+
assertEquals(calendar.getTime(), date = trigger.nextExecutionTime(context3));
694+
}
695+
673696

674697
private void assertMatchesNextSecond(CronTrigger trigger, Calendar calendar) {
675698
Date date = calendar.getTime();

0 commit comments

Comments
 (0)