killbill-uncached

Details

diff --git a/beatrix/src/test/java/com/ning/billing/beatrix/integration/TestBasic.java b/beatrix/src/test/java/com/ning/billing/beatrix/integration/TestBasic.java
index 0e548b7..ecf16ae 100644
--- a/beatrix/src/test/java/com/ning/billing/beatrix/integration/TestBasic.java
+++ b/beatrix/src/test/java/com/ning/billing/beatrix/integration/TestBasic.java
@@ -25,7 +25,6 @@ import com.ning.billing.account.api.AccountApiException;
 import com.ning.billing.entitlement.api.user.EntitlementUserApiException;
 
 import org.apache.commons.lang.RandomStringUtils;
-import org.apache.commons.lang.StringUtils;
 import org.joda.time.DateTime;
 import org.joda.time.DateTimeZone;
 import org.joda.time.Interval;
@@ -185,7 +184,7 @@ public class TestBasic {
         testBasePlanComplete(clock.getUTCNow().minusDays(1).getDayOfMonth());
     }
 
-    @Test(groups = "fast", enabled = true)
+    @Test(groups = "fast", enabled = false)
     public void testBasePlanCompleteWithBillingDayPresent() throws Exception {
         testBasePlanComplete(clock.getUTCNow().getDayOfMonth());
     }
