public When_OpportunityProximity_Controller_RefineSearchResults_Is_Called_With_Invalid_Postcode() { const string requestPostcode = "CV1234"; var httpClient = new TestPostcodesIoHttpClient().Get(requestPostcode); var routes = new List <SelectListItem> { new SelectListItem { Text = "1", Value = "Route 1" } }; var locationService = new LocationService(new LocationApiClient(httpClient, new MatchingConfiguration { PostcodeRetrieverBaseUrl = "https://api.postcodes.io" })); var opportunityProximityService = new OpportunityProximityService(Substitute.For <ISearchProvider>(), locationService); var routePathService = Substitute.For <IRoutePathService>(); routePathService.GetRouteSelectListItemsAsync().Returns(routes); var opportunityService = Substitute.For <IOpportunityService>(); _opportunityProximityController = new OpportunityProximityController(routePathService, opportunityProximityService, opportunityService, locationService); var viewModel = new SearchParametersViewModel { Postcode = "CV1234", SelectedRouteId = 1 }; _result = _opportunityProximityController.RefineSearchResultsAsync(viewModel).GetAwaiter().GetResult(); }
public When_OpportunityProximity_Controller_RefineSearchResults_Is_Called_With_Unformatted_Postcode() { const string requestPostcode = "Cv 12 Wt"; var httpClient = new TestPostcodesIoHttpClient().Get(requestPostcode); var locationService = new LocationService(new LocationApiClient(httpClient, new MatchingConfiguration { PostcodeRetrieverBaseUrl = "https://api.postcodes.io" })); var opportunityProximityService = new OpportunityProximityService(Substitute.For <ISearchProvider>(), locationService); _routeService = Substitute.For <IRoutePathService>(); _routeService.GetRouteIdsAsync().Returns(new List <int> { 1, 2 }); var opportunityService = Substitute.For <IOpportunityService>(); var opportunityProximityController = new OpportunityProximityController(_routeService, opportunityProximityService, opportunityService, locationService); var viewModel = new SearchParametersViewModel { Postcode = requestPostcode, SelectedRouteId = 1 }; _result = opportunityProximityController.RefineSearchResultsAsync(viewModel).GetAwaiter().GetResult(); }
public When_OpportunityProximityService_Is_Called_To_Search_Opportunities_By_Postcode_Proximity() { var dto = new OpportunityProximitySearchParametersDto { Postcode = Postcode, SearchRadius = SearchRadius, SelectedRouteId = RouteId }; _searchProvider = Substitute.For <ISearchProvider>(); _searchProvider .SearchOpportunitiesByPostcodeProximityAsync(dto) .Returns(new SearchResultsBuilder().Build()); _locationService = Substitute.For <ILocationService>(); _locationService.GetGeoLocationDataAsync(Postcode) .Returns(new PostcodeLookupResultDto { Postcode = Postcode, Longitude = "1.2", Latitude = "1.2" }); var service = new OpportunityProximityService(_searchProvider, _locationService); _result = service.SearchOpportunitiesByPostcodeProximityAsync(dto).GetAwaiter().GetResult(); }
public When_OpportunityProximity_Controller_FindProviders_Is_Called_With_Invalid_Postcode() { const string requestPostcode = "cV12 34"; var httpClient = new TestPostcodesIoHttpClient().Get(requestPostcode); var routes = new List <SelectListItem> { new SelectListItem { Text = "1", Value = "Route 1" }, new SelectListItem { Text = "2", Value = "Route 2" } }; var config = new MapperConfiguration(c => c.AddMaps(typeof(SearchParametersViewModelMapper).Assembly)); IMapper mapper = new Mapper(config); var locationService = new LocationService( new LocationApiClient(httpClient, new MatchingConfiguration { PostcodeRetrieverBaseUrl = "https://api.postcodes.io" })); var opportunityProximityService = new OpportunityProximityService(Substitute.For <ISearchProvider>(), locationService); var routePathService = Substitute.For <IRoutePathService>(); routePathService.GetRouteSelectListItemsAsync().Returns(routes); var opportunityService = Substitute.For <IOpportunityService>(); _opportunityProximityController = new OpportunityProximityController(routePathService, opportunityProximityService, opportunityService, locationService); var selectedRouteId = routes.First().Text; const string postcode = requestPostcode; var viewModel = new SearchParametersViewModel { RoutesSelectList = mapper.Map <SelectListItem[]>(routes), SelectedRouteId = int.Parse(selectedRouteId), Postcode = postcode }; _result = _opportunityProximityController.FindProviders(viewModel).GetAwaiter().GetResult(); }