Example #1
0
        public async Task saving_roatp_without_required_fields_does_not_save()
        {
            var applicationId = Guid.NewGuid();
            var pageId        = GatewayPageIds.Roatp;

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

            var command = new SubmitGatewayPageAnswerCommand(vm);

            _gatewayValidator.Setup(v => v.Validate(command))
            .ReturnsAsync(new ValidationResponse
            {
                Errors = new List <ValidationErrorDetail>
                {
                    new ValidationErrorDetail {
                        Field = "OptionFail", ErrorMessage = "needs text"
                    }
                }
            });

            _orchestrator.Setup(x => x.GetRoatpViewModel(It.Is <GetRoatpRequest>(y => y.ApplicationId == vm.ApplicationId &&
                                                                                 y.UserName == username))).ReturnsAsync(vm);

            var result = await _controller.EvaluateRoatpPage(command);

            _applyApiClient.Verify(x => x.SubmitGatewayPageAnswer(applicationId, pageId, vm.Status, userId, username, vm.OptionPassText), Times.Never);
        }
Example #2
0
        public async Task saving_roatp_happy_path_saves_evaluation_result()
        {
            var applicationId = Guid.NewGuid();
            var pageId        = GatewayPageIds.Roatp;

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

            var command = new SubmitGatewayPageAnswerCommand(vm);

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

            var result = await _controller.EvaluateRoatpPage(command);

            _applyApiClient.Verify(x => x.SubmitGatewayPageAnswer(applicationId, pageId, vm.Status, userId, username, vm.OptionPassText, null), Times.Once);
        }
Example #3
0
        public async Task <RoatpPageViewModel> GetRoatpViewModel(GetRoatpRequest request)
        {
            var pageId = GatewayPageIds.Roatp;

            _logger.LogInformation($"Retrieving RoATP details for application {request.ApplicationId}");

            var model = new RoatpPageViewModel();
            await model.PopulatePageCommonDetails(_applyApiClient, request.ApplicationId, GatewaySequences.RegisterChecks,
                                                  pageId,
                                                  request.UserId,
                                                  request.UserName,
                                                  RoatpGatewayConstants.Captions.RegisterChecks,
                                                  RoatpGatewayConstants.Headings.Roatp,
                                                  NoSelectionErrorMessages.Errors[GatewayPageIds.Roatp]);

            model.ApplyProviderRoute = await _applyApiClient.GetProviderRouteName(model.ApplicationId);

            var roatpProviderDetails = await _roatpApiClient.GetOrganisationRegisterStatus(model.Ukprn);

            if (roatpProviderDetails != null)
            {
                model.RoatpUkprnOnRegister = roatpProviderDetails.UkprnOnRegister;
                model.RoatpStatusDate      = roatpProviderDetails.StatusDate;
                model.RoatpProviderRoute   = await GetProviderRoute(roatpProviderDetails.ProviderTypeId);

                model.RoatpStatus = await GetProviderStatus(roatpProviderDetails.StatusId, roatpProviderDetails.ProviderTypeId);

                model.RoatpRemovedReason = await GetRemovedReason(roatpProviderDetails.RemovedReasonId);
            }

            return(model);
        }