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(); }
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(); }
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(); }