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 TestAlternateTaxAddPostalCodeBadCountry() {
   AlternateTaxTable att = new AlternateTaxTable();
   att.AddPostalAreaTaxRule(string.Empty, .040);
 }
    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());
    }