killbill-aplcache

Fixing failing overdue tests

5/23/2012 6:11:13 PM

Details

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;
     }
 }