Exemplo n.º 1
0
        public void ClonePerformsADeepCopy(bool useGenericClonable)
        {
            DateTime                   now     = DateTime.UtcNow;
            DailyFireWindow            window  = new DailyFireWindow(3, 13);
            DailyPeriodicWindowTrigger trigger = new DailyPeriodicWindowTrigger(now, DateTime.MaxValue, window, TimeSpan.MaxValue, 42);

            trigger.MisfireAction    = TriggerScheduleAction.DeleteJob;
            trigger.MisfireThreshold = TimeSpan.MaxValue;
            trigger.Schedule(TriggerScheduleCondition.Latch, now, null);

            DailyPeriodicWindowTrigger clone = useGenericClonable
                                        ? (DailyPeriodicWindowTrigger)trigger.Clone()
                                        : (DailyPeriodicWindowTrigger)((ICloneable)trigger).Clone();

            Assert.AreNotSame(trigger, clone);

            Assert.AreEqual(trigger.StartTimeUtc, clone.StartTimeUtc);
            Assert.AreEqual(trigger.EndTimeUtc, clone.EndTimeUtc);
            Assert.AreEqual(trigger.Period, clone.Period);
            Assert.AreEqual(trigger.JobExecutionCountRemaining, clone.JobExecutionCountRemaining);
            Assert.AreEqual(trigger.MisfireAction, clone.MisfireAction);
            Assert.AreEqual(trigger.MisfireThreshold, clone.MisfireThreshold);
            Assert.AreEqual(trigger.IsFirstTime, clone.IsFirstTime);

            Assert.AreEqual(trigger.IsActive, clone.IsActive);
            Assert.AreEqual(trigger.NextFireTimeUtc, clone.NextFireTimeUtc);
            Assert.AreEqual(trigger.NextMisfireThreshold, clone.NextMisfireThreshold);

            Assert.AreEqual(trigger.DailyFireWindow.StartHour, clone.DailyFireWindow.StartHour);
            Assert.AreEqual(trigger.DailyFireWindow.EndHour, clone.DailyFireWindow.EndHour);
        }
Exemplo n.º 2
0
        public void Schedule(string utcFireTime, TriggerScheduleAction expectedAction, int expectedRemainingJobCount)
        {
            var      startDate         = new DateTime(2000, 3, 14);
            DateTime?endDate           = new DateTime(2001, 3, 14);
            var      dailyFireWindow   = new DailyFireWindow(3, 16);
            TimeSpan?interval          = new TimeSpan(0, 1, 0);
            int?     jobExecutionCount = 33;

            var trigger = new DailyPeriodicWindowTrigger(startDate, endDate, dailyFireWindow, interval, jobExecutionCount);

            var triggerScheduleAction = trigger.Schedule(TriggerScheduleCondition.Fire, DateTime.Parse(utcFireTime), null);

            Assert.AreEqual(expectedAction, triggerScheduleAction);
            Assert.AreEqual(expectedRemainingJobCount, trigger.JobExecutionCountRemaining);
        }
