Ejemplo n.º 1
0
        public void TestFinalFireTimes()
        {
            DateTimeOffset startCalendar = DateBuilder.DateOf(9, 0, 0, 12, 3, 2010);
            DateTimeOffset endCalendar   = startCalendar.AddDays(10); // jump 10 days (2 intervals)

            var dailyTrigger = new CalendarIntervalTriggerImpl
            {
                StartTimeUtc       = startCalendar,
                RepeatIntervalUnit = IntervalUnit.Day,
                RepeatInterval     = 5, // every 5 days
                EndTimeUtc         = endCalendar
            };

            DateTimeOffset?testTime = dailyTrigger.FinalFireTimeUtc;

            Assert.AreEqual(endCalendar, testTime, "Final fire time not computed correctly for day interval.");

            endCalendar  = startCalendar.AddDays(15).AddMinutes(-2); // jump 15 days and back up 2 minutes
            dailyTrigger = new CalendarIntervalTriggerImpl
            {
                StartTimeUtc       = startCalendar,
                RepeatIntervalUnit = IntervalUnit.Minute,
                RepeatInterval     = 5, // every 5 minutes
                EndTimeUtc         = endCalendar
            };

            testTime = dailyTrigger.FinalFireTimeUtc;

            Assert.IsTrue(endCalendar > (testTime), "Final fire time not computed correctly for minutely interval.");

            endCalendar = endCalendar.AddMinutes(-3); // back up three more minutes

            Assert.AreEqual(endCalendar, testTime, "Final fire time not computed correctly for minutely interval.");
        }
Ejemplo n.º 2
0
        public void TestMisfireInstructionValidity()
        {
            var trigger = new CalendarIntervalTriggerImpl();

            try
            {
                trigger.MisfireInstruction = MisfireInstruction.IgnoreMisfirePolicy;
                trigger.MisfireInstruction = MisfireInstruction.SmartPolicy;
                trigger.MisfireInstruction = MisfireInstruction.CalendarIntervalTrigger.DoNothing;
                trigger.MisfireInstruction = MisfireInstruction.CalendarIntervalTrigger.FireOnceNow;
            }
            catch (Exception)
            {
                Assert.Fail("Unexpected exception while setting misfire instruction.");
            }

            try
            {
                trigger.MisfireInstruction = MisfireInstruction.CalendarIntervalTrigger.DoNothing + 1;

                Assert.Fail("Expected exception while setting invalid misfire instruction but did not get it.");
            }
            catch (Exception ex)
            {
                if (ex is AssertionException)
                {
                    throw;
                }
            }
        }
Ejemplo n.º 3
0
        public void TestTimeZoneTransition()
        {
            TimeZoneInfo timeZone = TimeZoneUtil.FindTimeZoneById("Eastern Standard Time");

            CalendarIntervalTriggerImpl trigger = new CalendarIntervalTriggerImpl("trigger", IntervalUnit.Day, 1);

            trigger.TimeZone     = timeZone;
            trigger.StartTimeUtc = new DateTimeOffset(2012, 11, 2, 12, 0, 0, TimeSpan.FromHours(-4));

            var fireTimes = TriggerUtils.ComputeFireTimes(trigger, null, 6);

            var expected = new DateTimeOffset(2012, 11, 2, 12, 0, 0, TimeSpan.FromHours(-4));

            Assert.AreEqual(expected, fireTimes[0]);

            expected = new DateTimeOffset(2012, 11, 3, 12, 0, 0, TimeSpan.FromHours(-4));
            Assert.AreEqual(expected, fireTimes[1]);

            //this next day should be a new daylight savings change, notice the change in offset
            expected = new DateTimeOffset(2012, 11, 4, 11, 0, 0, TimeSpan.FromHours(-5));
            Assert.AreEqual(expected, fireTimes[2]);

            expected = new DateTimeOffset(2012, 11, 5, 11, 0, 0, TimeSpan.FromHours(-5));
            Assert.AreEqual(expected, fireTimes[3]);
        }
        /// <summary>
        /// Build the actual Trigger -- NOT intended to be invoked by end users,
        /// but will rather be invoked by a TriggerBuilder which this
        /// ScheduleBuilder is given to.
        /// </summary>
        /// <returns></returns>
        public override IMutableTrigger Build()
        {
            CalendarIntervalTriggerImpl st = new CalendarIntervalTriggerImpl();

            st.RepeatInterval     = interval;
            st.RepeatIntervalUnit = intervalUnit;

            return(st);
        }
