public JobRequestController(EmergencyRequestValidator emergencyRequestValidator, RegularRequestValidator requestValidator, EmergencyJobScheduler emergencyJobScheduler, JobScheduler jobScheduler)
 {
     _emergencyRequestValidator = emergencyRequestValidator;
     _requestValidator = requestValidator;
     _emergencyJobScheduler = emergencyJobScheduler;
     _jobScheduler = jobScheduler;
 }
 public void Should_Schedule_Job_For_Requested_Date_If_Less_Than_4_Jobs_Scheduled_That_Date()
 {
     var request = new JobRequest
         {IsEmergency = false, RequestedByDate = DateTime.Now.AddDays(10), RequestedTask = GetKnownTaskId()};
     var sut = new JobScheduler();
     var result = sut.Schedule(request);
     result.ScheduledToStart.ShouldEqual(request.RequestedByDate);
 }
 public void Should_Schedule_Job_For_Next_Available_Date_If_4_Jobs_Scheduled_On_Requested_Date()
 {
     var request = new JobRequest
         {IsEmergency = false, RequestedByDate = _dateWithTooManyScheduledJobs, RequestedTask = GetKnownTaskId()};
     var sut = new JobScheduler();
     var result = sut.Schedule(request);
     result.ScheduledToStart.ShouldEqual(request.RequestedByDate.AddDays(1));
     result.Errors.Any(x => x.GetType() == typeof (RequestedDateFullError)).ShouldBeTrue();
 }