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