public void ShouldThrowStartDateValidationErrorAfterR14CloseAndStopDateBeforeStartDate() { TestApprenticeship.StartDate = new DateTime(2017, 3, 1); ExampleValidRequest.DateOfChange = new DateTime(2017, 1, 1); //last academic year MockCurrentDateTime.Setup(x => x.Now).Returns(new DateTime(2017, 10, 19, 18, 0, 1)); //after cut-off Func <Task> act = async() => await Handler.Handle(ExampleValidRequest); act.ShouldThrow <ValidationException>() .WithMessage("Invalid Date of Change. Date cannot be before the training start date."); }
public void ShouldThrowStartDateValidationErrorAfterR14CloseAndStopDateBeforeStartDate() { MockCommitmentRespository.Setup(x => x.GetCommitmentById(123L)).ReturnsAsync(new Commitment { Id = 123L, EmployerAccountId = ExampleValidRequest.AccountId }); TestApprenticeship.StartDate = new DateTime(2016, 3, 1); ExampleValidRequest.DateOfChange = new DateTime(2016, 1, 1); //last academic year MockCurrentDateTime.Setup(x => x.Now).Returns(new DateTime(2016, 10, 19)); //after cut-off Func <Task> act = async() => await Handler.Handle(ExampleValidRequest); act.ShouldThrow <ValidationException>() .WithMessage("Invalid Date of Change. Date cannot be before the training start date."); }
public void ThenItValidatesDataofChangeAccordingToAcademicYearRule( DateTime academicYearStart, DateTime academicYearEnd, DateTime academicYearR14Cutoff, DateTime startDate, DateTime pausedDate, DateTime resumeDate, DateTime timeNow, bool expectToPassValidation, bool validatesOnStartDate, string scenario) { MockAcademicYearDateProvider.Setup(y => y.CurrentAcademicYearStartDate).Returns(academicYearStart); MockAcademicYearDateProvider.Setup(y => y.CurrentAcademicYearEndDate).Returns(academicYearEnd); MockAcademicYearDateProvider.Setup(y => y.LastAcademicYearFundingPeriod).Returns(academicYearR14Cutoff); if (timeNow > academicYearR14Cutoff) { MockAcademicYearValidator.Setup(v => v.Validate(It.IsAny <DateTime>())) .Returns(AcademicYearValidationResult.NotWithinFundingPeriod); } else { MockAcademicYearValidator.Setup(v => v.Validate(It.IsAny <DateTime>())) .Returns(AcademicYearValidationResult.Success); } MockCurrentDateTime.Setup(d => d.Now).Returns(timeNow); TestApprenticeship.PauseDate = pausedDate.Date; ExampleValidRequest.DateOfChange = resumeDate.Date; Func <Task> act = async() => await Handler.Handle(ExampleValidRequest); if (expectToPassValidation) { act.ShouldNotThrow <ValidationException>(); } else { act.ShouldThrow <ValidationException>() .Which.Message.Should().Be(validatesOnStartDate ? "Invalid Date of Change. Date should be the academic year start date." : "Invalid Date of Change. Date should be the pause date."); } }
public void ShouldThrowValidationErrorAfterR14Close(AcademicYearValidationResult academicYearValidationResult, bool expectedPassValidation) { TestApprenticeship.StartDate = new DateTime(2017, 3, 1); //early last academic year ExampleValidRequest.DateOfChange = new DateTime(2017, 5, 1); //last academic year MockCurrentDateTime.Setup(x => x.Now).Returns(new DateTime(2017, 10, 19, 18, 0, 1)); //after cut-off MockAcademicYearValidator.Setup(x => x.Validate(It.IsAny <DateTime>())) .Returns(academicYearValidationResult); Func <Task> act = async() => await Handler.Handle(ExampleValidRequest); if (expectedPassValidation) { act.ShouldNotThrow <ValidationException>(); } else { act.ShouldThrow <ValidationException>() .WithMessage("Invalid Date of Change. Date cannot be before the academic year start date."); } }