public async Task <RestaurantsClientResponse> GetRestaurantsByLatLong(string latitude, string longitude)
        {
            var response = new RestaurantsClientResponse();

            _logger.LogDebug($"GetRestaurantsByLatLong for latitude:{latitude} & longitude:{longitude}");
            var result = await _httpClient.GetAsync($"restaurants/bylatlong?latitude={latitude}&longitude={longitude}");

            response.StatusCode = result.StatusCode;
            response.IsSuccess  = result.StatusCode == HttpStatusCode.OK;
            if (response.IsSuccess)
            {
                _logger.LogDebug($"GetRestaurantsByLatLong success for latitude:{latitude} & longitude:{longitude}");
                string restaurantsByLatLong = await result.Content.ReadAsStringAsync();

                response.RestaurantsSearchResults = JsonConvert.DeserializeObject <RestaurantsSearchResults>(restaurantsByLatLong);
            }
            return(response);
        }
        public async Task <RestaurantsClientResponse> GetRestaurantsByPostCode(string postcode)
        {
            var response = new RestaurantsClientResponse();

            _logger.LogDebug($"GetRestaurantsByPostCode for postcode {postcode}");
            var result = await _httpClient.GetAsync($"restaurants/bypostcode/{postcode}");

            response.StatusCode = result.StatusCode;
            response.IsSuccess  = result.StatusCode == HttpStatusCode.OK;
            if (response.IsSuccess)
            {
                _logger.LogDebug($"GetRestaurantsByPostCode for postcode success for {postcode}");
                string restaurantsByPostCodeJson = await result.Content.ReadAsStringAsync();

                response.RestaurantsSearchResults = JsonConvert.DeserializeObject <RestaurantsSearchResults>(restaurantsByPostCodeJson);
            }
            return(response);
        }
Esempio n. 3
0
        public async Task ReturnsErrorMessageWhenNoResultsFound()
        {
            // Arrange
            var postcode            = "po5 7cd";
            var page                = 1;
            var pageSize            = 10;
            var mockedSearchResults = new RestaurantsClientResponse();

            _restaurantsApiClientMock.Setup(x => x.GetRestaurantsByPostCode(postcode))
            .ReturnsAsync(mockedSearchResults);

            // Act
            var restaurantSearchResultsDto = await _restaurantsService.GetRestaurantsByPostCode(postcode, page, pageSize);

            // Assert
            Assert.NotNull(restaurantSearchResultsDto);
            Assert.NotNull(restaurantSearchResultsDto.ErrorMessage);
            Assert.True(!string.IsNullOrEmpty(restaurantSearchResultsDto.ErrorMessage));

            _cacheMock.TryGetValue(postcode, out var nullResult);
            Assert.Null(nullResult);
        }
        public async Task ReturnsErrorMessageWhenNoResultsFound()
        {
            // Arrange
            var page      = 1;
            var pageSize  = 10;
            var latitude  = "59.123";
            var longitude = "0.123";

            var mockedSearchResults = new RestaurantsClientResponse();

            _restaurantsApiClientMock.Setup(x => x.GetRestaurantsByLatLong(latitude, longitude))
            .ReturnsAsync(mockedSearchResults);

            // Act
            var restaurantSearchResultsDto = await _restaurantsService.GetRestaurantsByGeoLocation(latitude, longitude, page, pageSize);

            // Assert
            Assert.NotNull(restaurantSearchResultsDto);
            Assert.NotNull(restaurantSearchResultsDto.ErrorMessage);
            Assert.True(!string.IsNullOrEmpty(restaurantSearchResultsDto.ErrorMessage));

            _cacheMock.TryGetValue(GetCacheKey(latitude, longitude), out var nullResult);
            Assert.Null(nullResult);
        }