Ejemplo n.º 5
0
        /// <summary>
        /// Build the actual Trigger -- NOT intended to be invoked by end users,
        /// but will rather be invoked by a TriggerBuilder which this
        /// ScheduleBuilder is given to.
        /// </summary>
        /// <returns></returns>
        public override IMutableTrigger Build()
        {
            CalendarIntervalTriggerImpl st = new CalendarIntervalTriggerImpl();

            st.RepeatInterval     = interval;
            st.RepeatIntervalUnit = intervalUnit;
            st.MisfireInstruction = misfireInstruction;

            return(st);
        }
Ejemplo n.º 6
0
        protected override SimplePropertiesTriggerProperties GetTriggerProperties(IOperableTrigger trigger)
        {
            CalendarIntervalTriggerImpl calTrig = (CalendarIntervalTriggerImpl)trigger;

            SimplePropertiesTriggerProperties props = new SimplePropertiesTriggerProperties();

            props.Int1    = (calTrig.RepeatInterval);
            props.String1 = (calTrig.RepeatIntervalUnit.ToString());
            props.Int2    = (calTrig.TimesTriggered);

            return(props);
        }
Ejemplo n.º 7
0
        /// <summary>
        /// Gets the calendar interval trigger.
        /// </summary>
        /// <param name="ns">The ns.</param>
        /// <param name="trigger">The trigger.</param>
        /// <returns></returns>
        private static XElement GetCalendarIntervalTrigger(XNamespace ns, CalendarIntervalTriggerImpl trigger)
        {
            var calendarTrigger = new XElement(ns + "trigger");
            var calendar        = new XElement(ns + "calendar-interval");

            calendarTrigger.Add(calendar);
            AddCommonTriggerData(ns, calendar, trigger);
            calendar.Add(
                new XElement(ns + "repeat-interval", trigger.RepeatInterval),
                new XElement(ns + "repeat-interval-unit", trigger.RepeatIntervalUnit)
                );
            return(calendarTrigger);
        }
Ejemplo n.º 8
0
        /// <summary>
        /// Build the actual Trigger -- NOT intended to be invoked by end users,
        /// but will rather be invoked by a TriggerBuilder which this
        /// ScheduleBuilder is given to.
        /// </summary>
        /// <returns></returns>
        public override IMutableTrigger Build()
        {
            CalendarIntervalTriggerImpl st = new CalendarIntervalTriggerImpl();

            st.RepeatInterval     = interval;
            st.RepeatIntervalUnit = intervalUnit;
            st.MisfireInstruction = misfireInstruction;
            st.timeZone           = timeZone;
            st.PreserveHourOfDayAcrossDaylightSavings = preserveHourOfDayAcrossDaylightSavings;
            st.SkipDayIfHourDoesNotExist = skipDayIfHourDoesNotExist;

            return(st);
        }
