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."); }
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; } } }
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); }
/// <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); }
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); }
/// <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); }
/// <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); }
/// <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); }
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."); }
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); }
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); }
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."); }
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."); }
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."); }
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."); }
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."); }
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); }
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."); }
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."); }
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."); }
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); }
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); }
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."); }
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."); }
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."); }