public void LocationZipCodeValidation_whiteSpace()
        {
            var calculator = new TaxJarTaxCalculator(clientFactory.Object);

            validLocation.ZipCode = "   ";
            Assert.Throws <ArgumentException>(() => calculator.TaxRatesForLocation(validLocation), "The Location's zipcode is required");
        }
        public void ReturnsNullOnExceptionThrown()
        {
            SetupNamedClientToThrow();
            var calculator = new TaxJarTaxCalculator(clientFactory.Object);
            var rates      = calculator.TaxRatesForLocation(validLocation);

            Assert.IsNull(rates);
        }
        public void ReturnsNullOnBadRequest()
        {
            SetupNamedClientWithFailingAnswer();
            var calculator = new TaxJarTaxCalculator(clientFactory.Object);
            var rates      = calculator.TaxRatesForLocation(validLocation);

            Assert.IsNull(rates);
        }
        public void ReturnsRatesObject()
        {
            SetupNamedClientWithFakeAnswer();
            var calculator = new TaxJarTaxCalculator(clientFactory.Object);
            var rates      = calculator.TaxRatesForLocation(validLocation);

            Assert.IsTrue(CompareAllProperties(fakeRates.ToTaxRatesInfo(), rates), "Rates are not equal");
        }
        public void CreatesNamedClient()
        {
            SetupNamedClientWithFakeAnswer();
            var calculator = new TaxJarTaxCalculator(clientFactory.Object);

            calculator.TaxRatesForLocation(validLocation);
            clientFactory.Verify(f => f.CreateClient("TaxJar"), Times.Once);
        }