Esempio n. 1
0
        public void WarningTimerElapsed_IfAlreadyWarnedForLongRunningJob_WillNotRaiseEventAgain()
        {
            List <IJobExecutionContext> executingJobs = new List <IJobExecutionContext>();

            IJobExecutionContext jobContext1 = MockRepository.GenerateMock <IJobExecutionContext>();
            ITrigger             trigger1    = MockRepository.GenerateMock <ITrigger>();

            ConfigureMocksForNormalRunningJob(jobContext1, trigger1);
            executingJobs.Add(jobContext1);

            IJobExecutionContext jobContext2 = MockRepository.GenerateMock <IJobExecutionContext>();
            ITrigger             trigger2    = MockRepository.GenerateMock <ITrigger>();

            ConfigureMocksForLateRunningJob(jobContext2, trigger2);
            executingJobs.Add(jobContext2);

            _mockScheduler.Expect(s => s.GetCurrentlyExecutingJobs()).Return(executingJobs);
            _mockScheduler.Expect(s => s.Start());
            _mockScheduler.Expect(s => s.Shutdown());

            int warnings = 0;

            _conductor.JobsStillExecutingWarning += (sender, e) => { warnings++; };
            _conductor.StartScheduler();
            Thread.Sleep(3000);
            _conductor.StopScheduler();

            var map = trigger2.JobDataMap;

            Assert.IsTrue((bool)map[Constants.FieldNames.HasIssuedLongRunningWarning]);
            Assert.That(warnings == 1);
            jobContext1.VerifyAllExpectations();
            trigger1.VerifyAllExpectations();
        }
Esempio n. 2
0
        public void WarningTimerElapsed_ForNormalRunningJob_WillNotRaiseEvent()
        {
            List <IJobExecutionContext> executingJobs = new List <IJobExecutionContext>();

            IJobExecutionContext jobContext1 = MockRepository.GenerateMock <IJobExecutionContext>();
            ITrigger             trigger1    = MockRepository.GenerateMock <ITrigger>();

            ConfigureMocksForNormalRunningJob(jobContext1, trigger1);
            executingJobs.Add(jobContext1);

            _mockScheduler.Expect(s => s.GetCurrentlyExecutingJobs()).Return(executingJobs);
            _mockScheduler.Expect(s => s.Start());
            _mockScheduler.Expect(s => s.Shutdown());

            var returnValue = new List <string>();

            _conductor.JobsStillExecutingWarning += (sender, e) => { returnValue = e; };
            _conductor.StartScheduler();
            Thread.Sleep(3000);
            _conductor.StopScheduler();

            Assert.That(returnValue.Count, NUnit.Framework.Is.Zero);
            jobContext1.VerifyAllExpectations();
            trigger1.VerifyAllExpectations();
        }
Esempio n. 3
0
        public void WarningTimerElapsed_ForLongRunningJob_WillRaiseEvent()
        {
            List <IJobExecutionContext> executingJobs = new List <IJobExecutionContext>();

            IJobExecutionContext jobContext1 = MockRepository.GenerateMock <IJobExecutionContext>();
            ITrigger             trigger1    = MockRepository.GenerateMock <ITrigger>();

            ConfigureMocksForNormalRunningJob(jobContext1, trigger1);
            executingJobs.Add(jobContext1);

            IJobExecutionContext jobContext2 = MockRepository.GenerateMock <IJobExecutionContext>();
            ITrigger             trigger2    = MockRepository.GenerateMock <ITrigger>();

            ConfigureMocksForLateRunningJob(jobContext2, trigger2);
            executingJobs.Add(jobContext2);

            _mockScheduler.Expect(s => s.GetCurrentlyExecutingJobs()).Return(executingJobs);
            _mockScheduler.Expect(s => s.Start());
            _mockScheduler.Expect(s => s.Shutdown());

            var returnValue = new List <string>();

            _conductor.JobsStillExecutingWarning += (sender, e) => { returnValue = e; };
            _conductor.StartScheduler();
            Thread.Sleep(3000);
            _conductor.StopScheduler();

            var map = trigger2.JobDataMap;

            Assert.IsTrue((bool)map[Constants.FieldNames.HasIssuedLongRunningWarning]);

            Assert.That(returnValue.Count == 1);
            bool match = Regex.IsMatch(returnValue[0],
                                       @"Job DEFAULT.LateJob was started at \d{1,2}\/\d{1,2}\/\d{4} \d+:\d\d:\d\d [AP]M and is still running after \d+.\d\d minutes");

            Assert.IsTrue(match);

            jobContext1.VerifyAllExpectations();
            trigger1.VerifyAllExpectations();
        }