diff --git a/beatrix/src/test/java/com/ning/billing/beatrix/integration/inv_ent/TestBasic.java b/beatrix/src/test/java/com/ning/billing/beatrix/integration/inv_ent/TestBasic.java
index 63ea85e..3ed97e1 100644
--- a/beatrix/src/test/java/com/ning/billing/beatrix/integration/inv_ent/TestBasic.java
+++ b/beatrix/src/test/java/com/ning/billing/beatrix/integration/inv_ent/TestBasic.java
@@ -170,7 +170,7 @@ public class TestBasic {
}
@Test(groups = "fast", enabled = false)
- public void testSimple() throws Exception {
+ public void testBasePlanComplete() throws Exception {
Account account = accountUserApi.createAccount(getAccountData(), null, null);
assertNotNull(account);
@@ -189,7 +189,7 @@ public class TestBasic {
SubscriptionData subscription = (SubscriptionData) entitlementUserApi.createSubscription(bundle.getId(),
new PlanPhaseSpecifier(productName, ProductCategory.BASE, term, planSetName, null), null);
assertNotNull(subscription);
- assertTrue(busHandler.isCompleted(5000 * 1000));
+ assertTrue(busHandler.isCompleted(5000));
//
// VERIFY CTD HAS BEEN SET
@@ -215,6 +215,13 @@ public class TestBasic {
DateTime ctd = checkAndGetCTD(subscription.getId());
//
+ // MOVE TIME TO AFTER TRIAL AND EXPECT BOTH EVENTS : NextEvent.PHASE NextEvent.INVOICE
+ //
+ busHandler.pushExpectedEvent(NextEvent.PHASE);
+ busHandler.pushExpectedEvent(NextEvent.INVOICE);
+ clock.setDeltaFromReality(AT_LEAST_ONE_MONTH_MS);
+
+ //
// CHANGE PAN EOT AND EXPECT NOTHING
//
newTerm = BillingPeriod.MONTHLY;
@@ -227,7 +234,7 @@ public class TestBasic {
//
busHandler.pushExpectedEvent(NextEvent.CHANGE);
busHandler.pushExpectedEvent(NextEvent.INVOICE);
- clock.setDeltaFromReality(ctd.getMillis() - clock.getUTCNow().getMillis());
+ clock.addDeltaFromReality(ctd.getMillis() - clock.getUTCNow().getMillis());
//clock.setDeltaFromReality(AT_LEAST_ONE_MONTH_MS + 1000);
assertTrue(busHandler.isCompleted(5000));
@@ -248,12 +255,19 @@ public class TestBasic {
//
subscription.cancel(clock.getUTCNow(), false);
- // MOVE AFTER CANCEL DATE AND EXPECT EVENT : NextEvent.CANCEL, NextEvent.INVOICE
+ // MOVE AFTER CANCEL DATE AND EXPECT EVENT : NextEvent.CANCEL
busHandler.pushExpectedEvent(NextEvent.CANCEL);
- busHandler.pushExpectedEvent(NextEvent.INVOICE);
Interval it = new Interval(lastCtd, clock.getUTCNow());
clock.addDeltaFromReality(it.toDurationMillis());
assertTrue(busHandler.isCompleted(5000));
+
+ //
+ // CHECK AGAIN THERE IS NO MORE INVOICES GENERATED
+ //
+ busHandler.reset();
+ clock.addDeltaFromReality(AT_LEAST_ONE_MONTH_MS + 1000);
+ assertTrue(busHandler.isCompleted(2000));
+ lastCtd = checkAndGetCTD(subscription.getId());
}
diff --git a/beatrix/src/test/java/com/ning/billing/beatrix/integration/inv_ent/TestBusHandler.java b/beatrix/src/test/java/com/ning/billing/beatrix/integration/inv_ent/TestBusHandler.java
index 0c3e035..fafcf68 100644
--- a/beatrix/src/test/java/com/ning/billing/beatrix/integration/inv_ent/TestBusHandler.java
+++ b/beatrix/src/test/java/com/ning/billing/beatrix/integration/inv_ent/TestBusHandler.java
@@ -109,6 +109,7 @@ public class TestBusHandler {
public void reset() {
nextExpectedEvent.clear();
+ completed = true;
}
public void pushExpectedEvent(NextEvent next) {