killbill-uncached

Details

diff --git a/beatrix/src/test/java/com/ning/billing/beatrix/integration/TestIntegrationWithAutoInvoiceOffTag.java b/beatrix/src/test/java/com/ning/billing/beatrix/integration/TestIntegrationWithAutoInvoiceOffTag.java
index 217cb1b..e3be801 100644
--- a/beatrix/src/test/java/com/ning/billing/beatrix/integration/TestIntegrationWithAutoInvoiceOffTag.java
+++ b/beatrix/src/test/java/com/ning/billing/beatrix/integration/TestIntegrationWithAutoInvoiceOffTag.java
@@ -64,7 +64,7 @@ public class TestIntegrationWithAutoInvoiceOffTag extends TestIntegrationBase {
     private String planSetName;
 
     @BeforeMethod(groups = {"slow"})
-    public void setupOverdue() throws Exception {
+    public void setupBeforeTest() throws Exception {
 
         account = createAccountWithPaymentMethod(getAccountData(25));
         assertNotNull(account);
@@ -105,6 +105,12 @@ public class TestIntegrationWithAutoInvoiceOffTag extends TestIntegrationBase {
         invoices = invoiceApi.getInvoicesByAccount(account.getId());
         assertEquals(invoices.size(), 0);
 
+        busHandler.pushExpectedEvents(NextEvent.INVOICE);
+        remove_AUTO_INVOICING_OFF_Tag(account.getId(), ObjectType.ACCOUNT);
+        assertTrue(busHandler.isCompleted(DELAY));
+
+        invoices = invoiceApi.getInvoicesByAccount(account.getId());
+        assertEquals(invoices.size(), 1);
     }
 
     @Test(groups = {"slow"}, enabled = true)
@@ -173,4 +179,10 @@ public class TestIntegrationWithAutoInvoiceOffTag extends TestIntegrationBase {
         final Map<String, Tag> tags = tagApi.getTags(id, type);
         assertNotNull(tags.get(ControlTagType.AUTO_INVOICING_OFF.name()));
     }
+
+
+    private void remove_AUTO_INVOICING_OFF_Tag(final UUID id, final ObjectType type) throws TagDefinitionApiException, TagApiException {
+        final TagDefinition def = tagApi.getTagDefinition(ControlTagType.AUTO_INVOICING_OFF.name());
+        tagApi.removeTag(id, type, def, context);
+    }
 }
diff --git a/beatrix/src/test/java/com/ning/billing/beatrix/integration/TestIntegrationWithAutoPayOff.java b/beatrix/src/test/java/com/ning/billing/beatrix/integration/TestIntegrationWithAutoPayOff.java
index b988c7a..e6ab9d1 100644
--- a/beatrix/src/test/java/com/ning/billing/beatrix/integration/TestIntegrationWithAutoPayOff.java
+++ b/beatrix/src/test/java/com/ning/billing/beatrix/integration/TestIntegrationWithAutoPayOff.java
@@ -71,8 +71,9 @@ public class TestIntegrationWithAutoPayOff extends TestIntegrationBase {
     private BillingPeriod term;
     private String planSetName;
 
+
     @BeforeMethod(groups = {"slow"})
-    public void setupOverdue() throws Exception {
+    public void setupBeforeTest() throws Exception {
 
         account = createAccountWithPaymentMethod(getAccountData(25));
         assertNotNull(account);
diff --git a/invoice/src/main/java/com/ning/billing/invoice/api/DefaultInvoiceService.java b/invoice/src/main/java/com/ning/billing/invoice/api/DefaultInvoiceService.java
index f0c3d0c..75eee24 100644
--- a/invoice/src/main/java/com/ning/billing/invoice/api/DefaultInvoiceService.java
+++ b/invoice/src/main/java/com/ning/billing/invoice/api/DefaultInvoiceService.java
@@ -18,6 +18,7 @@ package com.ning.billing.invoice.api;
 
 import com.google.inject.Inject;
 import com.ning.billing.invoice.InvoiceListener;
+import com.ning.billing.invoice.TagHandler;
 import com.ning.billing.invoice.notification.NextBillingDateNotifier;
 import com.ning.billing.lifecycle.LifecycleHandlerType;
 import com.ning.billing.lifecycle.LifecycleHandlerType.LifecycleLevel;
@@ -30,11 +31,13 @@ public class DefaultInvoiceService implements InvoiceService {
     public static final String INVOICE_SERVICE_NAME = "invoice-service";
     private final NextBillingDateNotifier dateNotifier;
     private final InvoiceListener invoiceListener;
+    private final TagHandler tagHandler;
     private final Bus eventBus;
 
     @Inject
-    public DefaultInvoiceService(final InvoiceListener invoiceListener, final Bus eventBus, final NextBillingDateNotifier dateNotifier) {
+    public DefaultInvoiceService(final InvoiceListener invoiceListener, final TagHandler tagHandler, final Bus eventBus, final NextBillingDateNotifier dateNotifier) {
         this.invoiceListener = invoiceListener;
+        this.tagHandler = tagHandler;
         this.eventBus = eventBus;
         this.dateNotifier = dateNotifier;
     }
@@ -59,6 +62,7 @@ public class DefaultInvoiceService implements InvoiceService {
     public void registerForNotifications() {
         try {
             eventBus.register(invoiceListener);
+            eventBus.register(tagHandler);
         } catch (Bus.EventBusException e) {
             throw new RuntimeException("Unable to register to the EventBus!", e);
         }
@@ -68,6 +72,7 @@ public class DefaultInvoiceService implements InvoiceService {
     public void unregisterForNotifications() {
         try {
             eventBus.unregister(invoiceListener);
+            eventBus.unregister(tagHandler);
         } catch (Bus.EventBusException e) {
             throw new RuntimeException("Unable to unregister to the EventBus!", e);
         }
diff --git a/invoice/src/main/java/com/ning/billing/invoice/glue/DefaultInvoiceModule.java b/invoice/src/main/java/com/ning/billing/invoice/glue/DefaultInvoiceModule.java
index 1f2507b..693f68f 100644
--- a/invoice/src/main/java/com/ning/billing/invoice/glue/DefaultInvoiceModule.java
+++ b/invoice/src/main/java/com/ning/billing/invoice/glue/DefaultInvoiceModule.java
@@ -22,6 +22,7 @@ import com.google.inject.AbstractModule;
 import com.ning.billing.config.InvoiceConfig;
 import com.ning.billing.glue.InvoiceModule;
 import com.ning.billing.invoice.InvoiceListener;
+import com.ning.billing.invoice.TagHandler;
 import com.ning.billing.invoice.api.DefaultInvoiceService;
 import com.ning.billing.invoice.api.InvoiceMigrationApi;
 import com.ning.billing.invoice.api.InvoiceNotifier;
@@ -95,6 +96,11 @@ public class DefaultInvoiceModule extends AbstractModule implements InvoiceModul
         bind(InvoiceListener.class).asEagerSingleton();
     }
 
+    protected void installTagHandler() {
+        bind(TagHandler.class).asEagerSingleton();
+    }
+
+
     protected void installInvoiceGenerator() {
         bind(InvoiceGenerator.class).to(DefaultInvoiceGenerator.class).asEagerSingleton();
     }
@@ -107,6 +113,7 @@ public class DefaultInvoiceModule extends AbstractModule implements InvoiceModul
         installInvoiceNotifier();
         installNotifiers();
         installInvoiceListener();
+        installTagHandler();
         installInvoiceGenerator();
         installInvoiceDao();
         installInvoiceUserApi();