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);
        }
 private static DatasetRelationshipsSearchController CreateController(IDatasetRelationshipsSearchService searchService = null)
 {
     return(new DatasetRelationshipsSearchController(searchService ?? CreateSearchService(),
                                                     Substitute.For <ISpecificationsApiClient>(),
                                                     Substitute.For <IAuthorizationHelper>(),
                                                     Substitute.For <IMapper>(),
                                                     Substitute.For <IDatasetsApiClient>()));
 }
        public DatasetRelationshipsSearchController(IDatasetRelationshipsSearchService searchService, ISpecificationsApiClient specificationsApiClient, IAuthorizationHelper authorizationHelper, IMapper mapper, IDatasetsApiClient datasetsApiClient)
        {
            Guard.ArgumentNotNull(searchService, nameof(searchService));

            _searchService           = searchService;
            _specificationsApiClient = specificationsApiClient;
            _authorizationHelper     = authorizationHelper;
            _mapper            = mapper;
            _datasetsApiClient = datasetsApiClient;
        }
        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);
        }
        public DatasetRelationshipsSearchController(IDatasetRelationshipsSearchService searchService)
        {
            Guard.ArgumentNotNull(searchService, nameof(searchService));

            _searchService = searchService;
        }
 public DatasetRelationshipsPageModel(ISpecsApiClient specsClient, IDatasetRelationshipsSearchService datasetRelationshipsSearchService)
 {
     _specsClient = specsClient;
     _datasetRelationshipsSearchService = datasetRelationshipsSearchService;
 }
 private static DatasetRelationshipsPageModel CreatePageModel(ISpecsApiClient apiClient, IDatasetRelationshipsSearchService searchService)
 {
     return(new DatasetRelationshipsPageModel(apiClient ?? CreateApiClient(), searchService ?? CreateSearchService()));
 }
 private static DatasetRelationshipsSearchController CreateController(IDatasetRelationshipsSearchService searchService = null)
 {
     return(new DatasetRelationshipsSearchController(searchService ?? CreateSearchService()));
 }