public void WhenAsterixSlashIsSet_GetMinutesWithCorrectNumberOfMinutesBetweenThem() { var cronParser = new CronParser(null); var expression2 = cronParser.Parse("*/2 * * * * *"); var expression3 = cronParser.Parse("*/3 * * * * *"); var expression4 = cronParser.Parse("*/4 * * * * *"); var expression5 = cronParser.Parse("*/5 * * * * *"); var expression6 = cronParser.Parse("*/6 * * * * *"); var expression10 = cronParser.Parse("*/10 * * * * *"); var expression12 = cronParser.Parse("*/12 * * * * *"); var expression15 = cronParser.Parse("*/15 * * * * *"); var expression20 = cronParser.Parse("*/20 * * * * *"); var expression30 = cronParser.Parse("*/30 * * * * *"); Assert.Equal("0,2,4,6,8,10,12,14,16,18,20,22,24,26,28,30,32,34,36,38,40,42,44,46,48,50,52,54,56,58", expression2.Minutes); Assert.Equal("0,3,6,9,12,15,18,21,24,27,30,33,36,39,42,45,48,51,54,57", expression3.Minutes); Assert.Equal("0,4,8,12,16,20,24,28,32,36,40,44,48,52,56", expression4.Minutes); Assert.Equal("0,5,10,15,20,25,30,35,40,45,50,55", expression5.Minutes); Assert.Equal("0,6,12,18,24,30,36,42,48,54", expression6.Minutes); Assert.Equal("0,10,20,30,40,50", expression10.Minutes); Assert.Equal("0,12,24,36,48", expression12.Minutes); Assert.Equal("0,15,30,45", expression15.Minutes); Assert.Equal("0,20,40", expression20.Minutes); Assert.Equal("0,30", expression30.Minutes); }
public void ShouldReturnFinder() { CronParser parser = new CronParser(); var result = parser.Parse("0 1 2 3 JAN ? 2000"); Assert.NotNull(result); }
public void WhenFiveAndEightIsSet_GetAllMinutesFiveAndEight() { var cronParser = new CronParser(null); var expression = cronParser.Parse("5,8 * * * * *"); Assert.Equal("5,8", expression.Minutes); }
public void GivenOnlyYear_WhenNextYear_ThenGetTimeUntilNextYear() { var cronDateTimeServiceMock = new Mock <ICronDateTimeService>(); cronDateTimeServiceMock.Setup(m => m.GetNow()).Returns(new DateTime(2018, 12, 30, 00, 00, 00)); var cronParser = new CronParser(cronDateTimeServiceMock.Object); var cronExpression = cronParser.Parse("* * * * * 2019"); var nextTimeToRun = cronExpression.GetNextTimeToRun(); Assert.Equal(new DateTime(2019, 01, 01, 00, 00, 00), nextTimeToRun); }
public void WhenRandomTimesWithNoYearIsSet_GetCorrespondingFieldsSet() { var cronParser = new CronParser(null); var expression = cronParser.Parse("5 12 1 2 0"); Assert.Equal("5", expression.Minutes); Assert.Equal("12", expression.Hours); Assert.Equal("1", expression.DayOfMonth); Assert.Equal("2", expression.Month); Assert.Equal("0", expression.DayOfWeek); Assert.Equal("*", expression.Year); }
public void GivenOnlyMinute_WhenMinuteIsZero_ThenGetMinutesUntilNextHourMatch() { var cronDateTimeServiceMock = new Mock <ICronDateTimeService>(); cronDateTimeServiceMock.Setup(m => m.GetNow()).Returns(new DateTime(2018, 09, 29, 20, 59, 59)); var cronParser = new CronParser(cronDateTimeServiceMock.Object); var cronExpression = cronParser.Parse("0 * * * * *"); var timeToNext = cronExpression.GetTimeToNext(); Assert.Equal(new TimeSpan(0, 0, 1), timeToNext); }
public void GivenOnlyMinute_WhenMinuteIsNextMonth_ThenGetMinutesUntilNextHourMatchInTheNextDay() { var cronDateTimeServiceMock = new Mock <ICronDateTimeService>(); cronDateTimeServiceMock.Setup(m => m.GetNow()).Returns(new DateTime(2018, 09, 30, 23, 30, 00)); var cronParser = new CronParser(cronDateTimeServiceMock.Object); var cronExpression = cronParser.Parse("10 * * * * *"); var timeToNext = cronExpression.GetTimeToNext(); Assert.Equal(new TimeSpan(0, 40, 0), timeToNext); }
public void GivenOnlyYear_WhenYearIsNow_ThenGetNextMinuteInThisYear() { var cronDateTimeServiceMock = new Mock <ICronDateTimeService>(); cronDateTimeServiceMock.Setup(m => m.GetNow()).Returns(new DateTime(2018, 12, 30, 15, 22, 07)); var cronParser = new CronParser(cronDateTimeServiceMock.Object); var cronExpression = cronParser.Parse("* * * * * 2018"); var timeToNext = cronExpression.GetTimeToNext(); Assert.Equal(new TimeSpan(0, 0, 53), timeToNext); }
public void GivenYearMonthDayAndTimeOfDay_WhenYearIsNow_ThenGetNextMinuteMatchInThisYear() { var cronDateTimeServiceMock = new Mock <ICronDateTimeService>(); cronDateTimeServiceMock.Setup(m => m.GetNow()).Returns(new DateTime(2018, 06, 15, 15, 22, 07)); var cronParser = new CronParser(cronDateTimeServiceMock.Object); var cronExpression = cronParser.Parse("23 15 05 08 * 2018"); var nextTimeToRun = cronExpression.GetNextTimeToRun(); Assert.Equal(new DateTime(2018, 08, 05, 15, 23, 00), nextTimeToRun); }
public void WhenOnlyAsterix_GetDefaultTime() { var cronParser = new CronParser(null); var expression = cronParser.Parse("* * * * * *"); Assert.Equal("*", expression.Minutes); Assert.Equal("*", expression.Hours); Assert.Equal("*", expression.DayOfMonth); Assert.Equal("*", expression.Month); Assert.Equal("*", expression.DayOfWeek); Assert.Equal("*", expression.Year); }
public void GivenOnlyHours_WhenHourExistWithinTheSameDay_ThenGetTimeUntilHourMatchInThisDay() { var cronDateTimeServiceMock = new Mock <ICronDateTimeService>(); cronDateTimeServiceMock.Setup(m => m.GetNow()).Returns(new DateTime(2018, 09, 29, 14, 15, 15)); var cronParser = new CronParser(cronDateTimeServiceMock.Object); var cronExpression = cronParser.Parse("* */6 * * * *"); var timeToNext = cronExpression.GetTimeToNext(); Assert.Equal(new TimeSpan(3, 44, 45), timeToNext); }
public void GivenOnlyDayInMonth_WheDayIsTodayAndTheLastMinuteOfTheDay_ThenGetTimeUntilNextTimeMatch() { var cronDateTimeServiceMock = new Mock <ICronDateTimeService>(); cronDateTimeServiceMock.Setup(m => m.GetNow()).Returns(new DateTime(2018, 09, 15, 23, 59, 15)); var cronParser = new CronParser(cronDateTimeServiceMock.Object); var cronExpression = cronParser.Parse("* * 15 * * *"); var timeToNext = cronExpression.GetTimeToNext(); Assert.Equal(new TimeSpan(29, 0, 0, 45), timeToNext); }
public void GivenOnlyMonth_WhenMonthIsPreviouslyInTheYear_ThenGetTimeUntilMonthMatchesNextYear() { var cronDateTimeServiceMock = new Mock <ICronDateTimeService>(); cronDateTimeServiceMock.Setup(m => m.GetNow()).Returns(new DateTime(2018, 12, 30, 15, 00, 15)); var cronParser = new CronParser(cronDateTimeServiceMock.Object); var cronExpression = cronParser.Parse("* * * 1 * *"); var nextTimeToRun = cronExpression.GetNextTimeToRun(); Assert.Equal(new DateTime(2019, 01, 01, 00, 00, 00), nextTimeToRun); }
public void GivenOnlyMinute_WhenMinuteExistLaterInThisHour_ThenGetAFewMinutes() { var cronDateTimeServiceMock = new Mock <ICronDateTimeService>(); cronDateTimeServiceMock.Setup(m => m.GetNow()).Returns(new DateTime(2018, 09, 29, 20, 22, 15)); var cronParser = new CronParser(cronDateTimeServiceMock.Object); var cronExpression = cronParser.Parse("30 * * * * *"); var nextTimeToRun = cronExpression.GetNextTimeToRun(); Assert.Equal(new DateTime(2018, 09, 29, 20, 30, 00), nextTimeToRun); }
public void GivenOnlyDayInMonth_WheDayIsPreviouslyInSameMonth_ThenGetTimeUntilNextTimeMatchNextMonth() { var cronDateTimeServiceMock = new Mock <ICronDateTimeService>(); cronDateTimeServiceMock.Setup(m => m.GetNow()).Returns(new DateTime(2018, 09, 15, 15, 00, 15)); var cronParser = new CronParser(cronDateTimeServiceMock.Object); var cronExpression = cronParser.Parse("* * 9 * * *"); var nextTimeToRun = cronExpression.GetNextTimeToRun(); Assert.Equal(new DateTime(2018, 10, 09, 00, 00, 00), nextTimeToRun); }
public void GivenOnlyMinuteAndHour_WhenTimeExistsLaterInTheDay_ThenGetTimeUntilNextTimeMatchInThisDay() { var cronDateTimeServiceMock = new Mock <ICronDateTimeService>(); cronDateTimeServiceMock.Setup(m => m.GetNow()).Returns(new DateTime(2018, 09, 29, 15, 15, 15)); var cronParser = new CronParser(cronDateTimeServiceMock.Object); var cronExpression = cronParser.Parse("20 18 * * * *"); var timeToNext = cronExpression.GetTimeToNext(); Assert.Equal(new TimeSpan(3, 4, 45), timeToNext); }
public void GivenOnlyHour_WhenHourIsNowWithinTheSameDayButTheLastMinute_ThenGetTimeUntilHourMatchInTheNextDay() { var cronDateTimeServiceMock = new Mock <ICronDateTimeService>(); cronDateTimeServiceMock.Setup(m => m.GetNow()).Returns(new DateTime(2018, 09, 29, 22, 59, 15)); var cronParser = new CronParser(cronDateTimeServiceMock.Object); var cronExpression = cronParser.Parse("* 22 * * * *"); var timeToNext = cronExpression.GetTimeToNext(); Assert.Equal(new TimeSpan(23, 00, 45), timeToNext); }
public void GivenOnlyHours_WhenHoursExistBeforeAndAfterNowInTheDay_ThenGetMinutesUntilNextHourMatchInThisDay() { var cronDateTimeServiceMock = new Mock <ICronDateTimeService>(); cronDateTimeServiceMock.Setup(m => m.GetNow()).Returns(new DateTime(2018, 09, 29, 22, 15, 15)); var cronParser = new CronParser(cronDateTimeServiceMock.Object); var cronExpression = cronParser.Parse("* 15,23 * * * *"); var timeToNext = cronExpression.GetTimeToNext(); Assert.Equal(new TimeSpan(0, 44, 45), timeToNext); }
public void GivenOnlyYear_WhenPreviousYear_ThenGetNull() { var cronDateTimeServiceMock = new Mock <ICronDateTimeService>(); cronDateTimeServiceMock.Setup(m => m.GetNow()).Returns(new DateTime(2018, 12, 30, 00, 00, 00)); var cronParser = new CronParser(cronDateTimeServiceMock.Object); var cronExpression = cronParser.Parse("* * * * * 2017"); var timeToNext = cronExpression.GetTimeToNext(); Assert.Null(timeToNext); }
public void GivenOnlyHour_WhenHourExistNextDay_ThenGetTimeUntilHourMatchInNextDay() { var cronDateTimeServiceMock = new Mock <ICronDateTimeService>(); cronDateTimeServiceMock.Setup(m => m.GetNow()).Returns(new DateTime(2018, 09, 29, 22, 15, 15)); var cronParser = new CronParser(cronDateTimeServiceMock.Object); var cronExpression = cronParser.Parse("* 15 * * * *"); var nextTimeToRun = cronExpression.GetNextTimeToRun(); Assert.Equal(new DateTime(2018, 09, 30, 15, 00, 00), nextTimeToRun); }
void initParser() { parserUnderTest = new CronParser(); }