public void Can_Get_TaxResult_With_Deserialized_Example_Json() { //// Arrange var taxRequest = JsonConvert.DeserializeObject <TaxRequest>(JSON); taxRequest.DocCode = "INV-O1"; //// Act var result = AvaTaxService.GetTax(taxRequest); //// Assert Assert.NotNull(result); Assert.AreEqual(result.ResultCode, SeverityLevel.Success); }
/// <summary> /// The calculate tax for invoice. /// </summary> /// <param name="invoice"> /// The invoice. /// </param> /// <param name="taxAddress"> /// The tax address. /// </param> /// <param name="quoteOnly"> /// A value indicating whether or not this is a tax quote or a formal tax submission /// </param> /// <returns> /// The <see cref="ITaxCalculationResult"/>. /// </returns> public ITaxCalculationResult CalculateTaxForInvoice(IInvoice invoice, IAddress taxAddress, bool quoteOnly) { var defaultStoreAddress = _settings.DefaultStoreAddress; string prefix = invoice.InvoiceNumberPrefix; if (quoteOnly) { invoice.InvoiceNumberPrefix = string.Format("Quote-{0}", Guid.NewGuid()); } var request = invoice.AsTaxRequest(defaultStoreAddress, quoteOnly); if (quoteOnly) { invoice.InvoiceNumberPrefix = prefix; } request.CompanyCode = _settings.CompanyCode; var avaTaxResult = _avaTaxService.GetTax(request); if (avaTaxResult.ResultCode == SeverityLevel.Success) { var extendedData = new ExtendedDataCollection(); extendedData.SetValue(Core.Constants.ExtendedDataKeys.TaxTransactionResults, JsonConvert.SerializeObject(avaTaxResult)); return(new TaxCalculationResult(TaxMethod.Name, -1, avaTaxResult.TotalTax, extendedData)); } IEnumerable <ApiResponseMessage> messages; try { messages = avaTaxResult.Messages; } catch (Exception) { messages = Enumerable.Empty <ApiResponseMessage>(); } var exception = new AvaTaxApiException(string.Format("AvaTax returned result code: {0}. {1}", avaTaxResult.ResultCode, string.Join(Environment.NewLine, messages.Select(x => x.Details)))); LogHelper.Error <AvaTaxTaxationGatewayMethod>("AvaTax API returned an exception", exception); throw exception; }
public void Can_Get_Tax_Result_With_IInvoice_Data() { //// Arrange var storeAddress = new Address() { Name = "Mindfly, Inc.", Address1 = "114 W. Magnolia St. Suite 300", Locality = "Bellingham", Region = "WA", PostalCode = "98225", CountryCode = "US" }; var taxRequest = Invoice.AsTaxRequest(storeAddress.ToTaxAddress()); taxRequest.DocCode = "INV-DT-" + Guid.NewGuid().ToString(); Assert.NotNull(taxRequest); var result = AvaTaxService.GetTax(taxRequest); //// Assert Assert.NotNull(result); if (result.ResultCode != SeverityLevel.Success) { if (result.Messages.Any()) { foreach (var message in result.Messages) { Console.WriteLine(message.Details); } } } Assert.AreEqual(result.ResultCode, SeverityLevel.Success); }