public void Should_Accept_Valid_Book_Job_Command()
 {
     var request = new JobRequest{RequestedByDate = DateTime.Now.AddDays(14), RequestedTask = GetKnownTaskId()};
     var sut = new Software_Design_Examples.Single_Responsibility.Feature_Change_1.JobProcessor();
     var result = sut.Process(request);
     result.Accepted.ShouldBeTrue();
 }
 public void Should_Reject_Book_Job_Command_For_Unknown_Task_Id_With_UnknownJobError()
 {
     var request = new JobRequest {RequestedByDate = DateTime.Now.AddDays(2), RequestedTask = 1231354957};
     var sut = new Software_Design_Examples.Single_Responsibility.Feature_Change_1.JobProcessor();
     var result = sut.Process(request);
     result.Errors.Any(x => x.GetType() == typeof(UnknownJobIdError)).ShouldBeTrue();
 }
 public void Should_Reject_Book_Job_Command_For_The_Past_With_Input_Errors()
 {
     var request = new JobRequest
         {RequestedByDate = DateTime.Now.Subtract(TimeSpan.FromDays(1)), RequestedTask = GetKnownTaskId()};
     var sut = new Software_Design_Examples.Single_Responsibility.Feature_Change_1.JobProcessor();
     var result = sut.Process(request);
     result.Errors.Any(x => x.GetType() == typeof(JobInThePastError)).ShouldBeTrue();
 }
 public void Should_Schedule_Valid_Book_Job_Request_If_Scheduled_Work_Acceptable_for_Requested_Date()
 {
     var request = new JobRequest{RequestedByDate = DateTime.Now.AddDays(1), RequestedTask = GetKnownTaskId()};
     var sut = new Software_Design_Examples.Single_Responsibility.Feature_Change_1.JobProcessor();
     var result = sut.Process(request);
     result.ScheduledToBeginOn.Date.ShouldEqual(request.RequestedByDate.Date);
 }
 public void Should_Schedule_Job_Based_On_Results()
 {
     var request = new JobRequest {RequestedByDate = DateTime.Now.AddDays(14), RequestedTask = GetKnownTaskId()};
     var sut = new Software_Design_Examples.Single_Responsibility.Feature_Change_1.JobProcessor();
     var result = sut.Process(request);
     result.ScheduledToBeginOn.CompareTo(request.RequestedByDate).ShouldBeInRange(-14, 0);
 }
 public void Should_Reject_Valid_Book_Job_Request_If_Requested_Date_Full()
 {
     var request = new JobRequest{RequestedByDate = _dateWithTooManyScheduledJobs, RequestedTask = GetKnownTaskId()};
     var sut = new Software_Design_Examples.Single_Responsibility.Feature_Change_1.JobProcessor();
     var result = sut.Process(request);
     result.Errors.Any(x => x.GetType() == typeof(RequestedDateFullError)).ShouldBeTrue();
 }