예제 #1
0
        public void ShouldBeAbleToCancelJobIfStarted()
        {
            var jobQueueItem = new JobQueueItem
            {
                JobId      = Guid.NewGuid(),
                Name       = "Name Test",
                CreatedBy  = "Created By Test",
                Serialized = "Serialized Test",
                Type       = "Type Test"
            };

            WorkerNodeRepository.AddWorkerNode(_workerNode);

            JobManager.AddItemToJobQueue(jobQueueItem);

            JobManager.AssignJobToWorkerNodes();

            var job = JobManager.GetJobByJobId(jobQueueItem.JobId);

            job.Satisfy(job1 => job1.Started != null);

            JobManager.CancelJobByJobId(jobQueueItem.JobId);

            job = JobManager.GetJobByJobId(jobQueueItem.JobId);
            job.Satisfy(job1 => job1.Result.StartsWith("cancel", StringComparison.InvariantCultureIgnoreCase));

            JobRepository.GetAllJobs().Count.Should().Be(1);
        }