Exemple #1
0
        public void CalculateTax_SantaMonicaZipTest()
        {
            TaxJar      taxJar      = new TaxJar();
            TaxResponse taxResponse = new TaxResponse();

            Tax tax = new Tax();

            tax.FromCountry = "US";
            tax.FromZip     = "07001";
            tax.FromState   = "NJ";
            tax.ToCountry   = "US";
            tax.ToZip       = "07446";
            tax.ToState     = "NJ";
            tax.Amount      = 16.5m;
            tax.Shipping    = 1.5m;

            TaxLineItem lineItem = new TaxLineItem();

            lineItem.Quantity       = 1;
            lineItem.UnitPrice      = 15.0m;
            lineItem.ProductTaxCode = "31000";

            tax.LineItems.Add(lineItem);

            var taxService = new TaxService.TaxService();

            Task.Run(async() =>
            {
                taxResponse.Tax = await taxService.CalculateTax(taxJar, tax);
            });

            Assert.IsTrue(taxResponse.OrderTotalAmount == 16.5m);
            Assert.IsTrue(taxResponse.Shipping == 1.5m);
        }
Exemple #2
0
        public async void GetTaxRateByLocation_InvalidAPIToken_ShouldFail()
        {
            var taxJarCalculator = new TaxJar(Initializer.API_URL, "test");

            var location = Initializer.GetValidLocation();

            await Assert.ThrowsAnyAsync <TaxServiceCalculatorException>(() => taxJarCalculator.GetTaxRateByLocation(location));
        }
Exemple #3
0
        public async void CalculateOrderTaxes_NullOrder_ShouldFail()
        {
            var taxJarCalculator = new TaxJar(Initializer.API_URL, Initializer.API_TOKEN);

            Func <Task> result = () => taxJarCalculator.CalculateOrderTaxes(null);

            var exception = await Assert.ThrowsAsync <ArgumentNullException>(result);

            Assert.Equal("Order", exception.ParamName);
        }
Exemple #4
0
        public async void GetTaxRateByLocation_NullLocation_ShouldFail()
        {
            var taxJarCalculator = new TaxJar(Initializer.API_URL, Initializer.API_TOKEN);

            Func <Task> result = () => taxJarCalculator.GetTaxRateByLocation(null);

            var exception = await Assert.ThrowsAsync <ArgumentNullException>(result);

            Assert.Equal("Location", exception.ParamName);
        }
Exemple #5
0
        public async void GetTaxRateByLocation_InvalidLocation_ShouldFail()
        {
            var taxJarCalculator = new TaxJar(Initializer.API_URL, Initializer.API_TOKEN);

            var location = new Location {
                ZIP = "0", Street = "", City = "", State = "", Country = ""
            };

            await Assert.ThrowsAnyAsync <TaxServiceCalculatorException>(() => taxJarCalculator.GetTaxRateByLocation(location));
        }
Exemple #6
0
        public async void CalculateOrderTaxes_EmptyToCountry_ShouldFail()
        {
            var taxJarCalculator = new TaxJar(Initializer.API_URL, Initializer.API_TOKEN);

            var order = new Order();

            Func <Task> result = () => taxJarCalculator.CalculateOrderTaxes(order);

            var exception = await Assert.ThrowsAsync <ArgumentException>(result);

            Assert.Equal("The ToCountry is required.", exception.Message);
        }
Exemple #7
0
        public async void CalculateOrderTaxes_OrderWithNoItems_ShouldFail()
        {
            var taxJarCalculator = new TaxJar(Initializer.API_URL, Initializer.API_TOKEN);

            var order = Initializer.GetOrder();

            Func <Task> result = () => taxJarCalculator.CalculateOrderTaxes(order);

            var exception = await Assert.ThrowsAsync <ArgumentException>(result);

            Assert.Equal("Either amount or Line Items parameters are required to perform tax calculations.", exception.Message);
        }
Exemple #8
0
        public void TaxJar_GetTaxRate_Success()
        {
            var configuration = new ConfigurationBuilder()
                                .SetBasePath(Directory.GetCurrentDirectory())
                                .AddJsonFile("appsettings.json")
                                .Build();
            TaxJar tj      = new TaxJar(configuration);
            string zipcode = "07747";
            double rate    = tj.GetTaxRate(zipcode);

            Assert.Equal(taxrateNJ, rate);
        }