Ejemplo n.º 9
0
        /// <summary>
        /// Build the actual Trigger -- NOT intended to be invoked by end users,
        /// but will rather be invoked by a TriggerBuilder which this
        /// ScheduleBuilder is given to.
        /// </summary>
        /// <returns></returns>
        public override IMutableTrigger Build()
        {
            CalendarIntervalTriggerImpl st = new CalendarIntervalTriggerImpl
            {
                RepeatInterval     = interval,
                RepeatIntervalUnit = intervalUnit,
                MisfireInstruction = misfireInstruction,
                TimeZone           = timeZone,
                PreserveHourOfDayAcrossDaylightSavings = preserveHourOfDayAcrossDaylightSavings,
                SkipDayIfHourDoesNotExist = skipDayIfHourDoesNotExist
            };

            return(st);
        }
        public override ITrigger GetTrigger()
        {
            var trigger = new CalendarIntervalTriggerImpl()
            {
                RepeatIntervalUnit = RepeatIntervalUnit,
                RepeatInterval     = RepeatInterval,
                TimesTriggered     = TimesTriggered,
                TimeZone           = TimeZoneInfo.FindSystemTimeZoneById(TimeZone),
                PreserveHourOfDayAcrossDaylightSavings = PreserveHourOfDayAcrossDaylightSavings,
                SkipDayIfHourDoesNotExist = SkipDayIfHourDoesNotExist
            };

            FillTrigger(trigger);
            return(trigger);
        }
        protected override SimplePropertiesTriggerProperties GetTriggerProperties(IOperableTrigger trigger)
        {
            CalendarIntervalTriggerImpl calTrig = (CalendarIntervalTriggerImpl)trigger;

            SimplePropertiesTriggerProperties props = new SimplePropertiesTriggerProperties();

            props.Int1       = calTrig.RepeatInterval;
            props.String1    = calTrig.RepeatIntervalUnit.ToString();
            props.Int2       = calTrig.TimesTriggered;
            props.TimeZoneId = calTrig.TimeZone.Id;
            props.Boolean1   = calTrig.PreserveHourOfDayAcrossDaylightSavings;
            props.Boolean2   = calTrig.SkipDayIfHourDoesNotExist;

            return(props);
        }
Ejemplo n.º 12
0
        public void TestYearlyIntervalGetFireTimeAfter()
        {
            DateTimeOffset startCalendar = new DateTimeOffset(2005, 6, 1, 9, 30, 17, TimeSpan.Zero);

            CalendarIntervalTriggerImpl yearlyTrigger = new CalendarIntervalTriggerImpl();

            yearlyTrigger.StartTimeUtc       = startCalendar;
            yearlyTrigger.RepeatIntervalUnit = IntervalUnit.Year;
            yearlyTrigger.RepeatInterval     = 2;                                                     // every two years;

            DateTimeOffset targetCalendar = new DateTimeOffset(2009, 6, 1, 9, 30, 17, TimeSpan.Zero); // jump 4 years (2 intervals)

            IList <DateTimeOffset> fireTimes  = TriggerUtils.ComputeFireTimes(yearlyTrigger, null, 4);
            DateTimeOffset         secondTime = fireTimes[2]; // get the third fire time

            Assert.AreEqual(targetCalendar, secondTime, "Year increment result not as expected.");
        }
Ejemplo n.º 13
0
        protected override object GetTargetObject()
        {
            JobDataMap jobDataMap = new JobDataMap();

            jobDataMap["A"] = "B";

            CalendarIntervalTriggerImpl t = new CalendarIntervalTriggerImpl();

            t.Name               = "test";
            t.Group              = "testGroup";
            t.CalendarName       = "MyCalendar";
            t.Description        = "CronTriggerDesc";
            t.JobDataMap         = jobDataMap;
            t.RepeatInterval     = 5;
            t.RepeatIntervalUnit = IntervalUnit.Day;

            return(t);
        }
