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