public void Setup() { _testLogger = new TestLogger(); LogManager.Adapter = _testLogger.LoggingAdapter; _listener = new ConditionalJobChainingListener(); _context = MockRepository.GenerateMock <IJobExecutionContext>(); _scheduler = MockRepository.GenerateMock <IScheduler>(); _context.Expect(c => c.Scheduler).Return(_scheduler).Repeat.Times(0, 100); _jobDetail = MockRepository.GenerateMock <IJobDetail>(); }
private static IJobListener CreateJobChainingJobListener(List <IJobDetail> jobs) { var myJobListener = new ConditionalJobChainingListener(); foreach (var job in jobs) { var predecessorJobKey = job.JobDataMap[Constants.FieldNames.RunOnSuccessOf]; if (predecessorJobKey != null) { var predecessorJob = jobs.FirstOrDefault(j => j.Key.ToString() == predecessorJobKey.ToString()); if (predecessorJob == null) { throw new Exception($"Unable to find predecessor job '{predecessorJobKey}' for job '{job.Key}'"); } myJobListener.AddJobChainLink(predecessorJob.Key, JobResultCriteria.OnSuccess, job.Key); } predecessorJobKey = job.JobDataMap[Constants.FieldNames.RunOnFailureOf]; if (predecessorJobKey != null) { var predecessorJob = jobs.FirstOrDefault(j => j.Key.ToString() == predecessorJobKey.ToString()); if (predecessorJob == null) { throw new Exception($"Unable to find predecessor job '{predecessorJobKey}' for job '{job.Key}'"); } myJobListener.AddJobChainLink(predecessorJob.Key, JobResultCriteria.OnFailure, job.Key); } predecessorJobKey = job.JobDataMap[Constants.FieldNames.RunOnCompletionOf]; if (predecessorJobKey != null) { var predecessorJob = jobs.FirstOrDefault(j => j.Key.ToString() == predecessorJobKey.ToString()); if (predecessorJob == null) { throw new Exception($"Unable to find predecessor job '{predecessorJobKey}' for job '{job.Key}'"); } myJobListener.AddJobChainLink(predecessorJob.Key, JobResultCriteria.OnCompletion, job.Key); } } return(myJobListener); }