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

            att.AddWorldAreaTaxRule(.025);
            att.AddWorldAreaTaxRule(.025); //will blow up.
        }
        public void TestAlternateTaxStandAlone()
        {
            AlternateTaxTable att = new AlternateTaxTable("name", true);

            att.AddWorldAreaTaxRule(.025);
            Assert.AreEqual(true, att.StandAlone);
        }
        public void TestAlternateTaxTable_AddWorldAreaTaxRule_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.AddWorldAreaTaxRule(.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(WorldArea), actualTaxTable.taxarea.Item.GetType());
        }
        public void TestAlternateTaxAddWorldAreaTaxRule()
        {
            AlternateTaxTable att = new AlternateTaxTable();

            att.AddWorldAreaTaxRule(.025);
        }