1*db33ddbdSWill Schurman package host.exp.exponent
2*db33ddbdSWill Schurman 
3*db33ddbdSWill Schurman import host.exp.exponent.notifications.helpers.ExpoCronParser.createCronInstance
4*db33ddbdSWill Schurman import com.cronutils.model.time.ExecutionTime
5*db33ddbdSWill Schurman import org.joda.time.DateTime
6*db33ddbdSWill Schurman import org.junit.Assert
7*db33ddbdSWill Schurman import org.junit.Test
8*db33ddbdSWill Schurman import java.util.HashMap
9*db33ddbdSWill Schurman 
10*db33ddbdSWill Schurman class NotificationTest {
11*db33ddbdSWill Schurman   @Test
calendarNextExecutionTestOnenull12*db33ddbdSWill Schurman   fun calendarNextExecutionTestOne() {
13*db33ddbdSWill Schurman     val data: HashMap<String?, Any?> = object : HashMap<String?, Any?>() {
14*db33ddbdSWill Schurman       init {
15*db33ddbdSWill Schurman         put("day", 10)
16*db33ddbdSWill Schurman         put("month", 12)
17*db33ddbdSWill Schurman         put("year", 2020)
18*db33ddbdSWill Schurman       }
19*db33ddbdSWill Schurman     }
20*db33ddbdSWill Schurman     val cron = createCronInstance(data)
21*db33ddbdSWill Schurman     val testDate = DateTime(2019, 1, 1, 10, 10, 0)
22*db33ddbdSWill Schurman     val dateTime = ExecutionTime.forCron(cron).nextExecution(testDate)
23*db33ddbdSWill Schurman     Assert.assertEquals(DateTime(2020, 12, 10, 0, 0, 0), dateTime)
24*db33ddbdSWill Schurman   }
25*db33ddbdSWill Schurman 
26*db33ddbdSWill Schurman   @Test
calendarNextExecutionTestTwonull27*db33ddbdSWill Schurman   fun calendarNextExecutionTestTwo() {
28*db33ddbdSWill Schurman     val data: HashMap<String?, Any?> = object : HashMap<String?, Any?>() {
29*db33ddbdSWill Schurman       init {
30*db33ddbdSWill Schurman         put("weekDay", 6) // sun-sat
31*db33ddbdSWill Schurman         put("month", 5)
32*db33ddbdSWill Schurman         put("hour", 8)
33*db33ddbdSWill Schurman         put("second", 0)
34*db33ddbdSWill Schurman         put("minute", 0)
35*db33ddbdSWill Schurman       }
36*db33ddbdSWill Schurman     }
37*db33ddbdSWill Schurman     val cron = createCronInstance(data)
38*db33ddbdSWill Schurman     val testDate = DateTime(2019, 5, 16, 8, 1, 0)
39*db33ddbdSWill Schurman     val dateTime = ExecutionTime.forCron(cron).nextExecution(testDate)
40*db33ddbdSWill Schurman     Assert.assertEquals(DateTime(2019, 5, 17, 8, 0, 0), dateTime)
41*db33ddbdSWill Schurman   }
42*db33ddbdSWill Schurman 
43*db33ddbdSWill Schurman   @Test
calendarNextExecutionTestThreenull44*db33ddbdSWill Schurman   fun calendarNextExecutionTestThree() {
45*db33ddbdSWill Schurman     val data: HashMap<String?, Any?> = object : HashMap<String?, Any?>() {
46*db33ddbdSWill Schurman       init {
47*db33ddbdSWill Schurman         put("weekDay", 6) // sun-sat
48*db33ddbdSWill Schurman         put("hour", 8)
49*db33ddbdSWill Schurman         put("second", 30)
50*db33ddbdSWill Schurman         put("minute", 25)
51*db33ddbdSWill Schurman       }
52*db33ddbdSWill Schurman     }
53*db33ddbdSWill Schurman     val cron = createCronInstance(data)
54*db33ddbdSWill Schurman     val testDate = DateTime(2019, 5, 16, 8, 1, 0)
55*db33ddbdSWill Schurman     val dateTime = ExecutionTime.forCron(cron).nextExecution(testDate)
56*db33ddbdSWill Schurman     Assert.assertEquals(DateTime(2019, 5, 17, 8, 25, 30), dateTime)
57*db33ddbdSWill Schurman   }
58*db33ddbdSWill Schurman }
59