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
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),
52 unsatisfiedBy(1, 1, 1, 2, 3, 2014),
53 satisfiedBy(1, 1, 1, 3, 3, 2014),
54 unsatisfiedBy(1, 1, 1, 4, 3, 2014),
55 unsatisfiedBy(1, 1, 1, 6, 4, 2014),
56 satisfiedBy(1, 1, 1, 7, 4, 2014),
57 unsatisfiedBy(1, 1, 1, 8, 4, 2014),
58 unsatisfiedBy(1, 1, 1, 4, 7, 2014),
59 unsatisfiedBy(1, 1, 1, 23, 11, 2014),
60 satisfiedBy(1, 1, 1, 24, 11, 2014),
61 unsatisfiedBy(1, 1, 1, 25, 11, 2014),
62 unsatisfiedBy(1, 1, 1, 7, 12, 2014),
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),
71 unsatisfiedBy(1, 1, 1, 2, 2, 2014),
72 satisfiedBy(1, 1, 1, 3, 2, 2014),
73 unsatisfiedBy(1, 1, 1, 4, 2, 2014),
74 unsatisfiedBy(1, 1, 1, 6, 4, 2014),
75 unsatisfiedBy(1, 1, 1, 7, 4, 2014),
76 unsatisfiedBy(1, 1, 1, 8, 4, 2014),
77 unsatisfiedBy(1, 1, 1, 4, 7, 2014),
78 unsatisfiedBy(1, 1, 1, 23, 11, 2014),
79 satisfiedBy(1, 1, 1, 24, 11, 2014),
80 unsatisfiedBy(1, 1, 1, 25, 11, 2014),
81 unsatisfiedBy(1, 1, 1, 7, 12, 2014),
82 satisfiedBy(1, 1, 1, 8, 12, 2014),
83 unsatisfiedBy(1, 1, 1, 9, 12, 2014));
84 }
85 }