public void GivenAHeyRemember_WithACronExpression_NextDateShouldEvaluteAsFollows(string cronExpression, string expectedDateStr, string startingDateStr)
        {
            DateTime       startingDate = DateTime.Parse(startingDateStr);
            HeyRememberDto hey          = new HeyRememberDto()
            {
                When           = new [] { startingDate },
                CronExpression = cronExpression
            };

            DateTime expected = DateTime.Parse(expectedDateStr);
            FindDatesFromHeyRemember findDates = new FindDatesFromHeyRemember(hey);
            DateTime nextDate = findDates.Next(startingDate);

            Assert.AreEqual(expected, nextDate);
        }
        public void GivenAHeyRemember_WithACronExpression_IfScheduledToday_NextDateShouldEvaluteAsFollows()
        {
            DateTime startingDate = DateTime.UtcNow;
            DateTime expected     = startingDate.AddMinutes(30);

            HeyRememberDto hey = new HeyRememberDto()
            {
                When           = new[] { startingDate },
                CronExpression = $"{expected.Minute} {expected.Hour} * * *"
            };

            FindDatesFromHeyRemember findDates = new FindDatesFromHeyRemember(hey);
            DateTime nextDate = findDates.Next(startingDate);

            Assert.That(nextDate, Is.EqualTo(expected).Within(TimeSpan.FromMinutes(1)));
        }