/// <summary> /// This method is used to fetch the sales tax that should be collected for a given order. /// </summary> /// <param name="getOrderSalesTaxRequest"></param> /// <returns>GetOrderSalesTaxResponse</returns> public async Task <GetOrderSalesTaxResponse> GetOrderSalesTax(GetOrderSalesTaxRequestModel getOrderSalesTaxRequest) { // Map Partner Request var apiRequest = _taxProviderMapper.MapGetOrderSalesTaxRequest(getOrderSalesTaxRequest); // Process Request var response = await _taxRepository.GetOrderSalesTax(apiRequest); // Return Response return(response); }
public async void GetOrderSalesTax_ValidInput_Expect_Success(int amount, string fromCountry, string toCountry) { // Setup var mockResponse = new GetOrderSalesTaxResponse() { SalesTax = new SalesTax { amount_to_collect = 12.90, Order_total_amount = 124.88, breakdown = new Breakdown { city_taxable_amount = 78, city_tax_rate = 7 }, jurisdictions = new Jurisdictions { city = "Saint Pete", country = "US" } } }; var fakeRequest = new GetOrderSalesTaxRequestModel { Amount = amount, From_country = fromCountry, To_country = toCountry }; _taxProvider.Setup(x => x.GetOrderSalesTax(It.IsAny <GetOrderSalesTaxRequestModel>())) .Returns(Task.FromResult(mockResponse)).Verifiable(); // Act var actualResponse = await _taxController.GetOrderSalesTax(fakeRequest) as OkObjectResult; var data = actualResponse.Value as GetOrderSalesTaxResponse; // Assert Assert.NotNull(actualResponse); Assert.NotNull(data); Assert.NotNull(data.SalesTax); Assert.Equal(12.90, data.SalesTax.amount_to_collect); Assert.Equal(124.88, data.SalesTax.Order_total_amount); Assert.NotNull(data.SalesTax.breakdown); Assert.Equal(78, data.SalesTax.breakdown.city_taxable_amount); Assert.NotNull(data.SalesTax.jurisdictions); Assert.Equal("Saint Pete", data.SalesTax.jurisdictions.city); }
/// <summary> /// Mapper method for GetOrderSalesTax Request /// </summary> /// <param name="getOrderSalesTaxRequestModel"></param> /// <returns></returns> public GetOrderSalesTaxRequest MapGetOrderSalesTaxRequest(GetOrderSalesTaxRequestModel getOrderSalesTaxRequestModel) { return(new GetOrderSalesTaxRequest() { // Manadatory fields To_country = getOrderSalesTaxRequestModel.To_country, Shipping = getOrderSalesTaxRequestModel.Shipping, // Manadatory fields - END From_country = getOrderSalesTaxRequestModel.From_country, To_zip = getOrderSalesTaxRequestModel.To_zip, To_state = getOrderSalesTaxRequestModel.To_state, From_zip = getOrderSalesTaxRequestModel.From_zip, From_city = getOrderSalesTaxRequestModel.From_city, From_state = getOrderSalesTaxRequestModel.From_state, From_street = getOrderSalesTaxRequestModel.From_street, To_city = getOrderSalesTaxRequestModel.To_city, To_street = getOrderSalesTaxRequestModel.To_street, Amount = getOrderSalesTaxRequestModel.Amount, Nexus_addresses = getOrderSalesTaxRequestModel.Nexus_addresses, Line_items = getOrderSalesTaxRequestModel.Line_items, }); }
public async Task <IActionResult> GetOrderSalesTax([FromBody] GetOrderSalesTaxRequestModel getOrderSalesTaxRequest) { var getOrderSalesTaxResponse = await _taxProvider.GetOrderSalesTax(getOrderSalesTaxRequest); return(Ok(getOrderSalesTaxResponse)); }