private IList <TestScenarioSearchResultItemViewModel> GetTestScenarioSearchResults() { TestScenarioSearchResultItemViewModel testScen1 = new TestScenarioSearchResultItemViewModel() { Id = "1", LastUpdatedDate = new DateTime(12, 01, 23), ProviderId = "1", ProviderName = "Provider 1", SpecificationId = "1", SpecificationName = "Spec 01", TestResult = "Passed", TestScenarioId = "1", TestScenarioName = "Test Scenario 01", LastUpdatedDateDisplay = "1", }; TestScenarioSearchResultItemViewModel testScen2 = new TestScenarioSearchResultItemViewModel() { Id = "2", LastUpdatedDate = new DateTime(12, 01, 23), ProviderId = "1", ProviderName = "Provider 1", SpecificationId = "2", SpecificationName = "Spec 02", TestResult = "Passed", TestScenarioId = "2", TestScenarioName = "Test Scenario 02", LastUpdatedDateDisplay = "1", }; IList <TestScenarioSearchResultItemViewModel> TestScenarioResults = new List <TestScenarioSearchResultItemViewModel> { testScen1, testScen2 }; return(TestScenarioResults); }
public async Task OnGetAsync_WhenTestScenariosSearchResultsFoundThenTestCoverageIsCalculated_ThenSuccessfullyShown() { // Arrange IResultsApiClient resultsApiClient = CreateApiClient(); ISpecsApiClient specsClient = CreateSpecsApiClient(); ITestScenarioSearchService searchService = CreateTestScenarioSearchService(); Provider provider = CreateProvider(); IEnumerable <Reference> fundingPeriods = new[] { new Reference("1617", "2016-2017"), new Reference("1718", "2017-2018"), new Reference("1819", "2018-2019") }; IEnumerable <string> specSummary = GetSpecificationsWithResults(); specsClient.GetFundingPeriods() .Returns(new ApiResponse <IEnumerable <Reference> >(HttpStatusCode.OK, fundingPeriods)); resultsApiClient.GetSpecificationIdsForProvider(Arg.Any <string>()) .Returns(new ApiResponse <IEnumerable <string> >(HttpStatusCode.OK, specSummary)); resultsApiClient.GetProviderByProviderId(Arg.Any <string>()) .Returns(new ApiResponse <Provider>(HttpStatusCode.OK, provider)); IList <TestScenarioSearchResultItemViewModel> testScenarioSearchResultItems = GetTestScenarioSearchResults(); TestScenarioSearchResultItemViewModel ignoredItem = new TestScenarioSearchResultItemViewModel() { Id = "3", LastUpdatedDate = new DateTime(12, 01, 23), ProviderId = "1", ProviderName = "Provider 1", SpecificationId = "2", SpecificationName = "Spec 02", TestResult = "Ignored", TestScenarioId = "2", TestScenarioName = "Test Scenario 02", LastUpdatedDateDisplay = "1", }; testScenarioSearchResultItems.Add(ignoredItem); TestScenarioSearchResultItemViewModel failedItem = new TestScenarioSearchResultItemViewModel() { Id = "4", LastUpdatedDate = new DateTime(12, 01, 23), ProviderId = "1", ProviderName = "Provider 1", SpecificationId = "2", SpecificationName = "Spec 02", TestResult = "Failed", TestScenarioId = "2", TestScenarioName = "Test Scenario 02", LastUpdatedDateDisplay = "1", }; testScenarioSearchResultItems.Add(failedItem); string specificationId = "2"; TestScenarioSearchResultViewModel results = new TestScenarioSearchResultViewModel() { TestScenarios = testScenarioSearchResultItems, TotalResults = 4, CurrentPage = 1, }; SearchRequestViewModel searchRequest = CreateSearchRequest(); searchRequest.Filters["specificationId"][0] = specificationId; searchService.PerformSearch(Arg.Any <SearchRequestViewModel>()) .Returns(results); specsClient .GetSpecificationSummaries(Arg.Any <IEnumerable <string> >()) .Returns(new ApiResponse <IEnumerable <Clients.SpecsClient.Models.SpecificationSummary> >(HttpStatusCode.OK, new List <Clients.SpecsClient.Models.SpecificationSummary>())); ProviderScenarioResultsPageModel providerScenarioResultsPageModel = CreatePageModel(searchService, resultsApiClient, specsApiClient: specsClient); //Act IActionResult actionResult = await providerScenarioResultsPageModel.OnGetAsync("1", 1, "", "1819", specificationId); // Assert actionResult .Should() .BeOfType <PageResult>(); providerScenarioResultsPageModel.Passed.Should().Be(2); providerScenarioResultsPageModel.Failed.Should().Be(1); providerScenarioResultsPageModel.Ignored.Should().Be(1); providerScenarioResultsPageModel.TestCoverage.Should().Be(75); }