コード例 #1
0
        public void RunEveryFourWeeksOnWeekdays()
        {
            var template = new WeeklyScheduleTemplate(4);

            template[DayOfWeek.Monday]    = true;
            template[DayOfWeek.Tuesday]   = true;
            template[DayOfWeek.Wednesday] = true;
            template[DayOfWeek.Thursday]  = true;
            template[DayOfWeek.Friday]    = true;

            var startDate = new Date(2019, 10, 24);

            var actual = template.GetDates(startDate).Take(10);

            actual.Should().Equal(new Date[] {
                new Date(2019, 10, 24),
                new Date(2019, 10, 25),
                new Date(2019, 11, 18),
                new Date(2019, 11, 19),
                new Date(2019, 11, 20),
                new Date(2019, 11, 21),
                new Date(2019, 11, 22),
                new Date(2019, 12, 16),
                new Date(2019, 12, 17),
                new Date(2019, 12, 18)
            });
        }
コード例 #2
0
        public void ValidateAtLeastOneDaySelected()
        {
            var template = new WeeklyScheduleTemplate(1);

            var errors = template.Validate().ToList();

            errors.Should().BeEquivalentTo(new string[] { "Weekly schedule must occur on atleast 1 day" });
        }
コード例 #3
0
        public void ValidateEveryNotLessThanZero()
        {
            var template = new WeeklyScheduleTemplate(-1);

            var errors = template.Validate().ToList();

            errors.Should().BeEquivalentTo(new string[] {
                "Weekly schedule must occur atleast every 1 weeks",
                "Weekly schedule must occur on atleast 1 day"
            });
        }
コード例 #4
0
        public void FirstRunDateAfterDate()
        {
            var template = new WeeklyScheduleTemplate(1);

            template[DayOfWeek.Wednesday] = true;

            var startDate = new Date(2019, 10, 25);

            var actual = template.GetDates(startDate).First();

            actual.Should().Be(new Date(2019, 10, 30));
        }
コード例 #5
0
        public void FirstRunDateBetweenDates()
        {
            var template = new WeeklyScheduleTemplate(1);

            template[DayOfWeek.Wednesday] = true;
            template[DayOfWeek.Saturday]  = true;

            var startDate = new Date(2019, 10, 24);

            var actual = template.GetDates(startDate).First();

            actual.Should().Be(new Date(2019, 10, 26));
        }
コード例 #6
0
        public void RunEvery2WeeksOnMonday()
        {
            var template = new WeeklyScheduleTemplate(2);

            template[DayOfWeek.Monday] = true;

            var startDate = new Date(2019, 10, 24);

            var actual = template.GetDates(startDate).Take(5);

            actual.Should().Equal(new Date[] {
                new Date(2019, 10, 28),
                new Date(2019, 11, 11),
                new Date(2019, 11, 25),
                new Date(2019, 12, 09),
                new Date(2019, 12, 23)
            });
        }
コード例 #7
0
        public void RunEveryWeekOnWednesdayAndSunday()
        {
            var template = new WeeklyScheduleTemplate(1);

            template[DayOfWeek.Wednesday] = true;
            template[DayOfWeek.Sunday]    = true;

            var startDate = new Date(2019, 10, 24);

            var actual = template.GetDates(startDate).Take(5);

            actual.Should().Equal(new Date[] {
                new Date(2019, 10, 27),
                new Date(2019, 10, 30),
                new Date(2019, 11, 03),
                new Date(2019, 11, 06),
                new Date(2019, 11, 10)
            });
        }
コード例 #8
0
        public void WeeklyEveryMondayAt17_30()
        {
            var dateTemplate = new WeeklyScheduleTemplate(1);

            dateTemplate[DayOfWeek.Monday] = true;
            var timeTemplate = new ExactTimeScheduleTemplate(17, 30);

            var template = new ScheduleTemplate(dateTemplate, timeTemplate);

            var startDate = new DateTime(2019, 10, 23, 04, 34, 56);

            var schedule = new ScheduleInstance(template, startDate);

            schedule.Take(5).Should().Equal(new DateTime[] {
                new DateTime(2019, 10, 28, 17, 30, 00),
                new DateTime(2019, 11, 04, 17, 30, 00),
                new DateTime(2019, 11, 11, 17, 30, 00),
                new DateTime(2019, 11, 18, 17, 30, 00),
                new DateTime(2019, 11, 25, 17, 30, 00)
            });
        }
コード例 #9
0
 public IntermediateWeeklyScheduleBuilder(ScheduleTemplate template)
     : base(template)
 {
     _DateTemplate = (WeeklyScheduleTemplate)template.DateTemplate;
 }
コード例 #10
0
 public WeekScheduleBuilder(ScheduleTemplate template)
 {
     _Template     = template;
     _DateTemplate = (WeeklyScheduleTemplate)template.DateTemplate;
 }