public void TestAlternateTaxTableNullNameFailAddWorldAreaTwice() {
   AlternateTaxTable att = new AlternateTaxTable();
   att.AddWorldAreaTaxRule(.025);
   att.AddWorldAreaTaxRule(.025); //will blow up.
 }
 public void TestAlternateTaxAddWorldAreaTaxRule() {
   AlternateTaxTable att = new AlternateTaxTable();
   att.AddWorldAreaTaxRule(.025);
 }
 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());
    }