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); }
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); }