Ejemplo n.º 14
0
        protected override void VerifyMatch(object target, object deserialized)
        {
            CalendarIntervalTriggerImpl targetCalTrigger       = (CalendarIntervalTriggerImpl)target;
            CalendarIntervalTriggerImpl deserializedCalTrigger = (CalendarIntervalTriggerImpl)deserialized;

            Assert.IsNotNull(deserializedCalTrigger);
            Assert.AreEqual(targetCalTrigger.Name, deserializedCalTrigger.Name);
            Assert.AreEqual(targetCalTrigger.Group, deserializedCalTrigger.Group);
            Assert.AreEqual(targetCalTrigger.JobName, deserializedCalTrigger.JobName);
            Assert.AreEqual(targetCalTrigger.JobGroup, deserializedCalTrigger.JobGroup);
//        assertEquals(targetCronTrigger.getStartTime), deserializedCronTrigger.getStartTime());
            Assert.AreEqual(targetCalTrigger.EndTimeUtc, deserializedCalTrigger.EndTimeUtc);
            Assert.AreEqual(targetCalTrigger.CalendarName, deserializedCalTrigger.CalendarName);
            Assert.AreEqual(targetCalTrigger.Description, deserializedCalTrigger.Description);
            Assert.AreEqual(targetCalTrigger.JobDataMap, deserializedCalTrigger.JobDataMap);
            Assert.AreEqual(targetCalTrigger.RepeatInterval, deserializedCalTrigger.RepeatInterval);
            Assert.AreEqual(targetCalTrigger.RepeatIntervalUnit, deserializedCalTrigger.RepeatIntervalUnit);
        }
Ejemplo n.º 15
0
        public void TestHourlyIntervalGetFireTimeAfter()
        {
            DateTimeOffset startCalendar = DateBuilder.DateOf(9, 30, 17, 1, 6, 2005);

            var yearlyTrigger = new CalendarIntervalTriggerImpl
            {
                StartTimeUtc       = startCalendar,
                RepeatIntervalUnit = IntervalUnit.Hour,
                RepeatInterval     = 100 // every 100 hours
            };

            DateTimeOffset targetCalendar = startCalendar.AddHours(400); // jump 400 hours (4 intervals)

            IList <DateTimeOffset> fireTimes = TriggerUtils.ComputeFireTimes(yearlyTrigger, null, 6);
            DateTimeOffset         fifthTime = fireTimes[4]; // get the fifth fire time

            Assert.AreEqual(targetCalendar, fifthTime, "Hour increment result not as expected.");
        }
Ejemplo n.º 16
0
        public void TestWeeklyIntervalGetFireTimeAfter()
        {
            DateTimeOffset startCalendar = DateBuilder.DateOf(9, 30, 17, 1, 6, 2005);

            var yearlyTrigger = new CalendarIntervalTriggerImpl
            {
                StartTimeUtc       = startCalendar,
                RepeatIntervalUnit = IntervalUnit.Week,
                RepeatInterval     = 6 // every six weeks
            };

            DateTimeOffset targetCalendar = startCalendar.AddDays(7 * 6 * 4); // jump 24 weeks (4 intervals)

            IList <DateTimeOffset> fireTimes = TriggerUtils.ComputeFireTimes(yearlyTrigger, null, 7);
            DateTimeOffset         fifthTime = fireTimes[4]; // get the fifth fire time

            Assert.AreEqual(targetCalendar, fifthTime, "Week increment result not as expected.");
        }
Ejemplo n.º 17
0
        public void TestDailyIntervalGetFireTimeAfter()
        {
            DateTimeOffset startCalendar = DateBuilder.DateOf(9, 30, 17, 1, 6, 2005);

            var dailyTrigger = new CalendarIntervalTriggerImpl
            {
                StartTimeUtc       = startCalendar,
                RepeatIntervalUnit = IntervalUnit.Day,
                RepeatInterval     = 90 // every ninety days
            };

            DateTimeOffset targetCalendar = startCalendar.AddDays(360); // jump 360 days (4 intervals)

            IList <DateTimeOffset> fireTimes = TriggerUtils.ComputeFireTimes(dailyTrigger, null, 6);
            DateTimeOffset         fifthTime = fireTimes[4]; // get the fifth fire time

            Assert.AreEqual(targetCalendar, fifthTime, "Day increment result not as expected.");
        }
