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_LocationService_Is_Called_To_GetProximity_Data_For_Valid_Postcode() { var httpClient = new TestPostcodesIoHttpClient().Get(); var locationService = new LocationApiClient(httpClient, new MatchingConfiguration { PostcodeRetrieverBaseUrl = "https://api.postcodes.io/" }); _postcodeLookupResultDto = locationService.GetGeoLocationDataAsync("CV1 2WT").GetAwaiter().GetResult(); }
public When_LocationService_Is_Called_To_Validate_A_Terminated_Postcode() { const string requestPostcode = "S70 2YW"; var httpClient = new TestPostcodesIoHttpClient().Get(requestPostcode); var locationService = new LocationApiClient(httpClient, new MatchingConfiguration { PostcodeRetrieverBaseUrl = "https://api.postcodes.io/" }); _postcodeResultDto = locationService.IsTerminatedPostcodeAsync(requestPostcode).GetAwaiter().GetResult(); }
public When_ProviderProximity_Controller_FindAllProviders_Is_Called_With_Unformatted_Postcode() { const string requestPostcode = "cV12 Wt"; 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 routeDictionary = new Dictionary <int, string> { { 1, "Route 1" }, { 2, "Route 2" } }; var locationService = new LocationService( new LocationApiClient(httpClient, new MatchingConfiguration { PostcodeRetrieverBaseUrl = "https://api.postcodes.io" })); var searchProvider = Substitute.For <ISearchProvider>(); var datetimeProvider = Substitute.For <IDateTimeProvider>(); var fileWriter = Substitute.For <IFileWriter <ProviderProximityReportDto> >(); var routePathService = Substitute.For <IRoutePathService>(); routePathService.GetRouteSelectListItemsAsync().Returns(routes); routePathService.GetRouteDictionaryAsync().Returns(routeDictionary); var providerProximityService = new ProviderProximityService(searchProvider, locationService, routePathService, fileWriter, datetimeProvider); var providerProximityController = new ProviderProximityController(routePathService, providerProximityService, locationService); const string postcode = requestPostcode; var viewModel = new ProviderProximitySearchParamViewModel { Postcode = postcode }; _result = providerProximityController.FindAllProviders(viewModel).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(); }