killbill-aplcache

Details

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) {