Ejemplo n.º 18
0
        public void TestMonthlyIntervalGetFireTimeAfter()
        {
            DateTimeOffset startCalendar = DateBuilder.DateOf(9, 30, 17, 1, 6, 2005);

            var yearlyTrigger = new CalendarIntervalTriggerImpl
            {
                StartTimeUtc       = startCalendar,
                RepeatIntervalUnit = IntervalUnit.Month,
                RepeatInterval     = 5 // every five months
            };

            DateTimeOffset targetCalendar = startCalendar.AddMonths(25); // jump 25 five months (5 intervals)

            IList <DateTimeOffset> fireTimes = TriggerUtils.ComputeFireTimes(yearlyTrigger, null, 6);
            DateTimeOffset         sixthTime = fireTimes[5]; // get the sixth fire time

            Assert.AreEqual(targetCalendar, sixthTime, "Month increment result not as expected.");
        }
Ejemplo n.º 19
0
        public void TestYearlyIntervalGetFireTimeAfter()
        {
            DateTimeOffset startCalendar = DateBuilder.DateOf(9, 30, 17, 1, 6, 2005);

            var yearlyTrigger = new CalendarIntervalTriggerImpl
            {
                StartTimeUtc       = startCalendar,
                RepeatIntervalUnit = IntervalUnit.Year,
                RepeatInterval     = 2 // every two years;
            };

            DateTimeOffset targetCalendar = startCalendar.AddYears(4);

            IList <DateTimeOffset> fireTimes = TriggerUtils.ComputeFireTimes(yearlyTrigger, null, 4);
            DateTimeOffset         thirdTime = fireTimes[2]; // get the third fire time

            Assert.AreEqual(targetCalendar, thirdTime, "Year increment result not as expected.");
        }
Ejemplo n.º 20
0
        protected override object GetTargetObject()
        {
            var jobDataMap = new JobDataMap();

            jobDataMap["A"] = "B";

            var t = new CalendarIntervalTriggerImpl
            {
                Name               = "test",
                Group              = "testGroup",
                CalendarName       = "MyCalendar",
                Description        = "CronTriggerDesc",
                JobDataMap         = jobDataMap,
                RepeatInterval     = 5,
                RepeatIntervalUnit = IntervalUnit.Day
            };

            return(t);
        }
Ejemplo n.º 21
0
        public void TestDailyIntervalGetFireTimeAfter()
        {
            DateTimeOffset startCalendar = new DateTimeOffset(2005, 6, 1, 9, 30, 17, TimeSpan.Zero);

            CalendarIntervalTriggerImpl dailyTrigger = new CalendarIntervalTriggerImpl();

            dailyTrigger.StartTimeUtc       = startCalendar;
            dailyTrigger.RepeatIntervalUnit = IntervalUnit.Day;
            dailyTrigger.RepeatInterval     = 90; // every ninety days

            DateTimeOffset targetCalendar = new DateTimeOffset(2005, 6, 1, 9, 30, 17, TimeSpan.Zero);

            targetCalendar = targetCalendar.AddDays(360); // jump 360 days (4 intervals)

            IList <DateTimeOffset> fireTimes = TriggerUtils.ComputeFireTimes(dailyTrigger, null, 6);
            DateTimeOffset         fifthTime = fireTimes[4]; // get the fifth fire time

            Assert.AreEqual(targetCalendar, fifthTime, "Day increment result not as expected.");
        }
