Ejemplo n.º 1
0
        public void Organisation_criminal_compliance_check_result_is_saved(string gatewayPageId, string clarificationAnswer)
        {
            var model = new CriminalCompliancePageViewModel
            {
                ApplicationId             = Guid.NewGuid(),
                ApplyLegalName            = "legal name",
                ComplianceCheckQuestionId = "CC-20",
                ComplianceCheckAnswer     = "No",
                OptionPassText            = "check passed",
                Status              = "Pass",
                PageId              = gatewayPageId,
                QuestionText        = "Question text",
                Ukprn               = "10001234",
                ClarificationAnswer = clarificationAnswer
            };

            var validationResponse = new ValidationResponse
            {
                Errors = new List <ValidationErrorDetail>()
            };

            var command = new SubmitGatewayPageAnswerCommand(model);

            GatewayValidator.Setup(x => x.Validate(command)).ReturnsAsync(validationResponse);

            var result = _controller.EvaluateCriminalCompliancePage(command).GetAwaiter().GetResult();

            var redirectResult = result as RedirectToActionResult;

            redirectResult.Should().NotBeNull();
            redirectResult.ActionName.Should().Be("ViewApplication");

            ApplyApiClient.Verify(x => x.SubmitGatewayPageAnswer(model.ApplicationId, gatewayPageId, model.Status, UserId, Username, model.OptionPassText, clarificationAnswer), Times.Once);
        }
Ejemplo n.º 2
0
        public async Task <CriminalCompliancePageViewModel> GetCriminalComplianceCheckViewModel(GetCriminalComplianceCheckRequest request)
        {
            var model = new CriminalCompliancePageViewModel();
            await model.PopulatePageCommonDetails(_applyApiClient, request.ApplicationId, GetSequenceNumberForPage(request.PageId),
                                                  request.PageId,
                                                  request.UserId,
                                                  request.UserName,
                                                  GetCaptionForPage(request.PageId),
                                                  CriminalCompliancePageConfiguration.Headings[request.PageId],
                                                  NoSelectionErrorMessages.Errors[request.PageId]);

            return(await PopulateViewModelWithQuestionDetails(request.ApplicationId, request.PageId, model));
        }
        public void PeopleInControl_criminal_compliance_clarification_check_has_validation_error(string gatewayPageId)
        {
            var clarificationAnswer = "clarification answer";
            var model = new CriminalCompliancePageViewModel
            {
                ApplicationId             = Guid.NewGuid(),
                ApplyLegalName            = "legal name",
                ComplianceCheckQuestionId = "CC-40",
                ComplianceCheckAnswer     = "No",
                OptionFailText            = null,
                Status              = "Fail",
                PageId              = gatewayPageId,
                QuestionText        = "Question text",
                Ukprn               = "10001234",
                ClarificationAnswer = clarificationAnswer
            };

            var validationResponse = new ValidationResponse
            {
                Errors = new List <ValidationErrorDetail>()
                {
                    new ValidationErrorDetail
                    {
                        ErrorMessage = "Comments are mandatory",
                        Field        = "OptionFailText"
                    }
                }
            };

            var command = new SubmitGatewayPageAnswerCommand(model);

            GatewayValidator.Setup(x => x.ValidateClarification(command)).ReturnsAsync(validationResponse);

            _orchestrator.Setup(x => x.GetCriminalComplianceCheckViewModel(It.Is <GetCriminalComplianceCheckRequest>(y => y.ApplicationId == model.ApplicationId &&
                                                                                                                     y.UserName == Username))).ReturnsAsync(model);

            var result = _controller.ClarifyCriminalCompliancePage(command).GetAwaiter().GetResult();

            var viewResult = result as ViewResult;
            var viewModel  = viewResult.Model as CriminalCompliancePageViewModel;

            viewModel.Should().NotBeNull();
            viewModel.ErrorMessages.Count.Should().BeGreaterThan(0);

            ApplyApiClient.Verify(x => x.SubmitGatewayPageAnswer(model.ApplicationId, gatewayPageId, model.Status, UserId, Username, model.OptionPassText, clarificationAnswer), Times.Never);
        }
Ejemplo n.º 4
0
        private async Task <CriminalCompliancePageViewModel> PopulateViewModelWithQuestionDetails(Guid applicationId, string pageId, CriminalCompliancePageViewModel model)
        {
            _logger.LogInformation($"Retrieving criminal compliance details for application {applicationId} page {pageId}");

            var criminalComplianceCheckDetails = await _criminalChecksApiClient.GetCriminalComplianceQuestionDetails(applicationId, pageId);

            model.QuestionText = criminalComplianceCheckDetails.QuestionText;
            model.ComplianceCheckQuestionId    = criminalComplianceCheckDetails.QuestionId;
            model.ComplianceCheckAnswer        = criminalComplianceCheckDetails.Answer;
            model.FurtherInformationQuestionId = criminalComplianceCheckDetails.FurtherQuestionId;
            model.FurtherInformationAnswer     = criminalComplianceCheckDetails.FurtherAnswer;

            return(model);
        }