|
1 | 1 | /*
|
2 |
| - * Copyright 2002-2010 the original author or authors. |
| 2 | + * Copyright 2002-2011 the original author or authors. |
3 | 3 | *
|
4 | 4 | * Licensed under the Apache License, Version 2.0 (the "License");
|
5 | 5 | * you may not use this file except in compliance with the License.
|
|
16 | 16 |
|
17 | 17 | package org.springframework.scheduling.support;
|
18 | 18 |
|
19 |
| -import static org.junit.Assert.assertEquals; |
20 |
| - |
21 | 19 | import java.util.ArrayList;
|
22 | 20 | import java.util.Calendar;
|
23 | 21 | import java.util.Date;
|
|
30 | 28 | import org.junit.runner.RunWith;
|
31 | 29 | import org.junit.runners.Parameterized;
|
32 | 30 | import org.junit.runners.Parameterized.Parameters;
|
| 31 | + |
33 | 32 | import org.springframework.scheduling.TriggerContext;
|
34 | 33 |
|
| 34 | +import static org.junit.Assert.*; |
| 35 | + |
35 | 36 | /**
|
36 | 37 | * @author Dave Syer
|
37 | 38 | * @author Mark Fisher
|
@@ -670,6 +671,28 @@ public void testWhitespace() throws Exception {
|
670 | 671 | assertEquals(trigger1, trigger2);
|
671 | 672 | }
|
672 | 673 |
|
| 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 | + |
673 | 696 |
|
674 | 697 | private void assertMatchesNextSecond(CronTrigger trigger, Calendar calendar) {
|
675 | 698 | Date date = calendar.getTime();
|
|
0 commit comments