Ejemplo n.º 22
0
        public void TestMonthlyIntervalGetFireTimeAfter()
        {
            DateTimeOffset startCalendar = new DateTimeOffset(2005, 6, 1, 9, 30, 17, TimeSpan.Zero);

            CalendarIntervalTriggerImpl yearlyTrigger = new CalendarIntervalTriggerImpl();

            yearlyTrigger.StartTimeUtc       = startCalendar;
            yearlyTrigger.RepeatIntervalUnit = IntervalUnit.Month;
            yearlyTrigger.RepeatInterval     = 5; // every five months

            DateTimeOffset targetCalendar = new DateTimeOffset(2005, 6, 1, 9, 30, 17, TimeSpan.Zero);

            targetCalendar = targetCalendar.AddMonths(25); // jump 25 five months (5 intervals)

            IList <DateTimeOffset> fireTimes = TriggerUtils.ComputeFireTimes(yearlyTrigger, null, 6);
            DateTimeOffset         fifthTime = fireTimes[5]; // get the sixth fire time

            Assert.AreEqual(targetCalendar, fifthTime, "Month increment result not as expected.");
        }
Ejemplo n.º 23
0
        public void TestSecondlyIntervalGetFireTimeAfter()
        {
            DateTimeOffset startCalendar = new DateTimeOffset(2005, 6, 1, 9, 30, 17, TimeSpan.Zero);


            CalendarIntervalTriggerImpl yearlyTrigger = new CalendarIntervalTriggerImpl();

            yearlyTrigger.StartTimeUtc       = startCalendar;
            yearlyTrigger.RepeatIntervalUnit = IntervalUnit.Second;
            yearlyTrigger.RepeatInterval     = 100; // every 100 seconds

            DateTimeOffset targetCalendar = new DateTimeOffset(2005, 6, 1, 9, 30, 17, TimeSpan.Zero);

            targetCalendar = targetCalendar.AddSeconds(400); // jump 400 seconds (4 intervals)

            IList <DateTimeOffset> fireTimes = TriggerUtils.ComputeFireTimes(yearlyTrigger, null, 6);
            DateTimeOffset         fifthTime = fireTimes[4]; // get the third fire time

            Assert.AreEqual(targetCalendar, fifthTime, "Seconds increment result not as expected.");
        }
Ejemplo n.º 24
0
        public void TestPreserveHourOfDayAcrossDaylightSavingsNotHanging()
        {
            TimeZoneInfo est = TimeZoneUtil.FindTimeZoneById("Eastern Standard Time");

            DateTimeOffset startTime = new DateTimeOffset(2013, 3, 1, 4, 0, 0, TimeSpan.FromHours(-5));

            CalendarIntervalTriggerImpl trigger = new CalendarIntervalTriggerImpl();

            trigger.RepeatInterval     = 1;
            trigger.RepeatIntervalUnit = IntervalUnit.Day;
            trigger.TimeZone           = est;
            trigger.StartTimeUtc       = startTime;
            trigger.PreserveHourOfDayAcrossDaylightSavings = true;

            DateTimeOffset?fireTimeAfter = new DateTimeOffset(2013, 3, 10, 4, 0, 0, TimeSpan.FromHours(-4));

            DateTimeOffset?fireTime = trigger.GetFireTimeAfter(fireTimeAfter);

            Assert.AreNotEqual(fireTime, fireTimeAfter);
            Assert.IsTrue(fireTime > fireTimeAfter);
        }
