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