public void GetQueryStringParams_EmptyLocation_ShouldFaild() { var location = new Location(); var locationRequestBuilder = new LocationRequestBuilder(location); Assert.Throws <ArgumentException>(() => locationRequestBuilder.GetQueryStringParams()); }
public void GetQueryStringParams_ValidLocation_ShouldWork(string zip, string street, string city, string state, string country, string expected) { var location = new Location { ZIP = zip, Street = street, City = city, State = state, Country = country }; var locationRequestBuilder = new LocationRequestBuilder(location); var queryString = locationRequestBuilder.GetQueryStringParams(); Assert.Equal(expected, queryString); }
public void GetQueryStringParams_EmptyZipLocation_ShouldFaild() { var location = new Location { ZIP = "", Street = "312 Hurricane Lane", City = "Williston", State = "CA", Country = Constants.COUNTRY_US }; var locationRequestBuilder = new LocationRequestBuilder(location); Action act = () => locationRequestBuilder.GetQueryStringParams(); var exception = Assert.Throws <ArgumentException>(act); Assert.Equal("The Zip Code is required.", exception.Message); }
public async Task <RatesResponse> GetTaxRateByLocation(Location location) { if (location == null) { throw new ArgumentNullException("Location"); } var queryString = new LocationRequestBuilder(location).GetQueryStringParams(); var url = $"{GetRatesURL()}{queryString}"; HttpClient httpClient = InitializeHttpClient(); HttpResponseMessage streamResponse = null; try { streamResponse = await httpClient.GetAsync(url); streamResponse.EnsureSuccessStatusCode(); string responseContent = await streamResponse.Content.ReadAsStringAsync(); return(responseContent.DeserializeAs <RatesResponse>()); } catch (Exception ex) { var message = ex.Message; if (streamResponse != null) { string responseContent = await streamResponse.Content.ReadAsStringAsync(); var errorResponse = responseContent.DeserializeAs <TaxJarErrorResponse>(); message = $"Error: {errorResponse.Error}. Details: {errorResponse.Detail}."; } throw new TaxServiceCalculatorException($"Error calculating rates. {message}"); } }