Пример #1
0
        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.");
        }
Пример #3
0
        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.");
            }
        }
Пример #4
0
        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.");
            }
        }