public async Task <IActionResult> OnGetAsync(int?pageNumber, string searchTerm, string fundingPeriodId = null) { await PopulatePeriods(fundingPeriodId); if (string.IsNullOrWhiteSpace(fundingPeriodId)) { fundingPeriodId = FundingPeriods.First().Value; } SearchRequestViewModel searchRequest = new SearchRequestViewModel() { PageNumber = pageNumber, IncludeFacets = false, SearchTerm = searchTerm, Filters = new Dictionary <string, string[]> { { "fundingPeriodId", new[] { fundingPeriodId } } } }; SearchTerm = searchTerm; SearchResults = await _datasetRelationshipsSearchService.PerformSearch(searchRequest); if (SearchResults == null) { return(new StatusCodeResult(500)); } return(Page()); }
public async Task SearchDatasetRelationships_GivenNullResultsReturnedFromSearch_ReturnsStatusCode500() { // Arrange SearchRequestViewModel requestModel = new SearchRequestViewModel(); IDatasetRelationshipsSearchService searchService = CreateSearchService(); searchService .PerformSearch(Arg.Any <SearchRequestViewModel>()) .Returns((SpecificationDatasourceRelationshipSearchResultViewModel)null); DatasetRelationshipsSearchController controller = CreateController(searchService); // Act IActionResult actionResult = await controller.SearchDatasetRelationships(requestModel); // Asserts actionResult .Should() .BeOfType <StatusCodeResult>(); StatusCodeResult statusCodeResult = actionResult as StatusCodeResult; statusCodeResult .StatusCode .Should() .Be(500); }
public async Task<IActionResult> SearchDatasetRelationships([FromBody] SearchRequestViewModel request) { Guard.ArgumentNotNull(request, nameof(request)); SpecificationDatasourceRelationshipSearchResultViewModel result = await _searchService.PerformSearch(request); if (result != null) { return Ok(result); } else { return new StatusCodeResult(500); } }
public async Task OnGetAsync_GivenNullSearchResultsReturns_ReturnsStatusCode500() { // Arrange IEnumerable <Reference> fundingPeriods = new[] { new Reference { Id = "1819", Name = "1018/19" } }; ApiResponse <IEnumerable <Reference> > apiResponse = new ApiResponse <IEnumerable <Reference> >(HttpStatusCode.OK, fundingPeriods); ISpecsApiClient specsApiClient = CreateApiClient(); specsApiClient .GetFundingPeriods() .Returns(apiResponse); IDatasetRelationshipsSearchService searchService = CreateSearchService(); searchService .PerformSearch(Arg.Any <SearchRequestViewModel>()) .Returns((SpecificationDatasourceRelationshipSearchResultViewModel)null); DatasetRelationshipsPageModel pageModel = CreatePageModel(specsApiClient, searchService); // Act IActionResult actionResult = await pageModel.OnGetAsync(1, string.Empty, string.Empty); // Assert actionResult .Should() .BeOfType <StatusCodeResult>(); StatusCodeResult statusCodeResult = actionResult as StatusCodeResult; statusCodeResult .StatusCode .Should() .Be(500); pageModel .FundingPeriods .Count() .Should() .Be(1); }