diff --git a/beatrix/src/test/java/com/ning/billing/beatrix/integration/overdue/TestOverdueIntegration.java b/beatrix/src/test/java/com/ning/billing/beatrix/integration/overdue/TestOverdueIntegration.java
index a94cf5d..a107bb2 100644
--- a/beatrix/src/test/java/com/ning/billing/beatrix/integration/overdue/TestOverdueIntegration.java
+++ b/beatrix/src/test/java/com/ning/billing/beatrix/integration/overdue/TestOverdueIntegration.java
@@ -187,7 +187,6 @@ public class TestOverdueIntegration extends TestIntegrationBase {
clock.addDays(15); // DAY 45 - 15 days after invoice
assertTrue(busHandler.isCompleted(DELAY));
- overdueApi.refreshOverdueStateFor(bundle); // trigger a refresh because there are no events to do it for us
//should still be in clear state
checkODState(BlockingApi.CLEAR_STATE_NAME);
@@ -200,14 +199,12 @@ public class TestOverdueIntegration extends TestIntegrationBase {
clock.addDays(2); //DAY 67 - 37 days after invoice
assertTrue(busHandler.isCompleted(DELAY));
- overdueApi.refreshOverdueStateFor(bundle); // trigger a refresh because there are no events to do it for us
// should still be in OD1
checkODState("OD1");
//busHandler.pushExpectedEvents(NextEvent.INVOICE, NextEvent.PAYMENT_ERROR);
clock.addDays(8); //DAY 75 - 45 days after invoice
assertTrue(busHandler.isCompleted(DELAY));
- overdueApi.refreshOverdueStateFor(bundle); // trigger a refresh because there are no events to do it for us
// should still be in OD1
checkODState("OD2");
@@ -229,7 +226,6 @@ public class TestOverdueIntegration extends TestIntegrationBase {
}
}
- overdueApi.refreshOverdueStateFor(bundle);
checkODState(BlockingApi.CLEAR_STATE_NAME);
}
@@ -240,6 +236,7 @@ public class TestOverdueIntegration extends TestIntegrationBase {
await().atMost(10, SECONDS).until(new Callable<Boolean>() {
@Override
public Boolean call() throws Exception {
+ overdueApi.refreshOverdueStateFor(bundle);
return expected.equals(blockingApi.getBlockingStateFor(bundle).getStateName()) ;
}
});
diff --git a/overdue/src/main/java/com/ning/billing/overdue/applicator/OverdueStateApplicator.java b/overdue/src/main/java/com/ning/billing/overdue/applicator/OverdueStateApplicator.java
index 958d8b9..cc0acb2 100644
--- a/overdue/src/main/java/com/ning/billing/overdue/applicator/OverdueStateApplicator.java
+++ b/overdue/src/main/java/com/ning/billing/overdue/applicator/OverdueStateApplicator.java
@@ -58,7 +58,7 @@ public class OverdueStateApplicator<T extends Blockable>{
}
} catch(OverdueApiException e) {
if(e.getCode() != ErrorCode.OVERDUE_NO_REEVALUATION_INTERVAL.getCode()) {
- new OverdueError(e);
+ throw new OverdueError(e);
}
}
diff --git a/overdue/src/test/java/com/ning/billing/overdue/applicator/TestOverdueStateApplicator.java b/overdue/src/test/java/com/ning/billing/overdue/applicator/TestOverdueStateApplicator.java
index e95740a..7fba2ef 100644
--- a/overdue/src/test/java/com/ning/billing/overdue/applicator/TestOverdueStateApplicator.java
+++ b/overdue/src/test/java/com/ning/billing/overdue/applicator/TestOverdueStateApplicator.java
@@ -49,7 +49,7 @@ public class TestOverdueStateApplicator extends OverdueTestBase {
@Inject
OverdueStateApplicator<SubscriptionBundle> applicator;
- @Test( groups={"slow"} , enabled = false)
+ @Test( groups={"slow"} , enabled = true)
public void testApplicator() throws Exception {
InputStream is = new ByteArrayInputStream(configXml.getBytes());
config = XMLLoader.getObjectFromStreamNoValidation(is, OverdueConfig.class);
diff --git a/overdue/src/test/java/com/ning/billing/overdue/OverdueTestBase.java b/overdue/src/test/java/com/ning/billing/overdue/OverdueTestBase.java
index f233a9a..ac5c134 100644
--- a/overdue/src/test/java/com/ning/billing/overdue/OverdueTestBase.java
+++ b/overdue/src/test/java/com/ning/billing/overdue/OverdueTestBase.java
@@ -22,11 +22,12 @@ import java.util.ArrayList;
import java.util.List;
import java.util.UUID;
+import javax.management.RuntimeErrorException;
+
import org.apache.commons.io.IOUtils;
import org.joda.time.DateTime;
import org.testng.Assert;
import org.testng.annotations.AfterClass;
-import org.testng.annotations.AfterMethod;
import org.testng.annotations.BeforeClass;
import org.testng.annotations.BeforeMethod;
import org.testng.annotations.Guice;
@@ -50,12 +51,11 @@ import com.ning.billing.mock.BrainDeadProxyFactory;
import com.ning.billing.mock.BrainDeadProxyFactory.ZombieControl;
import com.ning.billing.mock.glue.MockClockModule;
import com.ning.billing.mock.glue.MockInvoiceModule;
-import com.ning.billing.mock.glue.MockJunctionModule;
import com.ning.billing.mock.glue.MockPaymentModule;
import com.ning.billing.mock.glue.TestDbiModule;
import com.ning.billing.overdue.applicator.ApplicatorMockJunctionModule;
-import com.ning.billing.overdue.applicator.TestOverdueStateApplicator;
import com.ning.billing.overdue.applicator.ApplicatorMockJunctionModule.ApplicatorBlockingApi;
+import com.ning.billing.overdue.applicator.TestOverdueStateApplicator;
import com.ning.billing.overdue.config.OverdueConfig;
import com.ning.billing.overdue.glue.DefaultOverdueModule;
import com.ning.billing.overdue.service.DefaultOverdueService;
@@ -64,6 +64,7 @@ import com.ning.billing.util.bus.BusService;
import com.ning.billing.util.clock.ClockMock;
import com.ning.billing.util.glue.BusModule;
import com.ning.billing.util.glue.NotificationQueueModule;
+import com.ning.billing.util.notificationq.NotificationQueueService.NotificationQueueAlreadyExists;
//@Guice(modules = {MockJunctionModule.class, MockInvoiceModule.class, DefaultOverdueModule.class})
@Guice( modules = {DefaultOverdueModule.class, MockClockModule.class, ApplicatorMockJunctionModule.class, CatalogModule.class, MockInvoiceModule.class, MockPaymentModule.class, BusModule.class, NotificationQueueModule.class, TestDbiModule.class})
@@ -119,14 +120,14 @@ public class OverdueTestBase {
@Inject
protected BlockingApi blockingApi;
-
+
@Inject
protected OverdueWrapperFactory overdueWrapperFactory;
-
+
@Inject
protected OverdueUserApi overdueApi;
-
-
+
+
@Inject
protected InvoiceUserApi invoiceApi;
@@ -135,7 +136,7 @@ public class OverdueTestBase {
protected String productName;
protected BillingPeriod term;
protected String planSetName;
-
+
@Inject
EntitlementUserApi entitlementApi;
@@ -153,13 +154,19 @@ public class OverdueTestBase {
helper.initDb(utilDdl);
}
-
+
@BeforeClass(groups = "slow")
public void setup() throws Exception{
setupMySQL();
service.registerForBus();
- service.initialize();
+ try {
+ service.initialize();
+ }catch (RuntimeException e) {
+ if(!(e.getCause() instanceof NotificationQueueAlreadyExists)) {
+ throw e;
+ }
+ }
service.start();
}
@@ -198,7 +205,7 @@ public class OverdueTestBase {
UUID bundleId = UUID.randomUUID();
((ZombieControl)bundle).addResult("getId", bundleId);
((ZombieControl)bundle).addResult("getAccountId", UUID.randomUUID());
-
+
Invoice invoice = BrainDeadProxyFactory.createBrainDeadProxyFor(Invoice.class);
((ZombieControl)invoice).addResult("getInvoiceDate",dateOfLastUnPaidInvoice);
((ZombieControl)invoice).addResult("getBalance",BigDecimal.TEN);
@@ -210,18 +217,18 @@ public class OverdueTestBase {
items.add(item);
((ZombieControl)invoice).addResult("getInvoiceItems",items);
-
+
List<Invoice> invoices = new ArrayList<Invoice>();
invoices.add(invoice);
((ZombieControl)invoiceApi).addResult("getUnpaidInvoicesByAccountId", invoices);
-
-
+
+
Subscription base = BrainDeadProxyFactory.createBrainDeadProxyFor(Subscription.class);
((ZombieControl)base).addResult("getCurrentPlan", MockPlan.createBicycleNoTrialEvergreen1USD());
((ZombieControl)base).addResult("getCurrentPriceList", new MockPriceList());
((ZombieControl)base).addResult("getCurrentPhase", MockPlan.createBicycleNoTrialEvergreen1USD().getFinalPhase());
((ZombieControl)entitlementApi).addResult("getBaseSubscription", base);
-
+
return bundle;
}
}