Example #1
0
        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);
        }
Example #3
0
        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);
        }
Example #5
0
        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);
        }
Example #10
0
        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);
        }
Example #21
0
 void initParser()
 {
     parserUnderTest = new CronParser();
 }