コード例 #1
0
        public void Should_be_able_to_satisfy_last_weekday()
        {
            var field = new CronDayOfMonth("LW");

            var date = new DateTime(2011, 01, 01, 0, 0, 0);

            Assert.AreEqual(date.AddDays(30), field.GetNext(date));
        }
コード例 #2
0
        public void Should_be_able_to_satisfy_firstday_saturday_weekday()
        {
            var field = new CronDayOfMonth("1W");

            var date = new DateTime(2011, 01, 01, 0, 0, 0);

            Assert.AreEqual(date.AddDays(2), field.SnapForward(date));
        }
コード例 #3
0
        public void Should_be_able_to_satisfy_asterisk_value()
        {
            var field = new CronDayOfMonth("*");

            var date = new DateTime(2011, 01, 01, 0, 0, 0);

            for (var i = 0; i < 32; i++)
            {
                Assert.AreEqual(date, field.GetNext(date));

                date = date.AddDays(1);
            }
        }
コード例 #4
0
        public void Should_be_able_to_satisfy_asterisk_value()
        {
            var field = new CronDayOfMonth("*");

            var date = new DateTime(2011, 01, 01, 0, 0, 0);

            for (var i = 0; i < 32; i++)
            {
                Assert.AreEqual(date, field.SnapForward(date));

                date = date.AddDays(1);
            }
        }
コード例 #5
0
        public void Should_be_able_to_satisfy_a_stepped_values()
        {
            var field = new CronDayOfMonth("5-10/5");

            var control = new DateTime(2011, 01, 01, 0, 0, 0);
            var date    = field.GetNext(control);

            Assert.AreEqual(control.AddDays(4), date);
            date = field.GetNext(date.AddDays(1));

            Assert.AreEqual(control.AddDays(9), date);
            date = field.GetNext(date.AddDays(1));

            Assert.AreEqual(control.AddDays(35), date);
        }
コード例 #6
0
        public void Should_be_able_to_satisfy_a_stepped_values()
        {
            var field = new CronDayOfMonth("5-10/5");

            var control = new DateTime(2011, 01, 01, 0, 0, 0);
            var date = field.SnapForward(control);

            Assert.AreEqual(control.AddDays(4), date);
            date = field.SnapForward(date.AddDays(1));

            Assert.AreEqual(control.AddDays(9), date);
            date = field.SnapForward(date.AddDays(1));

            Assert.AreEqual(control.AddDays(35), date);
        }
コード例 #7
0
        public void Should_be_able_to_satisfy_individual_values()
        {
            var field = new CronDayOfMonth("5,10,15,20");

            var control = new DateTime(2011, 01, 01, 0, 0, 0);
            var date    = field.GetNext(control);

            Assert.AreEqual(control.AddDays(4), date);
            date = field.GetNext(date.AddDays(1));

            Assert.AreEqual(control.AddDays(9), date);
            date = field.GetNext(date.AddDays(1));

            Assert.AreEqual(control.AddDays(14), date);
            date = field.GetNext(date.AddDays(1));

            Assert.AreEqual(control.AddDays(19), date);
            date = field.GetNext(date.AddDays(1));

            Assert.AreEqual(control.AddDays(35), date);
        }
コード例 #8
0
        public void Should_fail_with_non_standard_character_when_specification_factory_does_not_support_it()
        {
            var factory = new DefaultSpecificationFactory(parameters =>
            {
                return(!parameters.Expression.Equals("H", StringComparison.InvariantCultureIgnoreCase)
                    ? null
                    : new Specification <CronField.Candidate>(candidate => candidate.Date.Day % 2 == 0));
            });

            CronDayOfMonth field   = null;
            var            control = new DateTime(DateTime.Now.Year, 01, 01);
            var            date    = control.AddDays(-1);

            Assert.That(() => new CronDayOfMonth("I", factory), Throws.TypeOf <CronException>());
            Assert.That(() => field = new CronDayOfMonth("H", factory), Throws.Nothing);

            for (var i = 0; i < 15; i++)
            {
                date = field.GetNext(date.AddDays(1));

                Assert.That(date, Is.EqualTo(control.AddDays(i * 2 + 1)));
            }
        }
コード例 #9
0
        public void Should_be_able_to_satisfy_individual_values()
        {
            var field = new CronDayOfMonth("5,10,15,20");

            var control = new DateTime(2011, 01, 01, 0, 0, 0);
            var date = field.SnapForward(control);

            Assert.AreEqual(control.AddDays(4), date);
            date = field.SnapForward(date.AddDays(1));

            Assert.AreEqual(control.AddDays(9), date);
            date = field.SnapForward(date.AddDays(1));

            Assert.AreEqual(control.AddDays(14), date);
            date = field.SnapForward(date.AddDays(1));

            Assert.AreEqual(control.AddDays(19), date);
            date = field.SnapForward(date.AddDays(1));

            Assert.AreEqual(control.AddDays(35), date);
        }
コード例 #10
0
        public void Should_be_able_to_satisfy_last_day_of_month()
        {
            var field = new CronDayOfMonth("L");

            var date = new DateTime(2011, 01, 01, 0, 0, 0);

            Assert.AreEqual(date.AddDays(30), field.SnapForward(date));
        }