killbill-aplcache
Merge remote-tracking branch 'origin/test-fixes' into test-fixes-doc Signed-off-by: …
5/2/2018 5:38:50 PM
Changes
Details
diff --git a/payment/src/test/java/org/killbill/billing/payment/core/TestPaymentProcessor.java b/payment/src/test/java/org/killbill/billing/payment/core/TestPaymentProcessor.java
index d9e9b96..92470f0 100644
--- a/payment/src/test/java/org/killbill/billing/payment/core/TestPaymentProcessor.java
+++ b/payment/src/test/java/org/killbill/billing/payment/core/TestPaymentProcessor.java
@@ -65,6 +65,9 @@ public class TestPaymentProcessor extends PaymentTestSuiteWithEmbeddedDB {
@BeforeMethod(groups = "slow")
public void setUp() throws Exception {
+ if (hasFailed()) {
+ return;
+ }
mockPaymentProviderPlugin = (MockPaymentProviderPlugin) registry.getServiceForName(MockPaymentProviderPlugin.PLUGIN_NAME);
account = testHelper.createTestAccount(UUID.randomUUID().toString(), true);
diff --git a/profiles/killbill/src/test/java/org/killbill/billing/jaxrs/KillbillClient.java b/profiles/killbill/src/test/java/org/killbill/billing/jaxrs/KillbillClient.java
index 6f959bb..992d312 100644
--- a/profiles/killbill/src/test/java/org/killbill/billing/jaxrs/KillbillClient.java
+++ b/profiles/killbill/src/test/java/org/killbill/billing/jaxrs/KillbillClient.java
@@ -318,7 +318,7 @@ public abstract class KillbillClient extends GuicyKillbillTestSuiteWithEmbeddedD
assertNotNull(subscriptionJson);
// No payment will be triggered as the account doesn't have a payment method
- callbackServlet.pushExpectedEvents(ExtBusEventType.SUBSCRIPTION_PHASE, ExtBusEventType.INVOICE_CREATION);
+ callbackServlet.pushExpectedEvents(ExtBusEventType.SUBSCRIPTION_PHASE, ExtBusEventType.INVOICE_CREATION, ExtBusEventType.INVOICE_PAYMENT_FAILED);
clock.addMonths(1);
callbackServlet.assertListenerStatus();
diff --git a/profiles/killbill/src/test/java/org/killbill/billing/jaxrs/TestChargeback.java b/profiles/killbill/src/test/java/org/killbill/billing/jaxrs/TestChargeback.java
index b720db8..2559a84 100644
--- a/profiles/killbill/src/test/java/org/killbill/billing/jaxrs/TestChargeback.java
+++ b/profiles/killbill/src/test/java/org/killbill/billing/jaxrs/TestChargeback.java
@@ -32,6 +32,7 @@ import org.killbill.billing.client.model.gen.InvoicePayment;
import org.killbill.billing.client.model.gen.InvoicePaymentTransaction;
import org.killbill.billing.client.model.gen.PaymentTransaction;
import org.killbill.billing.client.model.gen.Subscription;
+import org.killbill.billing.notification.plugin.api.ExtBusEventType;
import org.killbill.billing.payment.api.TransactionStatus;
import org.killbill.billing.payment.api.TransactionType;
import org.testng.Assert;
@@ -174,8 +175,12 @@ public class TestChargeback extends TestJaxrsBase {
assertNotNull(subscriptionJson);
// Move after the trial period to trigger an invoice with a non-zero invoice item
+ callbackServlet.pushExpectedEvents(ExtBusEventType.SUBSCRIPTION_PHASE,
+ ExtBusEventType.INVOICE_CREATION,
+ ExtBusEventType.INVOICE_PAYMENT_SUCCESS,
+ ExtBusEventType.PAYMENT_SUCCESS);
clock.addDays(32);
- crappyWaitForLackOfProperSynchonization();
+ callbackServlet.assertListenerStatus();
// Retrieve the invoice
final List<Invoice> invoices = accountApi.getInvoicesForAccount(accountJson.getAccountId(), requestOptions);
diff --git a/profiles/killbill/src/test/java/org/killbill/billing/jaxrs/TestEntitlement.java b/profiles/killbill/src/test/java/org/killbill/billing/jaxrs/TestEntitlement.java
index 99df7c7..70e36d8 100644
--- a/profiles/killbill/src/test/java/org/killbill/billing/jaxrs/TestEntitlement.java
+++ b/profiles/killbill/src/test/java/org/killbill/billing/jaxrs/TestEntitlement.java
@@ -48,6 +48,7 @@ import org.killbill.billing.client.model.gen.Subscription;
import org.killbill.billing.entitlement.api.Entitlement.EntitlementActionPolicy;
import org.killbill.billing.entitlement.api.Entitlement.EntitlementState;
import org.killbill.billing.entitlement.api.SubscriptionEventType;
+import org.killbill.billing.notification.plugin.api.ExtBusEventType;
import org.killbill.billing.util.api.AuditLevel;
import org.testng.Assert;
import org.testng.annotations.Test;
@@ -99,13 +100,18 @@ public class TestEntitlement extends TestJaxrsBase {
newInput.setProductCategory(ProductCategory.BASE);
newInput.setBillingPeriod(entitlementJson.getBillingPeriod());
newInput.setPriceList(entitlementJson.getPriceList());
+ callbackServlet.pushExpectedEvents(ExtBusEventType.SUBSCRIPTION_CHANGE, ExtBusEventType.SUBSCRIPTION_CHANGE, ExtBusEventType.INVOICE_CREATION);
subscriptionApi.changeSubscriptionPlan(entitlementJson.getSubscriptionId(), newInput, null, null, NULL_PLUGIN_PROPERTIES, requestOptions);
+ callbackServlet.assertListenerStatus();
+ Assert.assertNotNull(objFromJson);
// MOVE AFTER TRIAL
- final Interval it = new Interval(clock.getUTCNow(), clock.getUTCNow().plusDays(31));
- clock.addDeltaFromReality(it.toDurationMillis());
-
- crappyWaitForLackOfProperSynchonization();
+ callbackServlet.pushExpectedEvents(ExtBusEventType.SUBSCRIPTION_PHASE,
+ ExtBusEventType.INVOICE_CREATION,
+ ExtBusEventType.INVOICE_PAYMENT_SUCCESS,
+ ExtBusEventType.PAYMENT_SUCCESS);
+ clock.addDays(31);
+ callbackServlet.assertListenerStatus();
// Cancel IMM (Billing EOT)
subscriptionApi.cancelSubscriptionPlan(newInput.getSubscriptionId(), null, null, null, NULL_PLUGIN_PROPERTIES, requestOptions);
@@ -146,10 +152,12 @@ public class TestEntitlement extends TestJaxrsBase {
Assert.assertTrue(objFromJson.equals(entitlementJson));
// MOVE AFTER TRIAL
- final Interval it = new Interval(clock.getUTCNow(), clock.getUTCNow().plusDays(31));
- clock.addDeltaFromReality(it.toDurationMillis());
-
- crappyWaitForLackOfProperSynchonization();
+ callbackServlet.pushExpectedEvents(ExtBusEventType.SUBSCRIPTION_PHASE,
+ ExtBusEventType.INVOICE_CREATION,
+ ExtBusEventType.INVOICE_PAYMENT_SUCCESS,
+ ExtBusEventType.PAYMENT_SUCCESS);
+ clock.addDays(31);
+ callbackServlet.assertListenerStatus();
// Cancel EOT
subscriptionApi.cancelSubscriptionPlan(entitlementJson.getSubscriptionId(), null, EntitlementActionPolicy.END_OF_TERM,
@@ -255,7 +263,13 @@ public class TestEntitlement extends TestJaxrsBase {
overrides.add(new PhasePriceOverride(null, null, PhaseType.TRIAL.toString(), BigDecimal.TEN, null, null));
input.setPriceOverrides(overrides);
+ callbackServlet.pushExpectedEvents(ExtBusEventType.ACCOUNT_CHANGE,
+ ExtBusEventType.ENTITLEMENT_CREATION,
+ ExtBusEventType.SUBSCRIPTION_CREATION,
+ ExtBusEventType.SUBSCRIPTION_CREATION,
+ ExtBusEventType.INVOICE_CREATION);
final Subscription subscription = subscriptionApi.createSubscription(input, null, null, null, null, null, true, DEFAULT_WAIT_COMPLETION_TIMEOUT_SEC, NULL_PLUGIN_PROPERTIES, requestOptions);
+ callbackServlet.assertListenerStatus();
Assert.assertEquals(subscription.getPriceOverrides().size(), 2);
Assert.assertEquals(subscription.getEvents().size(), 3);
@@ -282,8 +296,12 @@ public class TestEntitlement extends TestJaxrsBase {
assertEquals(invoices.get(0).getAmount().compareTo(BigDecimal.TEN), 0);
// Move clock after phase
+ callbackServlet.pushExpectedEvents(ExtBusEventType.SUBSCRIPTION_PHASE,
+ ExtBusEventType.INVOICE_CREATION,
+ ExtBusEventType.INVOICE_PAYMENT_SUCCESS,
+ ExtBusEventType.PAYMENT_SUCCESS);
clock.addDays(30);
- crappyWaitForLackOfProperSynchonization();
+ callbackServlet.assertListenerStatus();
final Subscription subscription2 = subscriptionApi.getSubscription(subscription.getSubscriptionId(), requestOptions);
Assert.assertEquals(subscription2.getEvents().size(), 3);
@@ -634,15 +652,18 @@ public class TestEntitlement extends TestJaxrsBase {
final Subscription updatedSubscription = new Subscription();
updatedSubscription.setSubscriptionId(entitlementJson.getSubscriptionId());
updatedSubscription.setBillCycleDayLocal(9);
+ callbackServlet.pushExpectedEvents(ExtBusEventType.SUBSCRIPTION_BCD_CHANGE);
subscriptionApi.updateSubscriptionBCD(entitlementJson.getSubscriptionId(), updatedSubscription, null, requestOptions);
+ callbackServlet.assertListenerStatus();
final Subscription result = subscriptionApi.getSubscription(entitlementJson.getSubscriptionId(), requestOptions);
// Still shows as the 4 (BCD did not take effect)
Assert.assertEquals(result.getBillCycleDayLocal(), new Integer(25));
// 2012, 5, 9
+ callbackServlet.pushExpectedEvents(ExtBusEventType.SUBSCRIPTION_BCD_CHANGE);
clock.addDays(14);
- crappyWaitForLackOfProperSynchonization();
+ callbackServlet.assertListenerStatus();
final Subscription result2 = subscriptionApi.getSubscription(entitlementJson.getSubscriptionId(), requestOptions);
// Still shows as the 4 (BCD did not take effect)
@@ -702,8 +723,11 @@ public class TestEntitlement extends TestJaxrsBase {
newInput.setProductCategory(ProductCategory.BASE);
newInput.setBillingPeriod(entitlementJson.getBillingPeriod());
newInput.setPriceList(entitlementJson.getPriceList());
+
+ callbackServlet.pushExpectedEvents(ExtBusEventType.SUBSCRIPTION_CHANGE);
subscriptionApi.changeSubscriptionPlan(entitlementJson.getSubscriptionId(), newInput, new LocalDate(2012, 4, 28), null, NULL_PLUGIN_PROPERTIES, requestOptions);
Subscription refreshedSubscription = subscriptionApi.getSubscription(entitlementJson.getSubscriptionId(), requestOptions);
+ callbackServlet.assertListenerStatus();
Assert.assertNotNull(refreshedSubscription);
final Interval it = new Interval(clock.getUTCNow(), clock.getUTCNow().plusDays(1));
@@ -712,10 +736,12 @@ public class TestEntitlement extends TestJaxrsBase {
subscriptionApi.undoChangeSubscriptionPlan(refreshedSubscription.getSubscriptionId(), NULL_PLUGIN_PROPERTIES, requestOptions);
// MOVE AFTER TRIAL
- final Interval it2 = new Interval(clock.getUTCNow(), clock.getUTCNow().plusDays(30));
- clock.addDeltaFromReality(it2.toDurationMillis());
-
- crappyWaitForLackOfProperSynchonization();
+ callbackServlet.pushExpectedEvents(ExtBusEventType.SUBSCRIPTION_PHASE,
+ ExtBusEventType.INVOICE_CREATION,
+ ExtBusEventType.INVOICE_PAYMENT_SUCCESS,
+ ExtBusEventType.PAYMENT_SUCCESS);
+ clock.addDays(30);
+ callbackServlet.assertListenerStatus();
// Retrieves to check EndDate
refreshedSubscription = subscriptionApi.getSubscription(entitlementJson.getSubscriptionId(), requestOptions);
diff --git a/profiles/killbill/src/test/java/org/killbill/billing/jaxrs/TestInvoice.java b/profiles/killbill/src/test/java/org/killbill/billing/jaxrs/TestInvoice.java
index 1d73e3c..8003797 100644
--- a/profiles/killbill/src/test/java/org/killbill/billing/jaxrs/TestInvoice.java
+++ b/profiles/killbill/src/test/java/org/killbill/billing/jaxrs/TestInvoice.java
@@ -46,6 +46,7 @@ import org.killbill.billing.entitlement.api.SubscriptionEventType;
import org.killbill.billing.invoice.api.DryRunType;
import org.killbill.billing.invoice.api.InvoiceItemType;
import org.killbill.billing.invoice.api.InvoiceStatus;
+import org.killbill.billing.notification.plugin.api.ExtBusEventType;
import org.killbill.billing.payment.provider.ExternalPaymentProviderPlugin;
import org.killbill.billing.util.api.AuditLevel;
import org.testng.Assert;
@@ -99,8 +100,6 @@ public class TestInvoice extends TestJaxrsBase {
assertEquals(invoiceApi.getInvoice(invoiceJson.getInvoiceId(), Boolean.TRUE, Boolean.FALSE, AuditLevel.NONE, requestOptions).getItems().size(), invoiceJson.getItems().size());
assertEquals(invoiceApi.getInvoiceByNumber(Integer.valueOf(invoiceJson.getInvoiceNumber()), Boolean.TRUE, Boolean.FALSE, AuditLevel.NONE, requestOptions).getItems().size(), invoiceJson.getItems().size());
-
-
// Check we can retrieve an individual invoice
final Invoice firstInvoice = invoiceApi.getInvoice(invoiceJson.getInvoiceId(), true, false, AuditLevel.FULL, requestOptions);
assertEquals(firstInvoice, invoiceJson);
@@ -641,8 +640,9 @@ public class TestInvoice extends TestJaxrsBase {
createAccountWithPMBundleAndSubscriptionAndWaitForFirstInvoice();
for (int i = 0; i < 3; i++) {
+ callbackServlet.pushExpectedEvents(ExtBusEventType.INVOICE_CREATION, ExtBusEventType.INVOICE_PAYMENT_SUCCESS, ExtBusEventType.PAYMENT_SUCCESS);
clock.addMonths(1);
- crappyWaitForLackOfProperSynchonization();
+ callbackServlet.assertListenerStatus();
}
final Invoices allInvoices = invoiceApi.getInvoices(requestOptions);
@@ -788,14 +788,21 @@ public class TestInvoice extends TestJaxrsBase {
// Add a bundle, subscription and move the clock to get the first invoice
createSubscription(childAccount1.getAccountId(), UUID.randomUUID().toString(), "Shotgun",
- ProductCategory.BASE, BillingPeriod.MONTHLY, true);
+ ProductCategory.BASE, BillingPeriod.MONTHLY, true);
createSubscription(childAccount2.getAccountId(), UUID.randomUUID().toString(), "Pistol",
- ProductCategory.BASE, BillingPeriod.MONTHLY, true);
+ ProductCategory.BASE, BillingPeriod.MONTHLY, true);
createSubscription(childAccount3.getAccountId(), UUID.randomUUID().toString(), "Shotgun",
- ProductCategory.BASE, BillingPeriod.MONTHLY, true);
-
+ ProductCategory.BASE, BillingPeriod.MONTHLY, true);
+
+ callbackServlet.pushExpectedEvents(ExtBusEventType.SUBSCRIPTION_PHASE,
+ ExtBusEventType.SUBSCRIPTION_PHASE,
+ ExtBusEventType.SUBSCRIPTION_PHASE,
+ ExtBusEventType.INVOICE_CREATION,
+ ExtBusEventType.INVOICE_CREATION,
+ ExtBusEventType.INVOICE_CREATION,
+ ExtBusEventType.INVOICE_CREATION);
clock.addDays(32);
- crappyWaitForLackOfProperSynchonization();
+ callbackServlet.assertListenerStatus();
final List<Invoice> child1Invoices = accountApi.getInvoicesForAccount(childAccount1.getAccountId(), true, false, false, false, AuditLevel.NONE, requestOptions);
final List<Invoice> child2Invoices = accountApi.getInvoicesForAccount(childAccount2.getAccountId(), true, false, false, false, AuditLevel.NONE, requestOptions);
diff --git a/profiles/killbill/src/test/java/org/killbill/billing/jaxrs/TestInvoicePayment.java b/profiles/killbill/src/test/java/org/killbill/billing/jaxrs/TestInvoicePayment.java
index e418ac0..a3f4af8 100644
--- a/profiles/killbill/src/test/java/org/killbill/billing/jaxrs/TestInvoicePayment.java
+++ b/profiles/killbill/src/test/java/org/killbill/billing/jaxrs/TestInvoicePayment.java
@@ -311,7 +311,6 @@ public class TestInvoicePayment extends TestJaxrsBase {
@Test(groups = "slow")
public void testManualInvoicePayment() throws Exception {
-
final Account accountJson = createAccountWithDefaultPaymentMethod();
assertNotNull(accountJson);
@@ -324,8 +323,11 @@ public class TestInvoicePayment extends TestJaxrsBase {
final Subscription subscriptionJson = createSubscription(accountJson.getAccountId(), UUID.randomUUID().toString(), "Shotgun",
ProductCategory.BASE, BillingPeriod.MONTHLY, true);
assertNotNull(subscriptionJson);
+
+ callbackServlet.pushExpectedEvents(ExtBusEventType.SUBSCRIPTION_PHASE,
+ ExtBusEventType.INVOICE_CREATION);
clock.addDays(32);
- crappyWaitForLackOfProperSynchonization();
+ callbackServlet.assertListenerStatus();
final List<Invoice> invoices = accountApi.getInvoicesForAccount(accountJson.getAccountId(), requestOptions);
assertEquals(invoices.size(), 2);
diff --git a/profiles/killbill/src/test/java/org/killbill/billing/jaxrs/TestOverdue.java b/profiles/killbill/src/test/java/org/killbill/billing/jaxrs/TestOverdue.java
index 6eea003..b13e376 100644
--- a/profiles/killbill/src/test/java/org/killbill/billing/jaxrs/TestOverdue.java
+++ b/profiles/killbill/src/test/java/org/killbill/billing/jaxrs/TestOverdue.java
@@ -61,16 +61,19 @@ public class TestOverdue extends TestJaxrsBase {
// We're still clear - see the configuration
Assert.assertTrue(accountApi.getOverdueAccount(accountJson.getAccountId(), requestOptions).isClearState());
+ callbackServlet.pushExpectedEvents(ExtBusEventType.INVOICE_CREATION, ExtBusEventType.INVOICE_PAYMENT_FAILED, ExtBusEventType.BLOCKING_STATE, ExtBusEventType.OVERDUE_CHANGE);
clock.addDays(30);
- crappyWaitForLackOfProperSynchonization();
+ callbackServlet.assertListenerStatus();
Assert.assertEquals(accountApi.getOverdueAccount(accountJson.getAccountId(), requestOptions).getName(), "OD1");
+ callbackServlet.pushExpectedEvents(ExtBusEventType.TAG_CREATION, ExtBusEventType.BLOCKING_STATE, ExtBusEventType.OVERDUE_CHANGE);
clock.addDays(10);
- crappyWaitForLackOfProperSynchonization();
+ callbackServlet.assertListenerStatus();
Assert.assertEquals(accountApi.getOverdueAccount(accountJson.getAccountId(), requestOptions).getName(), "OD2");
+ callbackServlet.pushExpectedEvents(ExtBusEventType.BLOCKING_STATE, ExtBusEventType.OVERDUE_CHANGE);
clock.addDays(10);
- crappyWaitForLackOfProperSynchonization();
+ callbackServlet.assertListenerStatus();
Assert.assertEquals(accountApi.getOverdueAccount(accountJson.getAccountId(), requestOptions).getName(), "OD3");
// Post external payments, paying the most recent invoice first: this is to avoid a race condition where
diff --git a/profiles/killbill/src/test/java/org/killbill/billing/jaxrs/TestUsage.java b/profiles/killbill/src/test/java/org/killbill/billing/jaxrs/TestUsage.java
index b417cbd..689aa8e 100644
--- a/profiles/killbill/src/test/java/org/killbill/billing/jaxrs/TestUsage.java
+++ b/profiles/killbill/src/test/java/org/killbill/billing/jaxrs/TestUsage.java
@@ -35,6 +35,7 @@ import org.killbill.billing.client.model.gen.SubscriptionUsageRecord;
import org.killbill.billing.client.model.gen.UnitUsageRecord;
import org.killbill.billing.client.model.gen.UsageRecord;
import org.killbill.billing.invoice.api.InvoiceItemType;
+import org.killbill.billing.notification.plugin.api.ExtBusEventType;
import org.killbill.billing.util.api.AuditLevel;
import org.testng.Assert;
import org.testng.annotations.Test;
@@ -63,6 +64,14 @@ public class TestUsage extends TestJaxrsBase {
addOn.setBillingPeriod(BillingPeriod.NO_BILLING_PERIOD);
addOn.setPriceList(PriceListSet.DEFAULT_PRICELIST_NAME);
+ callbackServlet.pushExpectedEvents(ExtBusEventType.ACCOUNT_CHANGE,
+ ExtBusEventType.ENTITLEMENT_CREATION,
+ ExtBusEventType.ENTITLEMENT_CREATION,
+ ExtBusEventType.SUBSCRIPTION_CREATION,
+ ExtBusEventType.SUBSCRIPTION_CREATION,
+ ExtBusEventType.SUBSCRIPTION_CREATION,
+ ExtBusEventType.SUBSCRIPTION_CREATION,
+ ExtBusEventType.INVOICE_CREATION);
final Subscriptions body = new Subscriptions();
body.add(base);
body.add(addOn);
@@ -72,6 +81,7 @@ public class TestUsage extends TestJaxrsBase {
null,
NULL_PLUGIN_PROPERTIES,
requestOptions);
+ callbackServlet.assertListenerStatus();
final UUID addOnSubscriptionId = Iterables.<Subscription>find(bundle.getSubscriptions(),
new Predicate<Subscription>() {
@Override
@@ -99,6 +109,7 @@ public class TestUsage extends TestJaxrsBase {
usage.setUnitUsageRecords(ImmutableList.<UnitUsageRecord>of(unitUsageRecord));
usageApi.recordUsage(usage, requestOptions);
+ callbackServlet.assertListenerStatus();
final RolledUpUsage retrievedUsage1 = usageApi.getUsage(addOnSubscriptionId, unitUsageRecord.getUnitType(), clock.getUTCToday().minusDays(1), clock.getUTCToday(), requestOptions);
Assert.assertEquals(retrievedUsage1.getSubscriptionId(), usage.getSubscriptionId());
@@ -125,8 +136,12 @@ public class TestUsage extends TestJaxrsBase {
Assert.assertEquals(retrievedUsage4.getRolledUpUnits().get(0).getUnitType(), "bullets");
Assert.assertEquals((long) retrievedUsage4.getRolledUpUnits().get(0).getAmount(), 5);
+ callbackServlet.pushExpectedEvents(ExtBusEventType.SUBSCRIPTION_PHASE,
+ ExtBusEventType.INVOICE_CREATION,
+ ExtBusEventType.INVOICE_PAYMENT_SUCCESS,
+ ExtBusEventType.PAYMENT_SUCCESS);
clock.addMonths(1);
- crappyWaitForLackOfProperSynchonization();
+ callbackServlet.assertListenerStatus();
final Invoices invoices = accountApi.getInvoicesForAccount(accountJson.getAccountId(), true, false, false, false, AuditLevel.MINIMAL, requestOptions);
Assert.assertEquals(invoices.size(), 2);