public async void GetTaxForOrder_Expect_Sucsess() { // Setup var mockResponse = new GetOrderSalesTaxResponse() { SalesTax = new SalesTax { amount_to_collect = 12.90, Order_total_amount = 124.88, jurisdictions = new Jurisdictions { city = "Saint Pete", country = "US" } } }; var fakeRequest = new GetOrderSalesTaxRequest { }; _apiClient.Setup(x => x.PostAsync <GetOrderSalesTaxResponse>(It.IsAny <string>(), It.IsAny <object>())) .Returns(Task.FromResult(mockResponse)).Verifiable(); // Act var actualResponse = await _taxRepository.GetOrderSalesTax(fakeRequest) as GetOrderSalesTaxResponse; // Assert Assert.NotNull(actualResponse); Assert.NotNull(actualResponse.SalesTax); Assert.Equal(12.90, actualResponse.SalesTax.amount_to_collect); Assert.Equal(124.88, actualResponse.SalesTax.Order_total_amount); Assert.NotNull(actualResponse.SalesTax.jurisdictions); Assert.Equal("Saint Pete", actualResponse.SalesTax.jurisdictions.city); }
/// <summary> /// This Method inetgrates with Tax Jar api Http Client(GetAsync) to fetch the sales tax that should be collected for a given order. /// </summary> /// <param name="apiRequest"></param> /// <returns>GetOrderSalesTaxResponse</returns> public async Task <GetOrderSalesTaxResponse> GetOrderSalesTax(GetOrderSalesTaxRequest apiRequest) { var response = await _apiClient.PostAsync <GetOrderSalesTaxResponse>(apiRequest.Uri, apiRequest); return(response); }