Exemplo n.º 3
0
        public void ConstructorSetsProperties()
        {
            DailyFireWindow            window   = new DailyFireWindow(3, 13);
            TimeSpan?                  interval = new TimeSpan(0, 1, 45);
            DailyPeriodicWindowTrigger trigger  = new DailyPeriodicWindowTrigger(new DateTime(2000, 3, 14), new DateTime(2001, 3, 14), window, interval, 33);

            DateTimeAssert.AreEqualIncludingKind(new DateTime(2000, 3, 14, 0, 0, 0, DateTimeKind.Utc),
                                                 trigger.StartTimeUtc);
            Assert.AreEqual(interval, trigger.Period);
            Assert.AreEqual(DailyPeriodicWindowTrigger.DefaultMisfireAction, trigger.MisfireAction);
            Assert.AreEqual(null, trigger.MisfireThreshold);

            DateTimeAssert.AreEqualIncludingKind(new DateTime(2001, 3, 14, 0, 0, 0, DateTimeKind.Utc), trigger.EndTimeUtc);
            Assert.AreEqual(33, trigger.JobExecutionCountRemaining);
            Assert.IsTrue(trigger.IsFirstTime);

            Assert.AreEqual(3, trigger.DailyFireWindow.StartHour);
            Assert.AreEqual(13, trigger.DailyFireWindow.EndHour);
        }
        public void Schedule(string utcFireTime, TriggerScheduleAction expectedAction, int expectedRemainingJobCount)
        {
            var startDate = new DateTime(2000, 3, 14);
            DateTime? endDate = new DateTime(2001, 3, 14);
            var dailyFireWindow = new DailyFireWindow(3, 16);
            TimeSpan? interval = new TimeSpan(0, 1, 0);
            int? jobExecutionCount = 33;

            var trigger = new DailyPeriodicWindowTrigger(startDate, endDate, dailyFireWindow, interval, jobExecutionCount);

            var triggerScheduleAction = trigger.Schedule(TriggerScheduleCondition.Fire, DateTime.Parse(utcFireTime), null);

            Assert.AreEqual(expectedAction, triggerScheduleAction);
            Assert.AreEqual(expectedRemainingJobCount, trigger.JobExecutionCountRemaining);
        }
        public void ClonePerformsADeepCopy(bool useGenericClonable)
        {
            DateTime now = DateTime.UtcNow;
            DailyFireWindow window = new DailyFireWindow(3, 13);
            DailyPeriodicWindowTrigger trigger = new DailyPeriodicWindowTrigger(now, DateTime.MaxValue, window, TimeSpan.MaxValue, 42);
            trigger.MisfireAction = TriggerScheduleAction.DeleteJob;
            trigger.MisfireThreshold = TimeSpan.MaxValue;
            trigger.Schedule(TriggerScheduleCondition.Latch, now, null);

            DailyPeriodicWindowTrigger clone = useGenericClonable
                                        ? (DailyPeriodicWindowTrigger)trigger.Clone()
                                        : (DailyPeriodicWindowTrigger)((ICloneable)trigger).Clone();

            Assert.AreNotSame(trigger, clone);

            Assert.AreEqual(trigger.StartTimeUtc, clone.StartTimeUtc);
            Assert.AreEqual(trigger.EndTimeUtc, clone.EndTimeUtc);
            Assert.AreEqual(trigger.Period, clone.Period);
            Assert.AreEqual(trigger.JobExecutionCountRemaining, clone.JobExecutionCountRemaining);
            Assert.AreEqual(trigger.MisfireAction, clone.MisfireAction);
            Assert.AreEqual(trigger.MisfireThreshold, clone.MisfireThreshold);
            Assert.AreEqual(trigger.IsFirstTime, clone.IsFirstTime);

            Assert.AreEqual(trigger.IsActive, clone.IsActive);
            Assert.AreEqual(trigger.NextFireTimeUtc, clone.NextFireTimeUtc);
            Assert.AreEqual(trigger.NextMisfireThreshold, clone.NextMisfireThreshold);

            Assert.AreEqual(trigger.DailyFireWindow.StartHour, clone.DailyFireWindow.StartHour);
            Assert.AreEqual(trigger.DailyFireWindow.EndHour, clone.DailyFireWindow.EndHour);
        }
        public void ConstructorSetsProperties()
        {
            DailyFireWindow window = new DailyFireWindow(3, 13);
            TimeSpan? interval = new TimeSpan(0, 1, 45);
            DailyPeriodicWindowTrigger trigger = new DailyPeriodicWindowTrigger(new DateTime(2000, 3, 14), new DateTime(2001, 3, 14), window, interval, 33);

            DateTimeAssert.AreEqualIncludingKind(new DateTime(2000, 3, 14, 0, 0, 0, DateTimeKind.Utc),
                                                 trigger.StartTimeUtc);
            Assert.AreEqual(interval, trigger.Period);
            Assert.AreEqual(DailyPeriodicWindowTrigger.DefaultMisfireAction, trigger.MisfireAction);
            Assert.AreEqual(null, trigger.MisfireThreshold);

            DateTimeAssert.AreEqualIncludingKind(new DateTime(2001, 3, 14, 0,0,0, DateTimeKind.Utc), trigger.EndTimeUtc);
            Assert.AreEqual(33, trigger.JobExecutionCountRemaining);
            Assert.IsTrue(trigger.IsFirstTime);

            Assert.AreEqual(3, trigger.DailyFireWindow.StartHour);
            Assert.AreEqual(13, trigger.DailyFireWindow.EndHour);
        }