public When_ProviderProximity_Controller_Download_Provider_Spreadsheet_Is_Called()
        {
            var locationService = Substitute.For <ILocationService>();

            _providerProximityService = Substitute.For <IProviderProximityService>();
            var routePathService = Substitute.For <IRoutePathService>();

            var postcode = "CV1 2WT";
            var filters  = "Digital-Analog";

            _searchParameters = new ProviderProximitySearchParametersDto
            {
                Postcode           = postcode,
                SelectedRouteNames = new List <string>(filters.Split('-'))
            };

            _providerProximityService.GetProviderProximitySpreadsheetDataAsync(
                Arg.Any <ProviderProximitySearchParametersDto>())
            .Returns(
                new FileDownloadDto
            {
                FileName    = "test_file.xlsx",
                ContentType = "application/file",
                FileContent = new byte[] { 01, 02 }
            });

            var providerProximityController = new ProviderProximityController(routePathService, _providerProximityService, locationService);

            _result = providerProximityController.DownloadProviderProximitySpreadsheetAsync(postcode, filters).GetAwaiter().GetResult();
        }
Пример #2
0
        public When_ProviderProximity_Controller_SearchPostcode_Is_Loaded()
        {
            var locationService          = Substitute.For <ILocationService>();
            var providerProximityService = Substitute.For <IProviderProximityService>();
            var routePathService         = Substitute.For <IRoutePathService>();

            var providerProximityController = new ProviderProximityController(routePathService, providerProximityService, locationService);

            _result = providerProximityController.SearchPostcode();
        }
        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_ProviderProximity_Controller_FilterResults_Is_Called_With_No_Filters()
        {
            var routePathService         = Substitute.For <IRoutePathService>();
            var providerProximityService = Substitute.For <IProviderProximityService>();
            var locationService          = Substitute.For <ILocationService>();

            var providerProximityController = new ProviderProximityController(routePathService, providerProximityService,
                                                                              locationService);

            var viewModel = new ProviderProximitySearchParametersViewModel
            {
                Postcode = "CV12WT"
            };

            _result = providerProximityController.FilterResultsAsync(viewModel);
        }
        public When_ProviderProximity_Controller_GetProviderProximityResults_Is_Called_With_No_Filters()
        {
            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 routePathService = Substitute.For <IRoutePathService>();


            routePathService.GetRouteSelectListItemsAsync().Returns(routes);
            routePathService.GetRouteDictionaryAsync().Returns(routeDictionary);

            _providerProximityService = Substitute.For <IProviderProximityService>();
            _providerProximityService.SearchProvidersByPostcodeProximityAsync(
                Arg.Any <ProviderProximitySearchParametersDto>()).Returns
            (
                new List <ProviderProximitySearchResultViewModelItem>
            {
                new ProviderProximitySearchResultViewModelItem
                {
                    Distance            = 1.4,
                    ProviderDisplayName = "Provider display name",
                    ProviderVenueName   = "Provider venue display name"
                }
            }
            );

            var locationService = Substitute.For <ILocationService>();

            var providerProximityController = new ProviderProximityController(routePathService, _providerProximityService,
                                                                              locationService);

            _result = providerProximityController.GetProviderProximityResults(Postcode)
                      .GetAwaiter().GetResult();
        }
Пример #6
0
        public When_ProviderProximity_Controller_FilterResults_Is_Called_With_Single_Filter()
        {
            var routePathService         = Substitute.For <IRoutePathService>();
            var providerProximityService = Substitute.For <IProviderProximityService>();
            var locationService          = Substitute.For <ILocationService>();

            var providerProximityController = new ProviderProximityController(routePathService, providerProximityService,
                                                                              locationService);

            var routes = new List <string>
            {
                "Agriculture, environmental and animal care",
                "Business and administration"
            };

            var viewModel = new ProviderProximitySearchParametersViewModel(SearchCriteria, routes);

            _result = providerProximityController.FilterResultsAsync(viewModel);
        }
        public When_ProviderProximity_Controller_FindAllProviders_Is_Called()
        {
            const string postcode = "cv1 2wt";

            var locationService = Substitute.For <ILocationService>();

            locationService.IsValidPostcodeAsync(postcode).Returns((true, postcode.ToUpper()));

            var routePathService = Substitute.For <IRoutePathService>();

            var providerProximityService = Substitute.For <IProviderProximityService>();

            var providerProximityController = new ProviderProximityController(routePathService, providerProximityService, locationService);

            var viewModel = new ProviderProximitySearchParamViewModel
            {
                Postcode = postcode
            };

            _result = providerProximityController.FindAllProviders(viewModel).GetAwaiter().GetResult();
        }
        public When_ProviderProximity_Controller_FindAllProviders_Is_Called_For_Invalid_Postcode()
        {
            var locationService = Substitute.For <ILocationService>();

            locationService.IsValidPostcodeAsync(Arg.Any <string>()).Returns((false, null));

            var routePathService = Substitute.For <IRoutePathService>();

            var providerProximityService = Substitute.For <IProviderProximityService>();

            var providerProximityController = new ProviderProximityController(routePathService, providerProximityService, locationService);

            const string postcode = "XYZ A12";

            var viewModel = new ProviderProximitySearchParamViewModel
            {
                Postcode = postcode
            };

            _result = providerProximityController.FindAllProviders(viewModel).GetAwaiter().GetResult();
        }