Ejemplo n.º 25
0
        public void TestStartTimeOnDayInDifferentOffset()
        {
            TimeZoneInfo   est       = TimeZoneUtil.FindTimeZoneById("Eastern Standard Time");
            DateTimeOffset startDate = new DateTimeOffset(2012, 3, 11, 12, 0, 0, TimeSpan.FromHours(-5));

            CalendarIntervalTriggerImpl t = new CalendarIntervalTriggerImpl();

            t.RepeatInterval     = 1;
            t.RepeatIntervalUnit = IntervalUnit.Day;
            t.PreserveHourOfDayAcrossDaylightSavings = true;
            t.SkipDayIfHourDoesNotExist = false;
            t.StartTimeUtc = startDate;
            t.TimeZone     = est;

            var fireTimes = TriggerUtils.ComputeFireTimes(t, null, 10);

            var firstFire  = fireTimes[0];
            var secondFire = fireTimes[1];

            Assert.AreNotEqual(firstFire, secondFire);
        }
        public void ShouldGetScheduleBuilderWithSameSettingsAsTrigger()
        {
            var startTime = DateTimeOffset.UtcNow;
            var endTime   = DateTimeOffset.UtcNow.AddDays(1);
            var trigger   = new CalendarIntervalTriggerImpl("name", "group", startTime, endTime, IntervalUnit.Hour, 10);

            trigger.PreserveHourOfDayAcrossDaylightSavings = true;
            trigger.SkipDayIfHourDoesNotExist = true;
            trigger.TimeZone           = TimeZoneInfo.Utc;
            trigger.MisfireInstruction = MisfireInstruction.CalendarIntervalTrigger.FireOnceNow;
            var scheduleBuilder = trigger.GetScheduleBuilder();

            var cloned = (CalendarIntervalTriggerImpl)scheduleBuilder.Build();

            Assert.That(cloned.PreserveHourOfDayAcrossDaylightSavings, Is.EqualTo(trigger.PreserveHourOfDayAcrossDaylightSavings));
            Assert.That(cloned.SkipDayIfHourDoesNotExist, Is.EqualTo(trigger.SkipDayIfHourDoesNotExist));
            Assert.That(cloned.RepeatInterval, Is.EqualTo(trigger.RepeatInterval));
            Assert.That(cloned.RepeatIntervalUnit, Is.EqualTo(trigger.RepeatIntervalUnit));
            Assert.That(cloned.MisfireInstruction, Is.EqualTo(trigger.MisfireInstruction));
            Assert.That(cloned.TimeZone, Is.EqualTo(trigger.TimeZone));
        }
        public void TestMovingAcrossDSTAvoidsInfiniteLoop()
        {
            TimeZoneInfo   est       = TimeZoneInfo.FindSystemTimeZoneById("Eastern Standard Time");
            DateTimeOffset startDate = new DateTimeOffset(1990, 10, 27, 0, 0, 0, TimeSpan.FromHours(-4));

            CalendarIntervalTriggerImpl t = new CalendarIntervalTriggerImpl();

            t.RepeatInterval     = 1;
            t.RepeatIntervalUnit = IntervalUnit.Day;
            t.PreserveHourOfDayAcrossDaylightSavings = true;
            t.SkipDayIfHourDoesNotExist = false;
            t.StartTimeUtc = startDate;
            t.TimeZone     = est;

            var fireTimes = TriggerUtils.ComputeFireTimes(t, null, 10);

            var firstFire  = fireTimes[0];
            var secondFire = fireTimes[1];

            Assert.AreNotEqual(firstFire, secondFire);
        }
Ejemplo n.º 28
0
        public void TestDaylightSavingsTransitions()
        {
            // Pick a day before a daylight savings transition...

            DateTimeOffset startCalendar = new DateTimeOffset(2010, 3, 12, 9, 30, 17, TimeSpan.Zero);

            CalendarIntervalTriggerImpl dailyTrigger = new CalendarIntervalTriggerImpl();

            dailyTrigger.StartTimeUtc       = startCalendar;
            dailyTrigger.RepeatIntervalUnit = IntervalUnit.Day;
            dailyTrigger.RepeatInterval     = 5; // every 5 days

            DateTimeOffset targetCalendar = startCalendar;

            targetCalendar = targetCalendar.AddDays(10); // jump 10 days (2 intervals)

            IList <DateTimeOffset> fireTimes = TriggerUtils.ComputeFireTimes(dailyTrigger, null, 6);
            DateTimeOffset         testTime  = fireTimes[2]; // get the third fire time

            Assert.AreEqual(targetCalendar, testTime, "Day increment result not as expected over spring daylight savings transition.");

            // Pick a day before a daylight savings transition...

            startCalendar = new DateTimeOffset(2010, 10, 31, 9, 30, 17, TimeSpan.Zero);

            dailyTrigger = new CalendarIntervalTriggerImpl();
            dailyTrigger.StartTimeUtc       = startCalendar;
            dailyTrigger.RepeatIntervalUnit = IntervalUnit.Day;
            dailyTrigger.RepeatInterval     = 5; // every 5 days

            targetCalendar = startCalendar;

            targetCalendar = targetCalendar.AddDays(15); // jump 15 days (3 intervals)

            fireTimes = TriggerUtils.ComputeFireTimes(dailyTrigger, null, 6);
            testTime  = fireTimes[3]; // get the fourth fire time

            Assert.AreEqual(targetCalendar, testTime, "Day increment result not as expected over fall daylight savings transition.");
        }