Exemple #9
0
        public void TaxJar_GetTotalTax_Success()
        {
            var configuration = new ConfigurationBuilder()
                                .SetBasePath(Directory.GetCurrentDirectory())
                                .AddJsonFile("appsettings.json")
                                .Build();
            TaxJar tj         = new TaxJar(configuration);
            string zipcode    = "07747";
            double orderTotal = 10.00;
            double totaltax   = tj.GetTotalTax(zipcode, orderTotal);

            Assert.Equal(orderTotal * taxrateNJ, totaltax);
        }
Exemple #10
0
        public async void CalculateOrderTaxes_InvalidToZipWhenToCountryUS_ShouldFail()
        {
            var taxJarCalculator = new TaxJar(Initializer.API_URL, Initializer.API_TOKEN);

            var order = Initializer.GetNYOrderWithItems();

            order.ToZip = string.Empty;

            Func <Task> result = () => taxJarCalculator.CalculateOrderTaxes(order);

            var exception = await Assert.ThrowsAsync <ArgumentException>(result);

            Assert.Equal("The ToZip parameter is required when ToCountry is 'US'.", exception.Message);
        }
Exemple #11
0
        public async void CalculateOrderTaxes_InvalidShipping_ShouldFail()
        {
            var taxJarCalculator = new TaxJar(Initializer.API_URL, Initializer.API_TOKEN);

            var order = new Order {
                ToCountry = Constants.COUNTRY_US
            };

            Func <Task> result = () => taxJarCalculator.CalculateOrderTaxes(order);

            var exception = await Assert.ThrowsAsync <ArgumentException>(result);

            Assert.Equal("Invalid Shipping value.", exception.Message);
        }
Exemple #12
0
        public async void TaxJarGetRate(string ziptest, string statetest, string citytest, string countrytest, string streettest)
        {
            ReqRates reqRates = new ReqRates()
            {
                zip     = ziptest,
                state   = statetest,
                city    = citytest,
                country = countrytest,
                street  = streettest
            };

            TaxJar taxJar = new TaxJar();

            Assert.Equal(0.09, await taxJar.GetRate(reqRates));
        }
        public void GetRate_EmptyZipTest()
        {
            TaxJar       taxJar       = new TaxJar();
            RateResponse rateResponse = new RateResponse();

            string zip = "";

            var taxService = new TaxService.TaxService();

            Task.Run(async() =>
            {
                rateResponse.Rate = await taxService.GetRate(taxJar, zip);
            });

            Assert.IsNull(rateResponse.Rate);
        }
Exemple #14
0
        public void GetRate_SantaMonicaZipTest()
        {
            TaxJar       taxJar       = new TaxJar();
            RateResponse rateResponse = new RateResponse();

            //zip of city of Santa Monica
            string zip = "90404";

            var taxService = new TaxService.TaxService();

            Task.Run(async() =>
            {
                rateResponse.Rate = await taxService.GetRate(taxJar, zip);
            });

            Assert.IsTrue(rateResponse.Rate.City.Equals("SANTA MONICA"));
        }
        public void CalculateTax_EmptyToCountryTaxInfoTest()
        {
            TaxJar      taxJar      = new TaxJar();
            TaxResponse taxResponse = new TaxResponse();

            Tax tax = new Tax();

            tax.ToCountry = "";

            var taxService = new TaxService.TaxService();

            Task.Run(async() =>
            {
                taxResponse.Tax = await taxService.CalculateTax(taxJar, tax);
            });

            Assert.IsNull(taxResponse.Tax);
        }
Exemple #16
0
        public async void TaxJarGetTaxableAmount(string tocountry, string tozip, string tostate, double shipping, string fromzip, string fromcountry, string fromcity, string fromstate, string fromstreet, double amount)
        {
            ReqTaxes reqTaxes = new ReqTaxes()
            {
                ToCountry   = tocountry,
                ToZip       = tozip,
                ToState     = tostate,
                Shipping    = shipping,
                FromZip     = fromzip,
                FromCountry = fromcountry,
                FromCity    = fromcity,
                FromState   = fromstate,
                FromStreet  = fromstreet
            };

            TaxJar taxJar = new TaxJar();

            // Not getting right result from post request? Seems it's picking up the get request rate. Weird.

            Assert.Equal(41.03, await taxJar.GetTaxableAmount(reqTaxes));
        }