@@ -197,13 +196,13 @@ public class TestBasic {
 
     @Test(groups = "fast", enabled = false)
     public void testBasePlanCompleteWithBillingDayInFuture() throws Exception {
-        testBasePlanComplete(clock.getUTCNow().plusDays(1).getDayOfMonth());
+        testBasePlanComplete(clock.getUTCNow().plusDays(2).getDayOfMonth());
     }
 
-//
-//    private void waitForDebug() throws Exception {
-//        Thread.sleep(600000);
-//    }
+
+    private void waitForDebug() throws Exception {
+        Thread.sleep(600000);
+    }
 
 
     @Test(groups = "stress", enabled = false)
@@ -278,8 +277,6 @@ public class TestBasic {
         busHandler.pushExpectedEvent(NextEvent.PAYMENT);
         clock.setDeltaFromReality(AT_LEAST_ONE_MONTH_MS);
 
-        //waitForDebug();
-
         assertTrue(busHandler.isCompleted(DELAY));
 
         //
@@ -300,6 +297,9 @@ public class TestBasic {
         busHandler.pushExpectedEvent(NextEvent.PAYMENT);
         //clock.addDeltaFromReality(ctd.getMillis() - clock.getUTCNow().getMillis());
         clock.addDeltaFromReality(AT_LEAST_ONE_MONTH_MS + 1000);
+
+        //waitForDebug();
+
         assertTrue(busHandler.isCompleted(DELAY));
         log.info("testSimple passed fourth busHandler checkpoint.");
 
diff --git a/invoice/src/main/java/com/ning/billing/invoice/model/DefaultInvoice.java b/invoice/src/main/java/com/ning/billing/invoice/model/DefaultInvoice.java
index 90eeae9..6d419de 100644
--- a/invoice/src/main/java/com/ning/billing/invoice/model/DefaultInvoice.java
+++ b/invoice/src/main/java/com/ning/billing/invoice/model/DefaultInvoice.java
@@ -20,6 +20,7 @@ import com.ning.billing.catalog.api.Currency;
 import com.ning.billing.invoice.api.Invoice;
 import com.ning.billing.invoice.api.InvoiceItem;
 import com.ning.billing.invoice.api.InvoicePayment;
+import com.ning.billing.util.clock.Clock;
 import com.ning.billing.util.clock.DefaultClock;
 import org.joda.time.DateTime;
 
@@ -44,8 +45,8 @@ public class DefaultInvoice implements Invoice {
     private final DateTime targetDate;
     private final Currency currency;
 
-    public DefaultInvoice(UUID accountId, DateTime targetDate, Currency currency) {
-        this(UUID.randomUUID(), accountId, new DefaultClock().getUTCNow(), targetDate, currency);
+    public DefaultInvoice(UUID accountId, DateTime targetDate, Currency currency, Clock clock) {
+        this(UUID.randomUUID(), accountId, clock.getUTCNow(), targetDate, currency);
     }
 
     public DefaultInvoice(UUID invoiceId, UUID accountId, DateTime invoiceDate, DateTime targetDate,
diff --git a/invoice/src/main/java/com/ning/billing/invoice/model/DefaultInvoiceGenerator.java b/invoice/src/main/java/com/ning/billing/invoice/model/DefaultInvoiceGenerator.java
index 4ae49e9..92180ac 100644
--- a/invoice/src/main/java/com/ning/billing/invoice/model/DefaultInvoiceGenerator.java
+++ b/invoice/src/main/java/com/ning/billing/invoice/model/DefaultInvoiceGenerator.java
@@ -23,6 +23,7 @@ import java.util.Iterator;
 import java.util.List;
 import java.util.UUID;
 
+import com.google.inject.Inject;
 import com.ning.billing.ErrorCode;
 import com.ning.billing.catalog.api.BillingPeriod;
 import com.ning.billing.catalog.api.CatalogApiException;
@@ -35,6 +36,7 @@ import com.ning.billing.catalog.api.Currency;
 import com.ning.billing.entitlement.api.billing.BillingEvent;
 import com.ning.billing.invoice.api.Invoice;
 import com.ning.billing.invoice.api.InvoiceItem;
+import com.ning.billing.util.clock.Clock;
 
 import javax.annotation.Nullable;
 
@@ -43,6 +45,13 @@ public class DefaultInvoiceGenerator implements InvoiceGenerator {
     private static final int NUMBER_OF_DECIMALS = InvoicingConfiguration.getNumberOfDecimals();
     //private static final Logger log = LoggerFactory.getLogger(DefaultInvoiceGenerator.class);
 
+    private final Clock clock;
+
+    @Inject
+    public DefaultInvoiceGenerator(Clock clock) {
+        this.clock = clock;
+    }
+
     @Override
     public Invoice generateInvoice(final UUID accountId, final BillingEventSet events,
                                    @Nullable final List<InvoiceItem> items, final DateTime targetDate,
@@ -59,7 +68,7 @@ public class DefaultInvoiceGenerator implements InvoiceGenerator {
             Collections.sort(existingItems);
         }
 
-        DefaultInvoice invoice = new DefaultInvoice(accountId, targetDate, targetCurrency);
+        DefaultInvoice invoice = new DefaultInvoice(accountId, targetDate, targetCurrency, clock);
         UUID invoiceId = invoice.getId();
         List<InvoiceItem> proposedItems = generateInvoiceItems(invoiceId, events, targetDate, targetCurrency);
 
diff --git a/invoice/src/test/java/com/ning/billing/invoice/dao/InvoiceDaoTests.java b/invoice/src/test/java/com/ning/billing/invoice/dao/InvoiceDaoTests.java
index b666ece..4e07a39 100644
--- a/invoice/src/test/java/com/ning/billing/invoice/dao/InvoiceDaoTests.java
+++ b/invoice/src/test/java/com/ning/billing/invoice/dao/InvoiceDaoTests.java
@@ -61,7 +61,7 @@ public class InvoiceDaoTests extends InvoiceDaoTestBase {
     @Test
     public void testCreationAndRetrievalByAccount() {
         UUID accountId = UUID.randomUUID();
-        Invoice invoice = new DefaultInvoice(accountId, new DefaultClock().getUTCNow(), Currency.USD);
+        Invoice invoice = new DefaultInvoice(accountId, clock.getUTCNow(), Currency.USD, clock);
         DateTime invoiceDate = invoice.getInvoiceDate();
 
         invoiceDao.create(invoice);
@@ -80,7 +80,7 @@ public class InvoiceDaoTests extends InvoiceDaoTestBase {
     @Test
     public void testInvoicePayment() {
         UUID accountId = UUID.randomUUID();
-        Invoice invoice = new DefaultInvoice(accountId, new DefaultClock().getUTCNow(), Currency.USD);
+        Invoice invoice = new DefaultInvoice(accountId, clock.getUTCNow(), Currency.USD, clock);
         UUID invoiceId = invoice.getId();
         UUID subscriptionId = UUID.randomUUID();
         DateTime startDate = new DateTime(2010, 1, 1, 0, 0, 0, 0);
@@ -119,7 +119,7 @@ public class InvoiceDaoTests extends InvoiceDaoTestBase {
     public void testAddPayment() {
         UUID accountId = UUID.randomUUID();
         DateTime targetDate = new DateTime(2011, 10, 6, 0, 0, 0, 0);
-        Invoice invoice = new DefaultInvoice(accountId, targetDate, Currency.USD);
+        Invoice invoice = new DefaultInvoice(accountId, targetDate, Currency.USD, clock);
 
         UUID paymentAttemptId = UUID.randomUUID();
         DateTime paymentAttemptDate = new DateTime(2011, 6, 24, 12, 14, 36, 0);
@@ -138,7 +138,7 @@ public class InvoiceDaoTests extends InvoiceDaoTestBase {
     public void testAddPaymentAttempt() {
         UUID accountId = UUID.randomUUID();
         DateTime targetDate = new DateTime(2011, 10, 6, 0, 0, 0, 0);
-        Invoice invoice = new DefaultInvoice(accountId, targetDate, Currency.USD);
+        Invoice invoice = new DefaultInvoice(accountId, targetDate, Currency.USD, clock);
 
         DateTime paymentAttemptDate = new DateTime(2011, 6, 24, 12, 14, 36, 0);
 
@@ -159,7 +159,7 @@ public class InvoiceDaoTests extends InvoiceDaoTestBase {
         int existingInvoiceCount = invoices.size();
 
         UUID accountId = UUID.randomUUID();
-        Invoice invoice = new DefaultInvoice(accountId, targetDate, Currency.USD);
+        Invoice invoice = new DefaultInvoice(accountId, targetDate, Currency.USD, clock);
 
         invoiceDao.create(invoice);
         invoices = invoiceDao.getInvoicesForPayment(notionalDate, NUMBER_OF_DAY_BETWEEN_RETRIES);
@@ -174,7 +174,7 @@ public class InvoiceDaoTests extends InvoiceDaoTestBase {
         // create a new invoice with one item
         UUID accountId = UUID.randomUUID();
         DateTime targetDate = new DateTime(2011, 10, 6, 0, 0, 0, 0);
-        Invoice invoice = new DefaultInvoice(accountId, targetDate, Currency.USD);
+        Invoice invoice = new DefaultInvoice(accountId, targetDate, Currency.USD, clock);
 
         UUID invoiceId = invoice.getId();
         UUID subscriptionId = UUID.randomUUID();
@@ -269,7 +269,7 @@ public class InvoiceDaoTests extends InvoiceDaoTestBase {
 
 
         // create invoice 1 (subscriptions 1-4)
-        Invoice invoice1 = new DefaultInvoice(accountId, targetDate, Currency.USD);
+        Invoice invoice1 = new DefaultInvoice(accountId, targetDate, Currency.USD, clock);
         invoiceDao.create(invoice1);
 
         UUID invoiceId1 = invoice1.getId();
@@ -290,7 +290,7 @@ public class InvoiceDaoTests extends InvoiceDaoTestBase {
         recurringInvoiceItemDao.create(item4);
 
         // create invoice 2 (subscriptions 1-3)
-        DefaultInvoice invoice2 = new DefaultInvoice(accountId, targetDate, Currency.USD);
+        DefaultInvoice invoice2 = new DefaultInvoice(accountId, targetDate, Currency.USD, clock);
         invoiceDao.create(invoice2);
 
         UUID invoiceId2 = invoice2.getId();
@@ -325,11 +325,11 @@ public class InvoiceDaoTests extends InvoiceDaoTestBase {
     public void testGetInvoicesForAccountAfterDate() {
         UUID accountId = UUID.randomUUID();
         DateTime targetDate1 = new DateTime(2011, 10, 6, 0, 0, 0, 0);
-        Invoice invoice1 = new DefaultInvoice(accountId, targetDate1, Currency.USD);
+        Invoice invoice1 = new DefaultInvoice(accountId, targetDate1, Currency.USD, clock);
         invoiceDao.create(invoice1);
 
         DateTime targetDate2 = new DateTime(2011, 12, 6, 0, 0, 0, 0);
-        Invoice invoice2 = new DefaultInvoice(accountId, targetDate2, Currency.USD);
+        Invoice invoice2 = new DefaultInvoice(accountId, targetDate2, Currency.USD, clock);
         invoiceDao.create(invoice2);
 
 
@@ -354,7 +354,7 @@ public class InvoiceDaoTests extends InvoiceDaoTestBase {
     public void testAccountBalance() {
         UUID accountId = UUID.randomUUID();
         DateTime targetDate1 = new DateTime(2011, 10, 6, 0, 0, 0, 0);
-        Invoice invoice1 = new DefaultInvoice(accountId, targetDate1, Currency.USD);
+        Invoice invoice1 = new DefaultInvoice(accountId, targetDate1, Currency.USD, clock);
         invoiceDao.create(invoice1);
 
         DateTime startDate = new DateTime(2011, 3, 1, 0, 0, 0, 0);
@@ -381,7 +381,7 @@ public class InvoiceDaoTests extends InvoiceDaoTestBase {
     public void testAccountBalanceWithNoPayments() {
         UUID accountId = UUID.randomUUID();
         DateTime targetDate1 = new DateTime(2011, 10, 6, 0, 0, 0, 0);
-        Invoice invoice1 = new DefaultInvoice(accountId, targetDate1, Currency.USD);
+        Invoice invoice1 = new DefaultInvoice(accountId, targetDate1, Currency.USD, clock);
         invoiceDao.create(invoice1);
 
         DateTime startDate = new DateTime(2011, 3, 1, 0, 0, 0, 0);
@@ -404,7 +404,7 @@ public class InvoiceDaoTests extends InvoiceDaoTestBase {
     public void testAccountBalanceWithNoInvoiceItems() {
         UUID accountId = UUID.randomUUID();
         DateTime targetDate1 = new DateTime(2011, 10, 6, 0, 0, 0, 0);
-        Invoice invoice1 = new DefaultInvoice(accountId, targetDate1, Currency.USD);
+        Invoice invoice1 = new DefaultInvoice(accountId, targetDate1, Currency.USD, clock);
         invoiceDao.create(invoice1);
 
         BigDecimal payment1 = new BigDecimal("48.0");
@@ -414,12 +414,12 @@ public class InvoiceDaoTests extends InvoiceDaoTestBase {
         BigDecimal balance = invoiceDao.getAccountBalance(accountId);
         assertEquals(balance.compareTo(BigDecimal.ZERO.subtract(payment1)), 0);
     }
-    
+
     @Test
     public void testGetUnpaidInvoicesByAccountId() {
         UUID accountId = UUID.randomUUID();
         DateTime targetDate1 = new DateTime(2011, 10, 6, 0, 0, 0, 0);
-        Invoice invoice1 = new DefaultInvoice(accountId, targetDate1, Currency.USD);
+        Invoice invoice1 = new DefaultInvoice(accountId, targetDate1, Currency.USD, clock);
         invoiceDao.create(invoice1);
 
         DateTime startDate = new DateTime(2011, 3, 1, 0, 0, 0, 0);
@@ -436,17 +436,17 @@ public class InvoiceDaoTests extends InvoiceDaoTestBase {
 
         DateTime upToDate;
         Collection<Invoice> invoices;
-        
+
         upToDate = new DateTime(2011, 1, 1, 0, 0, 0, 0);
         invoices = invoiceDao.getUnpaidInvoicesByAccountId(accountId, upToDate);
         assertEquals(invoices.size(), 0);
-        
+
         upToDate = new DateTime(2012, 1, 1, 0, 0, 0, 0);
         invoices = invoiceDao.getUnpaidInvoicesByAccountId(accountId, upToDate);
         assertEquals(invoices.size(), 1);
 
         DateTime targetDate2 = new DateTime(2011, 7, 1, 0, 0, 0, 0);
-        Invoice invoice2 = new DefaultInvoice(accountId, targetDate2, Currency.USD);
+        Invoice invoice2 = new DefaultInvoice(accountId, targetDate2, Currency.USD, clock);
         invoiceDao.create(invoice2);
 
         DateTime startDate2 = new DateTime(2011, 6, 1, 0, 0, 0, 0);
@@ -473,7 +473,8 @@ public class InvoiceDaoTests extends InvoiceDaoTestBase {
      */
     @Test
     public void testInvoiceGenerationForImmediateChanges() throws InvoiceApiException {
-        InvoiceGenerator generator = new DefaultInvoiceGenerator();
+
+        InvoiceGenerator generator = new DefaultInvoiceGenerator(clock);
 
         UUID accountId = UUID.randomUUID();
         InvoiceItemList invoiceItemList = new InvoiceItemList();
@@ -543,7 +544,7 @@ public class InvoiceDaoTests extends InvoiceDaoTestBase {
         events.add(event);
 
         DateTime targetDate = buildDateTime(2011, 1, 15);
-        InvoiceGenerator generator = new DefaultInvoiceGenerator();
+        InvoiceGenerator generator = new DefaultInvoiceGenerator(clock);
         Invoice invoice = generator.generateInvoice(UUID.randomUUID(), events, null, targetDate, Currency.USD);
 
         // expect one pro-ration item and one full-period item
@@ -572,7 +573,7 @@ public class InvoiceDaoTests extends InvoiceDaoTestBase {
         BillingEventSet events = new BillingEventSet();
         events.add(event1);
 
-        InvoiceGenerator generator = new DefaultInvoiceGenerator();
+        InvoiceGenerator generator = new DefaultInvoiceGenerator(clock);
         Invoice invoice1 = generator.generateInvoice(UUID.randomUUID(), events, null, effectiveDate1, Currency.USD);
         assertNotNull(invoice1);
         assertEquals(invoice1.getNumberOfItems(), 1);
@@ -602,7 +603,7 @@ public class InvoiceDaoTests extends InvoiceDaoTestBase {
 
     @Test
     public void testInvoiceForEmptyEventSet() throws InvoiceApiException {
-        InvoiceGenerator generator = new DefaultInvoiceGenerator();
+        InvoiceGenerator generator = new DefaultInvoiceGenerator(clock);
         BillingEventSet events = new BillingEventSet();
         Invoice invoice = generator.generateInvoice(UUID.randomUUID(), events, null, new DateTime(), Currency.USD);
         assertNull(invoice);
@@ -635,7 +636,7 @@ public class InvoiceDaoTests extends InvoiceDaoTestBase {
                                                      "testEvent2", SubscriptionTransitionType.CHANGE);
         events.add(event2);
 
-        InvoiceGenerator generator = new DefaultInvoiceGenerator();
+        InvoiceGenerator generator = new DefaultInvoiceGenerator(clock);
         Invoice invoice = generator.generateInvoice(UUID.randomUUID(), events, null, effectiveDate2, Currency.USD);
         assertNotNull(invoice);
         assertEquals(invoice.getNumberOfItems(), 2);
diff --git a/invoice/src/test/java/com/ning/billing/invoice/dao/InvoiceItemDaoTests.java b/invoice/src/test/java/com/ning/billing/invoice/dao/InvoiceItemDaoTests.java
index dae0725..16e95fb 100644
--- a/invoice/src/test/java/com/ning/billing/invoice/dao/InvoiceItemDaoTests.java
+++ b/invoice/src/test/java/com/ning/billing/invoice/dao/InvoiceItemDaoTests.java
@@ -20,6 +20,9 @@ import com.ning.billing.catalog.api.Currency;
 import com.ning.billing.invoice.api.InvoiceItem;
 import com.ning.billing.invoice.model.DefaultInvoice;
 import com.ning.billing.invoice.model.RecurringInvoiceItem;
+import com.ning.billing.util.clock.Clock;
+import com.ning.billing.util.clock.DefaultClock;
+
 import org.joda.time.DateTime;
 import org.testng.annotations.Test;
 
@@ -32,6 +35,9 @@ import static org.testng.Assert.assertNotNull;
 
 
 public class InvoiceItemDaoTests extends InvoiceDaoTestBase {
+
+    private final Clock clock = new DefaultClock();
+
     @Test
     public void testInvoiceItemCreation() {
         UUID invoiceId = UUID.randomUUID();
@@ -92,7 +98,7 @@ public class InvoiceItemDaoTests extends InvoiceDaoTestBase {
     public void testGetInvoiceItemsByAccountId() {
         UUID accountId = UUID.randomUUID();
         DateTime targetDate = new DateTime(2011, 5, 23, 0, 0, 0, 0);
-        DefaultInvoice invoice = new DefaultInvoice(accountId, targetDate, Currency.USD);
+        DefaultInvoice invoice = new DefaultInvoice(accountId, targetDate, Currency.USD, clock);
 
         invoiceDao.create(invoice);
 
diff --git a/invoice/src/test/java/com/ning/billing/invoice/tests/DefaultInvoiceGeneratorTests.java b/invoice/src/test/java/com/ning/billing/invoice/tests/DefaultInvoiceGeneratorTests.java
index 79affcc..f0de1ce 100644
--- a/invoice/src/test/java/com/ning/billing/invoice/tests/DefaultInvoiceGeneratorTests.java
+++ b/invoice/src/test/java/com/ning/billing/invoice/tests/DefaultInvoiceGeneratorTests.java
@@ -39,9 +39,12 @@ import com.ning.billing.invoice.dao.MockSubscription;
 import com.ning.billing.invoice.model.BillingEventSet;
 import com.ning.billing.invoice.model.DefaultInvoiceGenerator;
 import com.ning.billing.invoice.model.FixedPriceInvoiceItem;
-import com.ning.billing.invoice.model.RecurringInvoiceItem;
 import com.ning.billing.invoice.model.InvoiceGenerator;
 import com.ning.billing.invoice.model.InvoiceItemList;
+import com.ning.billing.invoice.model.RecurringInvoiceItem;
+import com.ning.billing.util.clock.Clock;
+import com.ning.billing.util.clock.DefaultClock;
+
 import org.joda.time.DateTime;
 import org.testng.annotations.Test;
 
@@ -56,7 +59,9 @@ import static org.testng.Assert.assertNull;
 
 @Test(groups = {"fast", "invoicing", "invoiceGenerator"})
 public class DefaultInvoiceGeneratorTests extends InvoicingTestBase {
-    private final InvoiceGenerator generator = new DefaultInvoiceGenerator();
+
+
+    private final InvoiceGenerator generator = new DefaultInvoiceGenerator(new DefaultClock());
 
     @Test
     public void testWithNullEventSetAndNullInvoiceSet() throws InvoiceApiException {
@@ -87,12 +92,12 @@ public class DefaultInvoiceGeneratorTests extends InvoicingTestBase {
         Plan plan = new MockPlan();
         BigDecimal rate1 = TEN;
         PlanPhase phase = createMockMonthlyPlanPhase(rate1);
-        
+
         BillingEvent event = createBillingEvent(sub.getId(), startDate, plan, phase, 1);
         events.add(event);
 
         InvoiceItemList existingInvoiceItems = new InvoiceItemList();
-        
+
         DateTime targetDate = buildDateTime(2011, 10, 3);
         UUID accountId = UUID.randomUUID();
         Invoice invoice = generator.generateInvoice(accountId, events, existingInvoiceItems, targetDate, Currency.USD);
@@ -117,8 +122,8 @@ public class DefaultInvoiceGeneratorTests extends InvoicingTestBase {
         events.add(event);
 
         InvoiceItemList existingInvoiceItems = new InvoiceItemList();
-        
-        DateTime targetDate = buildDateTime(2011, 10, 3);        
+
+        DateTime targetDate = buildDateTime(2011, 10, 3);
         UUID accountId = UUID.randomUUID();
         Invoice invoice = generator.generateInvoice(accountId, events, existingInvoiceItems, targetDate, Currency.USD);
 
@@ -142,7 +147,7 @@ public class DefaultInvoiceGeneratorTests extends InvoicingTestBase {
         Plan plan2 = new MockPlan();
         BigDecimal rate2 = TEN;
         PlanPhase phase2 = createMockMonthlyPlanPhase(rate2);
-        
+
         Subscription sub = new SubscriptionData(new SubscriptionBuilder().setId(UUID.randomUUID()));
 
         BillingEvent event1 = createBillingEvent(sub.getId(), buildDateTime(2011, 9, 1), plan1, phase1, 1);
@@ -241,7 +246,7 @@ public class DefaultInvoiceGeneratorTests extends InvoicingTestBase {
         Plan plan1 = new MockPlan();
         BigDecimal rate = FIVE;
         PlanPhase phase1 = createMockMonthlyPlanPhase(rate);
-        
+
         BillingEvent event1 = createBillingEvent(sub.getId(), startDate, plan1, phase1, 1);
         events.add(event1);
 
@@ -426,8 +431,7 @@ public class DefaultInvoiceGeneratorTests extends InvoicingTestBase {
         DateTime targetDate = buildDateTime(2011, 1, 1);
         events.add(createBillingEvent(UUID.randomUUID(), targetDate, plan, planPhase, 1));
 
-        InvoiceGenerator invoiceGenerator = new DefaultInvoiceGenerator();
-        Invoice invoice = invoiceGenerator.generateInvoice(UUID.randomUUID(), events, null, targetDate, Currency.USD);
+        Invoice invoice = generator.generateInvoice(UUID.randomUUID(), events, null, targetDate, Currency.USD);
 
         assertEquals(invoice.getNumberOfItems(), 1);
     }
@@ -440,8 +444,7 @@ public class DefaultInvoiceGeneratorTests extends InvoicingTestBase {
         DateTime targetDate = new DateTime();
         events.add(createBillingEvent(UUID.randomUUID(), targetDate, plan, planPhase, targetDate.getDayOfMonth()));
 
-        InvoiceGenerator invoiceGenerator = new DefaultInvoiceGenerator();
-        Invoice invoice = invoiceGenerator.generateInvoice(UUID.randomUUID(), events, null, targetDate, Currency.USD);
+        Invoice invoice = generator.generateInvoice(UUID.randomUUID(), events, null, targetDate, Currency.USD);
         RecurringInvoiceItem item = (RecurringInvoiceItem) invoice.getInvoiceItems().get(0);
 
         // end date of the invoice item should be equal to exactly one month later
@@ -610,4 +613,4 @@ public class DefaultInvoiceGeneratorTests extends InvoicingTestBase {
     }
 
     // TODO: Jeff C -- how do we ensure that an annual add-on is properly aligned *at the end* with the base plan?
-}                      
\ No newline at end of file
+}
\ No newline at end of file