Ejemplo n.º 29
0
        public void TestWeeklyIntervalGetFireTimeAfter()
        {
            DateTimeOffset startCalendar = new DateTimeOffset(2005, 6, 1, 9, 30, 17, TimeSpan.Zero);

            CalendarIntervalTriggerImpl yearlyTrigger = new CalendarIntervalTriggerImpl();

            yearlyTrigger.StartTimeUtc       = startCalendar;
            yearlyTrigger.RepeatIntervalUnit = IntervalUnit.Week;
            yearlyTrigger.RepeatInterval     = 6; // every six weeks

            DateTimeOffset targetCalendar = new DateTimeOffset(2005, 6, 1, 9, 30, 17, TimeSpan.Zero);

            targetCalendar = targetCalendar.AddDays(7 * 6 * 4); // jump 24 weeks (4 intervals)

            IList <DateTimeOffset> fireTimes = TriggerUtils.ComputeFireTimes(yearlyTrigger, null, 7);
            DateTimeOffset         fifthTime = fireTimes[4]; // get the fifth fire time

            Console.Out.WriteLine("targetCalendar:" + targetCalendar);
            Console.Out.WriteLine("fifthTimee" + fifthTime);

            Assert.AreEqual(targetCalendar, fifthTime, "Week increment result not as expected.");
        }
Ejemplo n.º 30
0
        public void TestFinalFireTimes()
        {
            DateTimeOffset startCalendar = new DateTimeOffset(2010, 3, 12, 9, 0, 0, TimeSpan.Zero);

            CalendarIntervalTriggerImpl dailyTrigger = new CalendarIntervalTriggerImpl();

            dailyTrigger.StartTimeUtc       = startCalendar;
            dailyTrigger.RepeatIntervalUnit = IntervalUnit.Day;
            dailyTrigger.RepeatInterval     = 5; // every 5 days

            DateTimeOffset endCalendar = startCalendar;

            endCalendar             = endCalendar.AddDays(10); // jump 10 days (2 intervals)
            dailyTrigger.EndTimeUtc = endCalendar;

            DateTimeOffset?testTime = dailyTrigger.FinalFireTimeUtc;

            Assert.AreEqual(endCalendar, testTime, "Final fire time not computed correctly for day interval.");

            startCalendar = new DateTimeOffset(2010, 3, 12, 9, 0, 0, TimeSpan.Zero);

            dailyTrigger = new CalendarIntervalTriggerImpl();
            dailyTrigger.StartTimeUtc       = startCalendar;
            dailyTrigger.RepeatIntervalUnit = IntervalUnit.Minute;
            dailyTrigger.RepeatInterval     = 5; // every 5 minutes

            endCalendar             = startCalendar;
            endCalendar             = endCalendar.AddDays(15);    // jump 15 days
            endCalendar             = endCalendar.AddMinutes(-2); // back up two minutes
            dailyTrigger.EndTimeUtc = endCalendar;

            testTime = dailyTrigger.FinalFireTimeUtc;

            Assert.IsTrue((endCalendar > (testTime)), "Final fire time not computed correctly for minutely interval.");

            endCalendar = endCalendar.AddMinutes(-3); // back up three more minutes

            Assert.IsTrue((endCalendar.Equals(testTime)), "Final fire time not computed correctly for minutely interval.");
        }