public async Task saving_initial_teacher_training_saves_clarification_result()
        {
            var applicationId = Guid.NewGuid();
            var pageId        = GatewayPageIds.InitialTeacherTraining;

            var vm = new InitialTeacherTrainingViewModel
            {
                ApplicationId       = applicationId,
                PageId              = pageId,
                Status              = SectionReviewStatus.Pass,
                SourcesCheckedOn    = DateTime.Now,
                ErrorMessages       = new List <ValidationErrorDetail>(),
                OptionPassText      = "Some pass text",
                ClarificationAnswer = ClarificationAnswer
            };

            var command = new SubmitGatewayPageAnswerCommand(vm);

            GatewayValidator.Setup(v => v.ValidateClarification(command)).ReturnsAsync(new ValidationResponse {
                Errors = new List <ValidationErrorDetail>()
            });

            await _controller.ClarifyInitialTeacherTrainingPage(command);

            ApplyApiClient.Verify(x => x.SubmitGatewayPageAnswerPostClarification(applicationId, pageId, vm.Status, UserId, Username, vm.OptionPassText, ClarificationAnswer));
        }
        public async Task clarifying_initial_teacher_training_without_required_fields_does_not_save()
        {
            var applicationId = Guid.NewGuid();
            var pageId        = GatewayPageIds.InitialTeacherTraining;

            var vm = new InitialTeacherTrainingViewModel()
            {
                Status              = SectionReviewStatus.Fail,
                SourcesCheckedOn    = DateTime.Now,
                ErrorMessages       = new List <ValidationErrorDetail>(),
                ApplicationId       = applicationId,
                PageId              = pageId,
                ClarificationAnswer = ClarificationAnswer
            };

            var command = new SubmitGatewayPageAnswerCommand(vm);

            GatewayValidator.Setup(v => v.ValidateClarification(command))
            .ReturnsAsync(new ValidationResponse
            {
                Errors = new List <ValidationErrorDetail>
                {
                    new ValidationErrorDetail {
                        Field = "OptionFail", ErrorMessage = "needs text"
                    }
                }
            }
                          );
            _orchestrator.Setup(x => x.GetInitialTeacherTrainingViewModel(It.Is <GetInitialTeacherTrainingRequest>(y => y.ApplicationId == vm.ApplicationId &&
                                                                                                                   y.UserName == Username))).ReturnsAsync(vm);

            await _controller.ClarifyInitialTeacherTrainingPage(command);

            ApplyApiClient.Verify(x => x.SubmitGatewayPageAnswer(It.IsAny <Guid>(), It.IsAny <string>(), It.IsAny <string>(), It.IsAny <string>(), It.IsAny <string>(), It.IsAny <string>(), ClarificationAnswer), Times.Never);
        }
        public async Task initial_teacher_training_is_returned()
        {
            var applicationId     = Guid.NewGuid();
            var expectedViewModel = new InitialTeacherTrainingViewModel();

            _orchestrator.Setup(x => x.GetInitialTeacherTrainingViewModel(It.Is <GetInitialTeacherTrainingRequest>(y => y.ApplicationId == applicationId && y.UserName == Username))).ReturnsAsync(expectedViewModel);

            var result = await _controller.InitialTeacherTraining(applicationId);

            Assert.AreSame(expectedViewModel, result.Model);
        }
Example #4
0
        public async Task <InitialTeacherTrainingViewModel> GetInitialTeacherTrainingViewModel(GetInitialTeacherTrainingRequest request)
        {
            _logger.LogInformation($"Retrieving initial teacher training details for application {request.ApplicationId}");

            var model = new InitialTeacherTrainingViewModel();
            await model.PopulatePageCommonDetails(_applyApiClient, request.ApplicationId, GatewaySequences.ExperienceAndAccreditationChecks, GatewayPageIds.InitialTeacherTraining, request.UserId, request.UserName, RoatpGatewayConstants.Captions.ExperienceAndAccreditation, RoatpGatewayConstants.Headings.InitialTeacherTraining, NoSelectionErrorMessages.Errors[GatewayPageIds.InitialTeacherTraining]);

            var initialTeacherTraining = await _experienceAndAccreditationApiClient.GetInitialTeacherTraining(request.ApplicationId);

            model.DoesOrganisationOfferInitialTeacherTraining = initialTeacherTraining.DoesOrganisationOfferInitialTeacherTraining;
            model.IsPostGradOnlyApprenticeship = initialTeacherTraining.IsPostGradOnlyApprenticeship;

            return(model);
        }