public void TestAlternateTaxAddPostalCodeDuplicate()
        {
            AlternateTaxTable att = new AlternateTaxTable();

            att.AddPostalAreaTaxRule("CA", .040);
            att.AddPostalAreaTaxRule("CA", .025);
        }
        public void TestAlternateTaxAddPostalCodeRuleGood()
        {
            AlternateTaxTable att = new AlternateTaxTable();

            att.AddPostalAreaTaxRule("CA", .040);
            att.AddPostalAreaTaxRule("CA", "5F4F5F", .025);
        }
        public void TestAlternateTaxTable_AddPostalAreaTaxRule_VerifyTaxRateSetsIsSpecified()
        {
            //create a pickup shipping method
            var request = new CheckoutShoppingCartRequest(MERCHANT_ID, MERCHANT_KEY, EnvironmentType.Sandbox, "GBP", 120);

            var taxTable = new AlternateTaxTable("canada");

            request.AlternateTaxTables.Add(taxTable);
            taxTable.AddPostalAreaTaxRule("CA", .05);

            CheckoutShoppingCart roundTrip = EncodeHelper.Deserialize(EncodeHelper.Utf8BytesToString(request.GetXml()),
                                                                      typeof(CheckoutShoppingCart)) as CheckoutShoppingCart;

            var actualTaxTable = roundTrip.checkoutflowsupport.Item.taxtables.alternatetaxtables[0].alternatetaxrules[0];

            Assert.AreEqual(.05, actualTaxTable.rate);
            Assert.IsTrue(actualTaxTable.rateSpecified);
            Assert.AreEqual(typeof(PostalArea), actualTaxTable.taxarea.Item.GetType());
        }
        public void TestAlternateTaxAddPostalCodeBadCountry()
        {
            AlternateTaxTable att = new AlternateTaxTable();

            att.AddPostalAreaTaxRule(string.Empty, .040);
        }