View Javadoc

1   package com.atlassian.core.cron.parser;
2   
3   import junit.framework.TestCase;
4   
5   /**
6    *
7    */
8   public class TestCronDayOfWeekEntry extends TestCase
9   {
10      public void testOrdinal()
11      {
12          CronDayOfWeekEntry cronDayOfWeekEntry = new CronDayOfWeekEntry("2#2");
13          assertTrue(cronDayOfWeekEntry.isValid());
14          assertEquals("2", cronDayOfWeekEntry.getDayInMonthOrdinal());
15      }
16  
17      public void testDayOfWeekWithOrdinal()
18      {
19          CronDayOfWeekEntry cronDayOfWeekEntry = new CronDayOfWeekEntry("MON#2");
20          assertTrue(cronDayOfWeekEntry.isValid());
21          assertEquals("2", cronDayOfWeekEntry.getDayInMonthOrdinal());
22      }
23  
24      public void testDayOfWeekWithOrdinalLast()
25      {
26          CronDayOfWeekEntry cronDayOfWeekEntry = new CronDayOfWeekEntry("MONL");
27          assertTrue(cronDayOfWeekEntry.isValid());
28          assertEquals("L", cronDayOfWeekEntry.getDayInMonthOrdinal());
29  
30          cronDayOfWeekEntry = new CronDayOfWeekEntry("MONl");
31          assertTrue(cronDayOfWeekEntry.isValid());
32          assertEquals("L", cronDayOfWeekEntry.getDayInMonthOrdinal());
33  
34          cronDayOfWeekEntry = new CronDayOfWeekEntry("2L");
35          assertTrue(cronDayOfWeekEntry.isValid());
36          assertEquals("L", cronDayOfWeekEntry.getDayInMonthOrdinal());
37  
38          cronDayOfWeekEntry = new CronDayOfWeekEntry("2l");
39          assertTrue(cronDayOfWeekEntry.isValid());
40          assertEquals("L", cronDayOfWeekEntry.getDayInMonthOrdinal());
41      }
42  
43      public void testDayOfWeekWithInvalidOrdinals()
44      {
45          assertFalse(new CronDayOfWeekEntry("MON#5").isValid());
46          assertFalse(new CronDayOfWeekEntry("MON#6").isValid());
47          assertFalse(new CronDayOfWeekEntry("MON#7").isValid());
48      }
49  
50      public void testDayOfWeekSpecifed()
51      {
52          CronDayOfWeekEntry cronDayOfWeekEntry = new CronDayOfWeekEntry("MON,WED,FRI");
53          assertTrue(cronDayOfWeekEntry.isValid());
54          assertTrue(cronDayOfWeekEntry.isDaySpecified("MON"));
55          assertTrue(cronDayOfWeekEntry.isDaySpecified("2"));
56          assertFalse(cronDayOfWeekEntry.isDaySpecified("TUE"));
57          assertFalse(cronDayOfWeekEntry.isDaySpecified("3"));
58          assertTrue(cronDayOfWeekEntry.isDaySpecified("WED"));
59          assertTrue(cronDayOfWeekEntry.isDaySpecified("4"));
60          assertFalse(cronDayOfWeekEntry.isDaySpecified("THU"));
61          assertFalse(cronDayOfWeekEntry.isDaySpecified("5"));
62          assertTrue(cronDayOfWeekEntry.isDaySpecified("FRI"));
63          assertTrue(cronDayOfWeekEntry.isDaySpecified("6"));
64          assertFalse(cronDayOfWeekEntry.isDaySpecified("SAT"));
65          assertFalse(cronDayOfWeekEntry.isDaySpecified("7"));
66          assertFalse(cronDayOfWeekEntry.isDaySpecified("SUN"));
67          assertFalse(cronDayOfWeekEntry.isDaySpecified("1"));
68          assertNull(cronDayOfWeekEntry.getDayInMonthOrdinal());
69      }
70  
71      public void testValids()
72      {
73          assertTrue(new CronDayOfWeekEntry("?").isValid());
74          assertTrue(new CronDayOfWeekEntry("*").isValid());
75      }
76  
77      public void testInvalids()
78      {
79          assertFalse(new CronDayOfWeekEntry("MON#MON").isValid());
80          assertFalse(new CronDayOfWeekEntry("4#MON").isValid());
81          assertFalse(new CronDayOfWeekEntry("9#1").isValid());
82          assertFalse(new CronDayOfWeekEntry("#").isValid());
83          assertFalse(new CronDayOfWeekEntry("##").isValid());
84          assertFalse(new CronDayOfWeekEntry("0#1").isValid());
85          assertFalse(new CronDayOfWeekEntry("#,MON").isValid());
86          assertFalse(new CronDayOfWeekEntry("    ").isValid());
87          assertFalse(new CronDayOfWeekEntry(null).isValid());
88          assertFalse(new CronDayOfWeekEntry("").isValid());
89          assertFalse(new CronDayOfWeekEntry("#?").isValid());
90          assertFalse(new CronDayOfWeekEntry("MON-WED").isValid()); // We don't support this in the editor
91          assertFalse(new CronDayOfWeekEntry("1-6").isValid()); // We don't support this in the editor
92          assertFalse(new CronDayOfWeekEntry("%").isValid());
93          assertFalse(new CronDayOfWeekEntry("MON#L").isValid());
94          assertFalse(new CronDayOfWeekEntry("MON#l").isValid());
95          assertFalse(new CronDayOfWeekEntry("2#l").isValid());
96      }
97  
98      public void testGetDaysAsNumbers()
99      {
100         String monTueWed = "2,3,4";
101         CronDayOfWeekEntry cronDayOfWeekEntry = new CronDayOfWeekEntry(monTueWed);
102         assertEquals(monTueWed, cronDayOfWeekEntry.getDaysAsNumbers());
103         String monTueWedWords = "MON,TUE,WED";
104         cronDayOfWeekEntry = new CronDayOfWeekEntry(monTueWedWords);
105         assertEquals(monTueWed, cronDayOfWeekEntry.getDaysAsNumbers());
106     }
107 
108 }