public async Task Confirm_submit_application_submit_application_request_includes_organisation_type() { var application = new Apply { ApplicationId = Guid.NewGuid(), ApplicationStatus = ApplicationStatus.InProgress, ApplyData = new ApplyData { ApplyDetails = new ApplyDetails(), Sequences = new List <ApplySequence>() } }; var model = new SubmitApplicationViewModel { ApplicationId = application.ApplicationId, ConfirmSubmitApplication = true, ConfirmFurtherInfoSubmitApplication = true, ConfirmChangeOfOwnershipSubmitApplication = true, ConfirmFurtherCommunicationSubmitApplication = true, ErrorMessages = new List <ValidationErrorDetail>() }; var organisationDetails = new Organisation { OrganisationUkprn = 10003000, Name = "Organisation Name", OrganisationDetails = new OrganisationDetails { TradingName = "Trading name" } }; _apiClient.Setup(x => x.GetOrganisationByUserId(It.IsAny <Guid>())).ReturnsAsync(organisationDetails); _apiClient.Setup(x => x.GetApplicationByUserId(It.IsAny <Guid>(), It.IsAny <Guid>())).ReturnsAsync(application); _qnaApiClient.Setup(x => x.GetSections(It.IsAny <Guid>())).ReturnsAsync(() => new List <ApplicationSection> { new ApplicationSection { SectionId = 2, SequenceId = 2 } }); var applicationData = new JObject { { "OrganisationPublicBody", "test" } }; _qnaApiClient.Setup(x => x.GetApplicationData(It.IsAny <Guid>())) .ReturnsAsync(() => applicationData); _qnaApiClient.Setup(x => x.GetPage(It.IsAny <Guid>(), It.IsAny <Guid>(), It.IsAny <string>())) .ReturnsAsync(() => new Page { Active = false, PageOfAnswers = new List <PageOfAnswers> { new PageOfAnswers { Answers = new List <Answer> { new Answer { QuestionId = "FH-140", Value = "1" }, new Answer { QuestionId = "FH-150", Value = "2" }, new Answer { QuestionId = "FH-160", Value = "3" }, new Answer { QuestionId = "FH-170", Value = "4" }, new Answer { QuestionId = "FH-180", Value = "5" }, new Answer { QuestionId = "FH-190", Value = "6" }, new Answer { QuestionId = "FH-200", Value = "7" }, new Answer { QuestionId = "FH-210", Value = "8" }, new Answer { QuestionId = "FH-220", Value = "9" }, new Answer { QuestionId = "FH-420", Value = "01,01,2021" }, new Answer { QuestionId = "FH-430", Value = "10" } } } } }); var providerRouteAnswer = new Answer { QuestionId = "YO-1", Value = ApplicationRoute.MainProviderApplicationRoute.ToString() }; _qnaApiClient.Setup(x => x.GetAnswerByTag(It.IsAny <Guid>(), RoatpWorkflowQuestionTags.ProviderRoute, It.IsAny <string>())).ReturnsAsync(providerRouteAnswer); _apiClient.Setup(x => x.GetApplication(It.IsAny <Guid>())).ReturnsAsync(application); _apiClient.Setup(x => x.SubmitApplication(It.IsAny <Application.Apply.Submit.SubmitApplicationRequest>())).ReturnsAsync(true); _submitApplicationEmailService.Setup(x => x.SendSubmitConfirmationEmail(It.IsAny <ApplicationSubmitConfirmation>())).Returns(Task.FromResult(true)); await _controller.ConfirmSubmitApplication(model); _apiClient.Verify(x => x.SubmitApplication(It.Is <SubmitApplicationRequest>(r => r.OrganisationType == "test"))); }
public async Task Confirm_submit_application_submit_application_request_includes_financial_data() { var application = new Apply { ApplicationId = Guid.NewGuid(), ApplicationStatus = ApplicationStatus.InProgress, ApplyData = new ApplyData { ApplyDetails = new ApplyDetails(), Sequences = new List <ApplySequence>() } }; var model = new SubmitApplicationViewModel { ApplicationId = application.ApplicationId, ConfirmSubmitApplication = true, ConfirmFurtherInfoSubmitApplication = true, ConfirmChangeOfOwnershipSubmitApplication = true, ConfirmFurtherCommunicationSubmitApplication = true, ErrorMessages = new List <ValidationErrorDetail>() }; var organisationDetails = new Organisation { OrganisationUkprn = 10003000, Name = "Organisation Name", OrganisationDetails = new OrganisationDetails { TradingName = "Trading name" } }; _apiClient.Setup(x => x.GetOrganisationByUserId(It.IsAny <Guid>())).ReturnsAsync(organisationDetails); _apiClient.Setup(x => x.GetApplicationByUserId(It.IsAny <Guid>(), It.IsAny <Guid>())).ReturnsAsync(application); _qnaApiClient.Setup(x => x.GetSections(It.IsAny <Guid>())).ReturnsAsync(() => new List <ApplicationSection> { new ApplicationSection { SectionId = 2, SequenceId = 2 } }); _qnaApiClient.Setup(x => x.GetApplicationData(It.IsAny <Guid>())) .ReturnsAsync(() => new JObject { new JProperty(RoatpWorkflowQuestionTags.Turnover, "1"), new JProperty(RoatpWorkflowQuestionTags.Depreciation, "2"), new JProperty(RoatpWorkflowQuestionTags.ProfitLoss, "3"), new JProperty(RoatpWorkflowQuestionTags.Dividends, "4"), new JProperty(RoatpWorkflowQuestionTags.Assets, "5"), new JProperty(RoatpWorkflowQuestionTags.Liabilities, "6"), new JProperty(RoatpWorkflowQuestionTags.Borrowings, "7"), new JProperty(RoatpWorkflowQuestionTags.ShareholderFunds, "8"), new JProperty(RoatpWorkflowQuestionTags.IntangibleAssets, "9"), new JProperty(RoatpWorkflowQuestionTags.AccountingReferenceDate, "01,01,2021"), new JProperty(RoatpWorkflowQuestionTags.AccountingPeriod, "10"), new JProperty(RoatpWorkflowQuestionTags.AverageNumberofFTEEmployees, "11") }); var providerRouteAnswer = new Answer { QuestionId = "YO-1", Value = ApplicationRoute.MainProviderApplicationRoute.ToString() }; _qnaApiClient.Setup(x => x.GetAnswerByTag(It.IsAny <Guid>(), RoatpWorkflowQuestionTags.ProviderRoute, It.IsAny <string>())).ReturnsAsync(providerRouteAnswer); _apiClient.Setup(x => x.GetApplication(It.IsAny <Guid>())).ReturnsAsync(application); _apiClient.Setup(x => x.SubmitApplication(It.IsAny <Application.Apply.Submit.SubmitApplicationRequest>())).ReturnsAsync(true); _submitApplicationEmailService.Setup(x => x.SendSubmitConfirmationEmail(It.IsAny <ApplicationSubmitConfirmation>())).Returns(Task.FromResult(true)); await _controller.ConfirmSubmitApplication(model); _apiClient.Verify(x => x.SubmitApplication(It.Is <SubmitApplicationRequest>(r => r.FinancialData.TurnOver == 1 && r.FinancialData.Depreciation == 2 && r.FinancialData.ProfitLoss == 3 && r.FinancialData.Dividends == 4 && r.FinancialData.Assets == 5 && r.FinancialData.Liabilities == 6 && r.FinancialData.Borrowings == 7 && r.FinancialData.ShareholderFunds == 8 && r.FinancialData.IntangibleAssets == 9 && r.FinancialData.AccountingReferenceDate == new DateTime(2021, 1, 1) && r.FinancialData.AccountingPeriod == 10 && r.FinancialData.AverageNumberofFTEEmployees == 11 ))); }
public async Task Confirm_submit_application_submit_application_request_includes_null_financial_data_if_financial_page_is_not_active() { var application = new Apply { ApplicationId = Guid.NewGuid(), ApplicationStatus = ApplicationStatus.InProgress, ApplyData = new ApplyData { ApplyDetails = new ApplyDetails(), Sequences = new List <ApplySequence>() } }; var model = new SubmitApplicationViewModel { ApplicationId = application.ApplicationId, ConfirmSubmitApplication = true, ConfirmFurtherInfoSubmitApplication = true, ConfirmChangeOfOwnershipSubmitApplication = true, ConfirmFurtherCommunicationSubmitApplication = true, ErrorMessages = new List <ValidationErrorDetail>() }; var organisationDetails = new Organisation { OrganisationUkprn = 10003000, Name = "Organisation Name", OrganisationDetails = new OrganisationDetails { TradingName = "Trading name" } }; _apiClient.Setup(x => x.GetOrganisationByUserId(It.IsAny <Guid>())).ReturnsAsync(organisationDetails); _apiClient.Setup(x => x.GetApplicationByUserId(It.IsAny <Guid>(), It.IsAny <Guid>())).ReturnsAsync(application); _qnaApiClient.Setup(x => x.GetSections(It.IsAny <Guid>())).ReturnsAsync(() => new List <ApplicationSection> { new ApplicationSection { SectionId = 2, SequenceId = 2 } }); var applicationData = new JObject(); _qnaApiClient.Setup(x => x.GetApplicationData(It.IsAny <Guid>())) .ReturnsAsync(() => applicationData); _qnaApiClient.Setup(x => x.GetPage(It.IsAny <Guid>(), It.IsAny <Guid>(), It.IsAny <string>())) .ReturnsAsync(() => new Page { Active = false, PageOfAnswers = new List <PageOfAnswers> { new PageOfAnswers { Answers = new List <Answer> { new Answer { QuestionId = "FH-140", Value = "1" }, new Answer { QuestionId = "FH-150", Value = "2" }, new Answer { QuestionId = "FH-160", Value = "3" }, new Answer { QuestionId = "FH-170", Value = "4" }, new Answer { QuestionId = "FH-180", Value = "5" }, new Answer { QuestionId = "FH-190", Value = "6" }, new Answer { QuestionId = "FH-200", Value = "7" }, new Answer { QuestionId = "FH-210", Value = "8" }, new Answer { QuestionId = "FH-220", Value = "9" }, new Answer { QuestionId = "FH-420", Value = "01,01,2021" }, new Answer { QuestionId = "FH-430", Value = "10" } } } } }); var providerRouteAnswer = new Answer { QuestionId = "YO-1", Value = ApplicationRoute.MainProviderApplicationRoute.ToString() }; _qnaApiClient.Setup(x => x.GetAnswerByTag(It.IsAny <Guid>(), RoatpWorkflowQuestionTags.ProviderRoute, It.IsAny <string>())).ReturnsAsync(providerRouteAnswer); _apiClient.Setup(x => x.GetApplication(It.IsAny <Guid>())).ReturnsAsync(application); _apiClient.Setup(x => x.SubmitApplication(It.IsAny <Application.Apply.Submit.SubmitApplicationRequest>())).ReturnsAsync(true); _submitApplicationEmailService.Setup(x => x.SendSubmitConfirmationEmail(It.IsAny <ApplicationSubmitConfirmation>())).Returns(Task.FromResult(true)); await _controller.ConfirmSubmitApplication(model); _apiClient.Verify(x => x.SubmitApplication(It.Is <SubmitApplicationRequest>(r => r.FinancialData.TurnOver == null && r.FinancialData.Depreciation == null && r.FinancialData.ProfitLoss == null && r.FinancialData.Dividends == null && r.FinancialData.Assets == null && r.FinancialData.Liabilities == null && r.FinancialData.Borrowings == null && r.FinancialData.ShareholderFunds == null && r.FinancialData.IntangibleAssets == null && r.FinancialData.AccountingReferenceDate == null && r.FinancialData.AccountingPeriod == null ))); }
public async Task Confirm_submit_application_updates_application_status_and_sends_confirmation_email_if_they_have_confirmed_details_are_correct() { var application = new Apply { ApplicationId = Guid.NewGuid(), ApplicationStatus = ApplicationStatus.InProgress, ApplyData = new ApplyData { ApplyDetails = new ApplyDetails(), Sequences = new List <ApplySequence>() } }; var model = new SubmitApplicationViewModel { ApplicationId = application.ApplicationId, ConfirmSubmitApplication = true, ConfirmFurtherInfoSubmitApplication = true, ConfirmChangeOfOwnershipSubmitApplication = true, ConfirmFurtherCommunicationSubmitApplication = true, ErrorMessages = new List <ValidationErrorDetail>() }; var organisationDetails = new Organisation { OrganisationUkprn = 10003000, Name = "Organisation Name", OrganisationDetails = new OrganisationDetails { TradingName = "Trading name" } }; _apiClient.Setup(x => x.GetOrganisationByUserId(It.IsAny <Guid>())).ReturnsAsync(organisationDetails); _apiClient.Setup(x => x.GetApplicationByUserId(It.IsAny <Guid>(), It.IsAny <Guid>())).ReturnsAsync(application); _qnaApiClient.Setup(x => x.GetSections(It.IsAny <Guid>())).ReturnsAsync(() => new List <ApplicationSection> { new ApplicationSection { SectionId = 2, SequenceId = 2, } }); _qnaApiClient.Setup(x => x.GetApplicationData(It.IsAny <Guid>())) .ReturnsAsync(() => new JObject()); _qnaApiClient.Setup(x => x.GetPage(It.IsAny <Guid>(), It.IsAny <Guid>(), It.IsAny <string>())) .ReturnsAsync(() => new Page { PageOfAnswers = new List <PageOfAnswers> { new PageOfAnswers { Answers = new List <Answer>() } } }); var providerRouteAnswer = new Answer { QuestionId = "YO-1", Value = ApplicationRoute.MainProviderApplicationRoute.ToString() }; _qnaApiClient.Setup(x => x.GetAnswerByTag(It.IsAny <Guid>(), RoatpWorkflowQuestionTags.ProviderRoute, It.IsAny <string>())).ReturnsAsync(providerRouteAnswer); _apiClient.Setup(x => x.GetApplication(It.IsAny <Guid>())).ReturnsAsync(application); _apiClient.Setup(x => x.SubmitApplication(It.IsAny <Application.Apply.Submit.SubmitApplicationRequest>())).ReturnsAsync(true); _submitApplicationEmailService.Setup(x => x.SendSubmitConfirmationEmail(It.IsAny <ApplicationSubmitConfirmation>())).Returns(Task.FromResult(true)); var result = await _controller.ConfirmSubmitApplication(model); var redirectResult = result as RedirectToActionResult; redirectResult.Should().NotBeNull(); redirectResult.ActionName.Should().Be("ApplicationSubmitted"); _submitApplicationEmailService.VerifyAll(); }