diff --git a/pom.xml b/pom.xml
index c888f6b..26df70b 100644
--- a/pom.xml
+++ b/pom.xml
@@ -187,6 +187,11 @@
killbill-metrics-api
provided
+
+ org.kill-bill.commons
+ killbill-utils
+ runtime
+
org.kill-bill.testing
testing-mysql-server
diff --git a/src/test/java/org/killbill/billing/plugin/avatax/client/TestTaxRatesClient.java b/src/test/java/org/killbill/billing/plugin/avatax/client/TestTaxRatesClient.java
index 08e6126..78332c6 100644
--- a/src/test/java/org/killbill/billing/plugin/avatax/client/TestTaxRatesClient.java
+++ b/src/test/java/org/killbill/billing/plugin/avatax/client/TestTaxRatesClient.java
@@ -18,7 +18,12 @@
package org.killbill.billing.plugin.avatax.client;
+import java.util.ArrayList;
+import java.util.Comparator;
+import java.util.List;
+
import org.killbill.billing.plugin.avatax.AvaTaxRemoteTestBase;
+import org.killbill.billing.plugin.avatax.client.model.RateModel;
import org.killbill.billing.plugin.avatax.client.model.TaxRateResult;
import org.testng.Assert;
import org.testng.annotations.Test;
@@ -41,20 +46,26 @@ private void checkSFRates(final TaxRateResult result) {
Assert.assertEquals(result.totalRate, 0.08625);
Assert.assertEquals(result.rates.size(), 4);
- Assert.assertEquals(result.rates.get(0).rate, 0.0025);
- Assert.assertEquals(result.rates.get(0).name, "CA COUNTY TAX");
- Assert.assertEquals(result.rates.get(0).type, "County");
+ // Sort rates by type then by rate to avoid order-dependent assertions,
+ // as the AvaTax API does not guarantee a specific ordering.
+ final List sorted = new ArrayList<>(result.rates);
+ sorted.sort(Comparator.comparing((RateModel r) -> r.type)
+ .thenComparingDouble(r -> r.rate));
+
+ Assert.assertEquals(sorted.get(0).rate, 0.0025);
+ Assert.assertEquals(sorted.get(0).name, "CA COUNTY TAX");
+ Assert.assertEquals(sorted.get(0).type, "County");
- Assert.assertEquals(result.rates.get(1).rate, 0.06);
- Assert.assertEquals(result.rates.get(1).name, "CA STATE TAX");
- Assert.assertEquals(result.rates.get(1).type, "State");
+ Assert.assertEquals(sorted.get(1).rate, 0.01);
+ Assert.assertEquals(sorted.get(1).name, "CA SPECIAL TAX");
+ Assert.assertEquals(sorted.get(1).type, "Special");
- Assert.assertEquals(result.rates.get(2).rate, 0.01375);
- Assert.assertEquals(result.rates.get(2).name, "CA SPECIAL TAX");
- Assert.assertEquals(result.rates.get(2).type, "Special");
+ Assert.assertEquals(sorted.get(2).rate, 0.01375);
+ Assert.assertEquals(sorted.get(2).name, "CA SPECIAL TAX");
+ Assert.assertEquals(sorted.get(2).type, "Special");
- Assert.assertEquals(result.rates.get(3).rate, 0.01);
- Assert.assertEquals(result.rates.get(3).name, "CA SPECIAL TAX");
- Assert.assertEquals(result.rates.get(3).type, "Special");
+ Assert.assertEquals(sorted.get(3).rate, 0.06);
+ Assert.assertEquals(sorted.get(3).name, "CA STATE TAX");
+ Assert.assertEquals(sorted.get(3).type, "State");
}
}