View Javadoc

1   package com.atlassian.scheduler.core.tests;
2   
3   import org.junit.Test;
4   
5   import static com.atlassian.scheduler.core.tests.CronExpressionAssertions.satisfiedBy;
6   import static com.atlassian.scheduler.core.tests.CronExpressionAssertions.unsatisfiedBy;
7   
8   /**
9    * @since v1.5
10   */
11  public abstract class CronExpressionMonthTest extends AbstractCronExpressionTest {
12      public CronExpressionMonthTest(CronFactory cronFactory) {
13          super(cronFactory);
14      }
15  
16      @Test
17      public void testMonthName_single() {
18          assertCron("Checking FEB", "0 0 0 ? FEB 2",
19                  satisfiedBy(0, 0, 0, 3, 2, 2014),
20                  satisfiedBy(0, 0, 0, 10, 2, 2014),
21                  satisfiedBy(0, 0, 0, 17, 2, 2014),
22                  satisfiedBy(0, 0, 0, 24, 2, 2014),
23                  unsatisfiedBy(1, 0, 0, 3, 2, 2014),
24                  unsatisfiedBy(0, 1, 0, 3, 2, 2014),
25                  unsatisfiedBy(0, 0, 1, 3, 2, 2014),
26                  unsatisfiedBy(0, 0, 0, 4, 2, 2014),
27                  unsatisfiedBy(0, 0, 0, 3, 3, 2014),
28                  satisfiedBy(0, 0, 0, 2, 2, 2015));
29      }
30  
31      @Test
32      public void testMonthName_normalRange() {
33          assertCron("Checking FEB-NOV - Other field mismatches", "1 1 1 ? FEB-NOV 2",
34                  unsatisfiedBy(0, 1, 1, 3, 2, 2014),
35                  unsatisfiedBy(2, 1, 1, 3, 2, 2014),
36                  unsatisfiedBy(1, 0, 1, 3, 2, 2014),
37                  unsatisfiedBy(1, 2, 1, 3, 2, 2014),
38                  unsatisfiedBy(1, 1, 0, 3, 2, 2014),
39                  unsatisfiedBy(1, 1, 2, 3, 2, 2014));
40  
41          assertCron("Checking FEB-NOV - February", "1 1 1 ? FEB-NOV MON",
42                  satisfiedBy(1, 1, 1, 3, 2, 2014),
43                  satisfiedBy(1, 1, 1, 10, 2, 2014),
44                  satisfiedBy(1, 1, 1, 17, 2, 2014),
45                  satisfiedBy(1, 1, 1, 24, 2, 2014),
46                  unsatisfiedBy(1, 1, 1, 2, 2, 2014),
47                  unsatisfiedBy(1, 1, 1, 4, 2, 2014),
48                  satisfiedBy(1, 1, 1, 2, 2, 2015));
49  
50          assertCron("Checking FEB-NOV - Other months", "1 1 1 ? FEB-NOV 2",
51                  unsatisfiedBy(1, 1, 1, 6, 1, 2014),  // January
52                  unsatisfiedBy(1, 1, 1, 2, 3, 2014),  // March
53                  satisfiedBy(1, 1, 1, 3, 3, 2014),
54                  unsatisfiedBy(1, 1, 1, 4, 3, 2014),
55                  unsatisfiedBy(1, 1, 1, 6, 4, 2014),  // April
56                  satisfiedBy(1, 1, 1, 7, 4, 2014),
57                  unsatisfiedBy(1, 1, 1, 8, 4, 2014),
58                  unsatisfiedBy(1, 1, 1, 4, 7, 2014),  // July
59                  unsatisfiedBy(1, 1, 1, 23, 11, 2014),  // November
60                  satisfiedBy(1, 1, 1, 24, 11, 2014),
61                  unsatisfiedBy(1, 1, 1, 25, 11, 2014),
62                  unsatisfiedBy(1, 1, 1, 7, 12, 2014),  // December
63                  unsatisfiedBy(1, 1, 1, 8, 12, 2014),
64                  unsatisfiedBy(1, 1, 1, 9, 12, 2014));
65      }
66  
67      @Test
68      public void testCronMonthName_wrappingRange() {
69          assertCron("Checking NOV-FEB", "1 1 1 ? NOV-FEB MON",
70                  satisfiedBy(1, 1, 1, 6, 1, 2014),  // January
71                  unsatisfiedBy(1, 1, 1, 2, 2, 2014),  // February
72                  satisfiedBy(1, 1, 1, 3, 2, 2014),
73                  unsatisfiedBy(1, 1, 1, 4, 2, 2014),
74                  unsatisfiedBy(1, 1, 1, 6, 4, 2014),  // April
75                  unsatisfiedBy(1, 1, 1, 7, 4, 2014),
76                  unsatisfiedBy(1, 1, 1, 8, 4, 2014),
77                  unsatisfiedBy(1, 1, 1, 4, 7, 2014),  // July
78                  unsatisfiedBy(1, 1, 1, 23, 11, 2014),  // November
79                  satisfiedBy(1, 1, 1, 24, 11, 2014),
80                  unsatisfiedBy(1, 1, 1, 25, 11, 2014),
81                  unsatisfiedBy(1, 1, 1, 7, 12, 2014),  // December
82                  satisfiedBy(1, 1, 1, 8, 12, 2014),
83                  unsatisfiedBy(1, 1, 1, 9, 12, 2014));
84      }
85  }