public void Should_Accept_And_Schedule_A_Valid_Request()
 {
     var sender = new FakeMessageSender();
     var regularRequestForFullDate = new JobRequest
         {IsEmergency = false, RequestedByDate = _dateWithTooManyScheduledJobs, RequestedTask = GetKnownTaskId()};
     var sut = new JobRequestController(new EmergencyRequestValidator(), new RegularRequestValidator(), new EmergencyJobScheduler(sender), new JobScheduler());
     var result = sut.Handle(regularRequestForFullDate);
     result.Accepted.ShouldBeTrue();
     result.ScheduledToStart.ShouldEqual(regularRequestForFullDate.RequestedByDate.AddDays(1));
 }
 public void Should_Accept_And_Schedule_A_Valid_Emergency_Request()
 {
     var sender = new FakeMessageSender();
     var emergencyRequest = new JobRequest
         {IsEmergency = true, RequestedByDate = DateTime.Now.AddDays(1), RequestedTask = GetKnownTaskId()};
     var sut = new JobRequestController(new EmergencyRequestValidator(), new RegularRequestValidator(), new EmergencyJobScheduler(sender), new JobScheduler());
     var result = sut.Handle(emergencyRequest);
     result.Accepted.ShouldBeTrue();
     result.ScheduledToStart.ShouldEqual(emergencyRequest.RequestedByDate);
 }
 public void Should_Reject_An_Invalid_Request()
 {
     var sender = new FakeMessageSender();
     var unkownTaskRequst = new JobRequest
         {IsEmergency = false, RequestedByDate = DateTime.Now.AddDays(5), RequestedTask = 12345678};
     var sut = new JobRequestController(new EmergencyRequestValidator(), new RegularRequestValidator(), new EmergencyJobScheduler(sender), new JobScheduler());
     var result = sut.Handle(unkownTaskRequst);
     result.Accepted.ShouldBeFalse();
     result.Errors.Any(x => x.GetType() == typeof (UnknownJobValidationError)).ShouldBeTrue();
 }