killbill-memoizeit
Changes
Details
diff --git a/analytics/src/test/java/com/ning/billing/analytics/api/TestAnalyticsService.java b/analytics/src/test/java/com/ning/billing/analytics/api/TestAnalyticsService.java
index 405c431..c249f6a 100644
--- a/analytics/src/test/java/com/ning/billing/analytics/api/TestAnalyticsService.java
+++ b/analytics/src/test/java/com/ning/billing/analytics/api/TestAnalyticsService.java
@@ -225,7 +225,7 @@ public class TestAnalyticsService extends TestWithEmbeddedDB {
INVOICE_AMOUNT, ACCOUNT_CURRENCY);
invoice.addInvoiceItem(invoiceItem);
- invoiceDao.create(invoice, context);
+ invoiceDao.create(invoice, invoice.getTargetDate().getDayOfMonth(), context);
final List<Invoice> invoices = invoiceDao.getInvoicesByAccount(account.getId());
Assert.assertEquals(invoices.size(), 1);
Assert.assertEquals(invoices.get(0).getInvoiceItems().size(), 1);
diff --git a/api/src/main/java/com/ning/billing/glue/InvoiceModule.java b/api/src/main/java/com/ning/billing/glue/InvoiceModule.java
index 7e55895..f513edd 100644
--- a/api/src/main/java/com/ning/billing/glue/InvoiceModule.java
+++ b/api/src/main/java/com/ning/billing/glue/InvoiceModule.java
@@ -17,13 +17,9 @@
package com.ning.billing.glue;
public interface InvoiceModule {
-
public abstract void installInvoiceUserApi();
public abstract void installInvoicePaymentApi();
public abstract void installInvoiceMigrationApi();
-
- public abstract void installInvoiceTestApi();
-
-}
\ No newline at end of file
+}
diff --git a/invoice/src/main/java/com/ning/billing/invoice/api/migration/DefaultInvoiceMigrationApi.java b/invoice/src/main/java/com/ning/billing/invoice/api/migration/DefaultInvoiceMigrationApi.java
index 9e9b95c..67d3c77 100644
--- a/invoice/src/main/java/com/ning/billing/invoice/api/migration/DefaultInvoiceMigrationApi.java
+++ b/invoice/src/main/java/com/ning/billing/invoice/api/migration/DefaultInvoiceMigrationApi.java
@@ -20,8 +20,13 @@ import java.math.BigDecimal;
import java.util.UUID;
import org.joda.time.DateTime;
+import org.slf4j.Logger;
+import org.slf4j.LoggerFactory;
import com.google.inject.Inject;
+import com.ning.billing.account.api.Account;
+import com.ning.billing.account.api.AccountApiException;
+import com.ning.billing.account.api.AccountUserApi;
import com.ning.billing.catalog.api.Currency;
import com.ning.billing.invoice.api.Invoice;
import com.ning.billing.invoice.api.InvoiceItem;
@@ -35,23 +40,35 @@ import com.ning.billing.util.callcontext.UserType;
import com.ning.billing.util.clock.Clock;
public class DefaultInvoiceMigrationApi implements InvoiceMigrationApi {
+ private static final Logger log = LoggerFactory.getLogger(DefaultInvoiceMigrationApi.class);
+ private final AccountUserApi accountUserApi;
private final DefaultInvoiceDao dao;
private final Clock clock;
@Inject
- public DefaultInvoiceMigrationApi(final DefaultInvoiceDao dao, final Clock clock) {
+ public DefaultInvoiceMigrationApi(final AccountUserApi accountUserApi, final DefaultInvoiceDao dao, final Clock clock) {
+ this.accountUserApi = accountUserApi;
this.dao = dao;
this.clock = clock;
}
@Override
public UUID createMigrationInvoice(final UUID accountId, final DateTime targetDate, final BigDecimal balance, final Currency currency) {
+ final Account account;
+ try {
+ account = accountUserApi.getAccountById(accountId);
+ } catch (AccountApiException e) {
+ log.warn("Unable to find account for id {}", accountId);
+ return null;
+ }
+
final CallContext context = new DefaultCallContextFactory(clock).createMigrationCallContext("Migration", CallOrigin.INTERNAL, UserType.MIGRATION, clock.getUTCNow(), clock.getUTCNow());
final Invoice migrationInvoice = new MigrationInvoice(accountId, clock.getUTCNow(), targetDate, currency);
final InvoiceItem migrationInvoiceItem = new MigrationInvoiceItem(migrationInvoice.getId(), accountId, targetDate, balance, currency);
migrationInvoice.addInvoiceItem(migrationInvoiceItem);
- dao.create(migrationInvoice, context);
+
+ dao.create(migrationInvoice, account.getBillCycleDay(), context);
return migrationInvoice.getId();
}
}
diff --git a/invoice/src/main/java/com/ning/billing/invoice/dao/DefaultInvoiceDao.java b/invoice/src/main/java/com/ning/billing/invoice/dao/DefaultInvoiceDao.java
index 47f696c..75ef1aa 100644
--- a/invoice/src/main/java/com/ning/billing/invoice/dao/DefaultInvoiceDao.java
+++ b/invoice/src/main/java/com/ning/billing/invoice/dao/DefaultInvoiceDao.java
@@ -139,13 +139,11 @@ public class DefaultInvoiceDao implements InvoiceDao {
}
@Override
- public void create(final Invoice invoice, final CallContext context) {
+ public void create(final Invoice invoice, final int billCycleDay, final CallContext context) {
invoiceSqlDao.inTransaction(new Transaction<Void, InvoiceSqlDao>() {
@Override
public Void inTransaction(final InvoiceSqlDao transactional, final TransactionStatus status) throws Exception {
-
final Invoice currentInvoice = transactional.getById(invoice.getId().toString());
-
if (currentInvoice == null) {
final List<EntityAudit> audits = new ArrayList<EntityAudit>();
@@ -163,7 +161,7 @@ public class DefaultInvoiceDao implements InvoiceDao {
final List<InvoiceItem> recurringInvoiceItems = invoice.getInvoiceItems(RecurringInvoiceItem.class);
- notifyOfFutureBillingEvents(transactional, recurringInvoiceItems);
+ notifyOfFutureBillingEvents(transactional, invoice, recurringInvoiceItems, billCycleDay);
final List<InvoicePayment> invoicePayments = invoice.getPayments();
final InvoicePaymentSqlDao invoicePaymentSqlDao = transactional.become(InvoicePaymentSqlDao.class);
@@ -509,11 +507,10 @@ public class DefaultInvoiceDao implements InvoiceDao {
invoice.addPayments(invoicePayments);
}
- private void notifyOfFutureBillingEvents(final InvoiceSqlDao dao, final List<InvoiceItem> invoiceItems) {
+ private void notifyOfFutureBillingEvents(final InvoiceSqlDao dao, final Invoice invoice, final List<InvoiceItem> invoiceItems, final int billCycleDay) {
DateTime nextBCD = null;
UUID subscriptionForNextBCD = null;
for (final InvoiceItem item : invoiceItems) {
-
if (item.getInvoiceItemType() == InvoiceItemType.RECURRING) {
final RecurringInvoiceItem recurringInvoiceItem = (RecurringInvoiceItem) item;
if ((recurringInvoiceItem.getEndDate() != null) &&
@@ -526,7 +523,15 @@ public class DefaultInvoiceDao implements InvoiceDao {
}
}
}
- if (subscriptionForNextBCD != null) {
+
+ // We need to be notified if and only if the maximum end date of the invoiced recurring items is equal
+ // to the next bill cycle day.
+ // We take the maximum because we're guaranteed to have invoiced all subscriptions up until that date
+ // (and no further processing is needed).
+ // Also, we only need to get notified on the BDC. For other invoice events (e.g. phase changes),
+ // we'll be notified by entitlement.
+ if (subscriptionForNextBCD != null && nextBCD != null && nextBCD.getDayOfMonth() == billCycleDay) {
+ final UUID accountId = invoice.getAccountId();
nextBillingDatePoster.insertNextBillingNotification(dao, subscriptionForNextBCD, nextBCD);
}
}
diff --git a/invoice/src/main/java/com/ning/billing/invoice/dao/InvoiceDao.java b/invoice/src/main/java/com/ning/billing/invoice/dao/InvoiceDao.java
index 9c2403b..1812ed1 100644
--- a/invoice/src/main/java/com/ning/billing/invoice/dao/InvoiceDao.java
+++ b/invoice/src/main/java/com/ning/billing/invoice/dao/InvoiceDao.java
@@ -31,7 +31,7 @@ import com.ning.billing.util.api.TagApiException;
import com.ning.billing.util.callcontext.CallContext;
public interface InvoiceDao {
- void create(Invoice invoice, CallContext context);
+ void create(final Invoice invoice, final int billCycleDay, final CallContext context);
Invoice getById(final UUID id);
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 7ed75e1..1f2507b 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
@@ -31,8 +31,6 @@ import com.ning.billing.invoice.api.InvoiceUserApi;
import com.ning.billing.invoice.api.formatters.InvoiceFormatterFactory;
import com.ning.billing.invoice.api.invoice.DefaultInvoicePaymentApi;
import com.ning.billing.invoice.api.migration.DefaultInvoiceMigrationApi;
-import com.ning.billing.invoice.api.test.DefaultInvoiceTestApi;
-import com.ning.billing.invoice.api.test.InvoiceTestApi;
import com.ning.billing.invoice.api.user.DefaultInvoiceUserApi;
import com.ning.billing.invoice.dao.DefaultInvoiceDao;
import com.ning.billing.invoice.dao.InvoiceDao;
@@ -44,7 +42,6 @@ import com.ning.billing.invoice.notification.EmailInvoiceNotifier;
import com.ning.billing.invoice.notification.NextBillingDateNotifier;
import com.ning.billing.invoice.notification.NextBillingDatePoster;
import com.ning.billing.invoice.notification.NullInvoiceNotifier;
-import com.ning.billing.invoice.template.formatters.DefaultInvoiceFormatterFactory;
import com.ning.billing.util.template.translation.TranslatorConfig;
public class DefaultInvoiceModule extends AbstractModule implements InvoiceModule {
@@ -60,11 +57,6 @@ public class DefaultInvoiceModule extends AbstractModule implements InvoiceModul
}
@Override
- public void installInvoiceTestApi() {
- bind(InvoiceTestApi.class).to(DefaultInvoiceTestApi.class).asEagerSingleton();
- }
-
- @Override
public void installInvoicePaymentApi() {
bind(InvoicePaymentApi.class).to(DefaultInvoicePaymentApi.class).asEagerSingleton();
}
@@ -120,6 +112,5 @@ public class DefaultInvoiceModule extends AbstractModule implements InvoiceModul
installInvoiceUserApi();
installInvoicePaymentApi();
installInvoiceMigrationApi();
- installInvoiceTestApi();
}
}
diff --git a/invoice/src/main/java/com/ning/billing/invoice/InvoiceDispatcher.java b/invoice/src/main/java/com/ning/billing/invoice/InvoiceDispatcher.java
index 01948ba..1fdb6f7 100644
--- a/invoice/src/main/java/com/ning/billing/invoice/InvoiceDispatcher.java
+++ b/invoice/src/main/java/com/ning/billing/invoice/InvoiceDispatcher.java
@@ -172,7 +172,7 @@ public class InvoiceDispatcher {
}
outputDebugData(billingEvents, invoices);
if (!dryRun) {
- invoiceDao.create(invoice, context);
+ invoiceDao.create(invoice, account.getBillCycleDay(), context);
final List<InvoiceItem> fixedPriceInvoiceItems = invoice.getInvoiceItems(FixedPriceInvoiceItem.class);
final List<InvoiceItem> recurringInvoiceItems = invoice.getInvoiceItems(RecurringInvoiceItem.class);
diff --git a/invoice/src/test/java/com/ning/billing/invoice/dao/MockInvoiceDao.java b/invoice/src/test/java/com/ning/billing/invoice/dao/MockInvoiceDao.java
index 310b24b..a81485f 100644
--- a/invoice/src/test/java/com/ning/billing/invoice/dao/MockInvoiceDao.java
+++ b/invoice/src/test/java/com/ning/billing/invoice/dao/MockInvoiceDao.java
@@ -46,7 +46,7 @@ public class MockInvoiceDao implements InvoiceDao {
}
@Override
- public void create(final Invoice invoice, final CallContext context) {
+ public void create(final Invoice invoice, final int billCycleDay, final CallContext context) {
synchronized (monitor) {
invoices.put(invoice.getId(), invoice);
}
diff --git a/invoice/src/test/java/com/ning/billing/invoice/dao/TestInvoiceDao.java b/invoice/src/test/java/com/ning/billing/invoice/dao/TestInvoiceDao.java
index 626cb2f..87978ab 100644
--- a/invoice/src/test/java/com/ning/billing/invoice/dao/TestInvoiceDao.java
+++ b/invoice/src/test/java/com/ning/billing/invoice/dao/TestInvoiceDao.java
@@ -76,7 +76,7 @@ public class TestInvoiceDao extends InvoiceDaoTestBase {
final Invoice invoice = new DefaultInvoice(accountId, clock.getUTCNow(), clock.getUTCNow(), Currency.USD);
final DateTime invoiceDate = invoice.getInvoiceDate();
- invoiceDao.create(invoice, context);
+ invoiceDao.create(invoice, invoice.getTargetDate().getDayOfMonth(), context);
final List<Invoice> invoices = invoiceDao.getInvoicesByAccount(accountId);
assertNotNull(invoices);
@@ -102,7 +102,7 @@ public class TestInvoiceDao extends InvoiceDaoTestBase {
new BigDecimal("21.00"), new BigDecimal("7.00"), Currency.USD);
invoice.addInvoiceItem(invoiceItem);
- invoiceDao.create(invoice, context);
+ invoiceDao.create(invoice, invoice.getTargetDate().getDayOfMonth(), context);
final Invoice savedInvoice = invoiceDao.getById(invoiceId);
assertNotNull(savedInvoice);
@@ -139,7 +139,7 @@ public class TestInvoiceDao extends InvoiceDaoTestBase {
final DateTime paymentDate = new DateTime(2011, 6, 24, 12, 14, 36, 0);
final BigDecimal paymentAmount = new BigDecimal("14.0");
- invoiceDao.create(invoice, context);
+ invoiceDao.create(invoice, invoice.getTargetDate().getDayOfMonth(), context);
invoiceDao.notifyOfPayment(new DefaultInvoicePayment(InvoicePaymentType.ATTEMPT, paymentId, invoice.getId(), paymentDate, paymentAmount, Currency.USD), context);
invoice = invoiceDao.getById(invoice.getId());
@@ -156,7 +156,7 @@ public class TestInvoiceDao extends InvoiceDaoTestBase {
final DateTime paymentDate = new DateTime(2011, 6, 24, 12, 14, 36, 0);
- invoiceDao.create(invoice, context);
+ invoiceDao.create(invoice, invoice.getTargetDate().getDayOfMonth(), context);
invoiceDao.notifyOfPayment(new DefaultInvoicePayment(InvoicePaymentType.ATTEMPT, UUID.randomUUID(), invoice.getId(), paymentDate, invoice.getBalance(), Currency.USD), context);
invoice = invoiceDao.getById(invoice.getId());
assertEquals(invoice.getLastPaymentDate().compareTo(paymentDate), 0);
@@ -180,7 +180,7 @@ public class TestInvoiceDao extends InvoiceDaoTestBase {
// Create invoice 1 (subscriptions 1-4)
final Invoice invoice1 = new DefaultInvoice(accountId, clock.getUTCNow(), targetDate, Currency.USD);
- invoiceDao.create(invoice1, context);
+ invoiceDao.create(invoice1, invoice1.getTargetDate().getDayOfMonth(), context);
final UUID invoiceId1 = invoice1.getId();
@@ -205,7 +205,7 @@ public class TestInvoiceDao extends InvoiceDaoTestBase {
// Create invoice 2 (subscriptions 1-3)
final DefaultInvoice invoice2 = new DefaultInvoice(accountId, clock.getUTCNow(), targetDate, Currency.USD);
- invoiceDao.create(invoice2, context);
+ invoiceDao.create(invoice2, invoice2.getTargetDate().getDayOfMonth(), context);
final UUID invoiceId2 = invoice2.getId();
@@ -256,7 +256,7 @@ public class TestInvoiceDao extends InvoiceDaoTestBase {
// Create invoice 1 (subscriptions 1-4)
final Invoice invoice1 = new DefaultInvoice(accountId, clock.getUTCNow(), targetDate, Currency.USD);
- invoiceDao.create(invoice1, context);
+ invoiceDao.create(invoice1, invoice1.getTargetDate().getDayOfMonth(), context);
final UUID invoiceId1 = invoice1.getId();
@@ -281,7 +281,7 @@ public class TestInvoiceDao extends InvoiceDaoTestBase {
// create invoice 2 (subscriptions 1-3)
final DefaultInvoice invoice2 = new DefaultInvoice(accountId, clock.getUTCNow(), targetDate, Currency.USD);
- invoiceDao.create(invoice2, context);
+ invoiceDao.create(invoice2, invoice2.getTargetDate().getDayOfMonth(), context);
final UUID invoiceId2 = invoice2.getId();
@@ -332,7 +332,7 @@ public class TestInvoiceDao extends InvoiceDaoTestBase {
// Create invoice 1 (subscriptions 1-4)
final Invoice invoice1 = new DefaultInvoice(accountId, clock.getUTCNow(), targetDate, Currency.USD);
- invoiceDao.create(invoice1, context);
+ invoiceDao.create(invoice1, invoice1.getTargetDate().getDayOfMonth(), context);
final UUID invoiceId1 = invoice1.getId();
@@ -373,7 +373,7 @@ public class TestInvoiceDao extends InvoiceDaoTestBase {
// create invoice 2 (subscriptions 1-3)
final DefaultInvoice invoice2 = new DefaultInvoice(accountId, clock.getUTCNow(), targetDate, Currency.USD);
- invoiceDao.create(invoice2, context);
+ invoiceDao.create(invoice2, invoice2.getTargetDate().getDayOfMonth(), context);
final UUID invoiceId2 = invoice2.getId();
@@ -422,11 +422,11 @@ public class TestInvoiceDao extends InvoiceDaoTestBase {
final UUID accountId = UUID.randomUUID();
final DateTime targetDate1 = new DateTime(2011, 10, 6, 0, 0, 0, 0);
final Invoice invoice1 = new DefaultInvoice(accountId, clock.getUTCNow(), targetDate1, Currency.USD);
- invoiceDao.create(invoice1, context);
+ invoiceDao.create(invoice1, invoice1.getTargetDate().getDayOfMonth(), context);
final DateTime targetDate2 = new DateTime(2011, 12, 6, 0, 0, 0, 0);
final Invoice invoice2 = new DefaultInvoice(accountId, clock.getUTCNow(), targetDate2, Currency.USD);
- invoiceDao.create(invoice2, context);
+ invoiceDao.create(invoice2, invoice2.getTargetDate().getDayOfMonth(), context);
List<Invoice> invoices;
@@ -452,7 +452,7 @@ public class TestInvoiceDao extends InvoiceDaoTestBase {
final UUID bundleId = UUID.randomUUID();
final DateTime targetDate1 = new DateTime(2011, 10, 6, 0, 0, 0, 0);
final Invoice invoice1 = new DefaultInvoice(accountId, clock.getUTCNow(), targetDate1, Currency.USD);
- invoiceDao.create(invoice1, context);
+ invoiceDao.create(invoice1, invoice1.getTargetDate().getDayOfMonth(), context);
final DateTime startDate = new DateTime(2011, 3, 1, 0, 0, 0, 0);
final DateTime endDate = startDate.plusMonths(1);
@@ -483,7 +483,7 @@ public class TestInvoiceDao extends InvoiceDaoTestBase {
final UUID bundleId = UUID.randomUUID();
final DateTime targetDate1 = new DateTime(2011, 10, 6, 0, 0, 0, 0);
final Invoice invoice1 = new DefaultInvoice(accountId, clock.getUTCNow(), targetDate1, Currency.USD);
- invoiceDao.create(invoice1, context);
+ invoiceDao.create(invoice1, invoice1.getTargetDate().getDayOfMonth(), context);
final DateTime startDate = new DateTime(2011, 3, 1, 0, 0, 0, 0);
final DateTime endDate = startDate.plusMonths(1);
@@ -508,7 +508,7 @@ public class TestInvoiceDao extends InvoiceDaoTestBase {
final UUID bundleId = UUID.randomUUID();
final DateTime targetDate1 = new DateTime(2011, 10, 6, 0, 0, 0, 0);
final Invoice invoice1 = new DefaultInvoice(accountId, clock.getUTCNow(), targetDate1, Currency.USD);
- invoiceDao.create(invoice1, context);
+ invoiceDao.create(invoice1, invoice1.getTargetDate().getDayOfMonth(), context);
final DateTime startDate = new DateTime(2011, 3, 1, 0, 0, 0, 0);
final DateTime endDate = startDate.plusMonths(1);
@@ -533,7 +533,7 @@ public class TestInvoiceDao extends InvoiceDaoTestBase {
final UUID accountId = UUID.randomUUID();
final DateTime targetDate1 = new DateTime(2011, 10, 6, 0, 0, 0, 0);
final Invoice invoice1 = new DefaultInvoice(accountId, clock.getUTCNow(), targetDate1, Currency.USD);
- invoiceDao.create(invoice1, context);
+ invoiceDao.create(invoice1, invoice1.getTargetDate().getDayOfMonth(), context);
final BigDecimal payment1 = new BigDecimal("48.0");
final InvoicePayment payment = new DefaultInvoicePayment(InvoicePaymentType.ATTEMPT, UUID.randomUUID(), invoice1.getId(), new DateTime(), payment1, Currency.USD);
@@ -559,7 +559,7 @@ public class TestInvoiceDao extends InvoiceDaoTestBase {
final UUID bundleId = UUID.randomUUID();
final DateTime targetDate1 = new DateTime(2011, 10, 6, 0, 0, 0, 0);
final Invoice invoice1 = new DefaultInvoice(accountId, clock.getUTCNow(), targetDate1, Currency.USD);
- invoiceDao.create(invoice1, context);
+ invoiceDao.create(invoice1, invoice1.getTargetDate().getDayOfMonth(), context);
final DateTime startDate = new DateTime(2011, 3, 1, 0, 0, 0, 0);
final DateTime endDate = startDate.plusMonths(1);
@@ -623,12 +623,11 @@ public class TestInvoiceDao extends InvoiceDaoTestBase {
private void testAccountBalanceWithRefundAndCBAInternal(boolean withAdjustment, final BigDecimal refundAmount, final BigDecimal expectedFinalBalance) throws InvoiceApiException {
-
final UUID accountId = UUID.randomUUID();
final UUID bundleId = UUID.randomUUID();
final DateTime targetDate1 = new DateTime(2011, 10, 6, 0, 0, 0, 0);
final Invoice invoice1 = new DefaultInvoice(accountId, clock.getUTCNow(), targetDate1, Currency.USD);
- invoiceDao.create(invoice1, context);
+ invoiceDao.create(invoice1, invoice1.getTargetDate().getDayOfMonth(), context);
final DateTime startDate = new DateTime(2011, 3, 1, 0, 0, 0, 0);
final DateTime endDate = startDate.plusMonths(1);
@@ -695,7 +694,7 @@ public class TestInvoiceDao extends InvoiceDaoTestBase {
final UUID bundleId = UUID.randomUUID();
final DateTime targetDate1 = new DateTime(2011, 10, 6, 0, 0, 0, 0);
final Invoice invoice1 = new DefaultInvoice(accountId, clock.getUTCNow(), targetDate1, Currency.USD);
- invoiceDao.create(invoice1, context);
+ invoiceDao.create(invoice1, invoice1.getTargetDate().getDayOfMonth(), context);
final DateTime startDate = new DateTime(2011, 3, 1, 0, 0, 0, 0);
final DateTime endDate = startDate.plusMonths(1);
@@ -760,7 +759,7 @@ public class TestInvoiceDao extends InvoiceDaoTestBase {
// NEXT RECURRING on invoice 2
final Invoice invoice2 = new DefaultInvoice(accountId, clock.getUTCNow(), targetDate1.plusMonths(1), Currency.USD);
- invoiceDao.create(invoice2, context);
+ invoiceDao.create(invoice2, invoice2.getTargetDate().getDayOfMonth(), context);
final RecurringInvoiceItem nextItem = new RecurringInvoiceItem(invoice2.getId(), accountId, bundleId, UUID.randomUUID(), "test plan", "test bla", startDate.plusMonths(1),
@@ -788,7 +787,7 @@ public class TestInvoiceDao extends InvoiceDaoTestBase {
final UUID bundleId = UUID.randomUUID();
final DateTime targetDate1 = new DateTime(2011, 10, 6, 0, 0, 0, 0);
final Invoice invoice1 = new DefaultInvoice(accountId, clock.getUTCNow(), targetDate1, Currency.USD);
- invoiceDao.create(invoice1, context);
+ invoiceDao.create(invoice1, invoice1.getTargetDate().getDayOfMonth(), context);
final DateTime startDate = new DateTime(2011, 3, 1, 0, 0, 0, 0);
final DateTime endDate = startDate.plusMonths(1);
@@ -818,7 +817,7 @@ public class TestInvoiceDao extends InvoiceDaoTestBase {
final DateTime targetDate2 = new DateTime(2011, 7, 1, 0, 0, 0, 0);
final Invoice invoice2 = new DefaultInvoice(accountId, clock.getUTCNow(), targetDate2, Currency.USD);
- invoiceDao.create(invoice2, context);
+ invoiceDao.create(invoice2, invoice2.getTargetDate().getDayOfMonth(), context);
final DateTime startDate2 = new DateTime(2011, 6, 1, 0, 0, 0, 0);
final DateTime endDate2 = startDate2.plusMonths(3);
@@ -888,8 +887,8 @@ public class TestInvoiceDao extends InvoiceDaoTestBase {
assertEquals(invoice2.getBalance(), FIVE);
invoiceList.add(invoice2);
- invoiceDao.create(invoice1, context);
- invoiceDao.create(invoice2, context);
+ invoiceDao.create(invoice1, invoice1.getTargetDate().getDayOfMonth(), context);
+ invoiceDao.create(invoice2, invoice2.getTargetDate().getDayOfMonth(), context);
final Invoice savedInvoice1 = invoiceDao.getById(invoice1.getId());
assertEquals(savedInvoice1.getBalance(), ZERO);
@@ -963,7 +962,7 @@ public class TestInvoiceDao extends InvoiceDaoTestBase {
final List<Invoice> invoiceList = new ArrayList<Invoice>();
invoiceList.add(invoice1);
- //invoiceDao.create(invoice1, context);
+ //invoiceDao.create(invoice1, invoice1.getTargetDate().getDayOfMonth(), context);
final DateTime effectiveDate2 = effectiveDate1.plusDays(30);
final BillingEvent event2 = createMockBillingEvent(null, subscription, effectiveDate2, plan, phase2, null,
@@ -978,7 +977,7 @@ public class TestInvoiceDao extends InvoiceDaoTestBase {
invoiceList.add(invoice2);
- //invoiceDao.create(invoice2, context);
+ //invoiceDao.create(invoice2, invoice2.getTargetDate().getDayOfMonth(), context);
final DateTime effectiveDate3 = effectiveDate2.plusMonths(1);
final Invoice invoice3 = generator.generateInvoice(accountId, events, invoiceList, effectiveDate3, Currency.USD);
@@ -986,7 +985,7 @@ public class TestInvoiceDao extends InvoiceDaoTestBase {
assertEquals(invoice3.getNumberOfItems(), 1);
assertEquals(invoice3.getBalance().compareTo(cheapAmount), 0);
- //invoiceDao.create(invoice3, context);
+ //invoiceDao.create(invoice3, invoice3.getTargetDate().getDayOfMonth(), context);
}
@Test(groups = {"slow"})
@@ -1031,7 +1030,7 @@ public class TestInvoiceDao extends InvoiceDaoTestBase {
assertEquals(invoice.getNumberOfItems(), 2);
assertEquals(invoice.getBalance().compareTo(cheapAmount), 0);
- invoiceDao.create(invoice, context);
+ invoiceDao.create(invoice, invoice.getTargetDate().getDayOfMonth(), context);
final Invoice savedInvoice = invoiceDao.getById(invoice.getId());
assertNotNull(savedInvoice);
@@ -1067,7 +1066,7 @@ public class TestInvoiceDao extends InvoiceDaoTestBase {
Invoice invoice1 = generator.generateInvoice(UUID.randomUUID(), events, invoices, targetDate1, Currency.USD);
invoices.add(invoice1);
- invoiceDao.create(invoice1, context);
+ invoiceDao.create(invoice1, invoice1.getTargetDate().getDayOfMonth(), context);
invoice1 = invoiceDao.getById(invoice1.getId());
assertNotNull(invoice1.getInvoiceNumber());
@@ -1077,7 +1076,7 @@ public class TestInvoiceDao extends InvoiceDaoTestBase {
"testEvent2", 2L, SubscriptionTransitionType.CHANGE);
events.add(event2);
Invoice invoice2 = generator.generateInvoice(UUID.randomUUID(), events, invoices, targetDate2, Currency.USD);
- invoiceDao.create(invoice2, context);
+ invoiceDao.create(invoice2, invoice2.getTargetDate().getDayOfMonth(), context);
invoice2 = invoiceDao.getById(invoice2.getId());
assertNotNull(invoice2.getInvoiceNumber());
}
@@ -1104,7 +1103,7 @@ public class TestInvoiceDao extends InvoiceDaoTestBase {
events.add(event1);
final Invoice invoice = generator.generateInvoice(UUID.randomUUID(), events, null, targetDate1, Currency.USD);
- invoiceDao.create(invoice, context);
+ invoiceDao.create(invoice, invoice.getTargetDate().getDayOfMonth(), context);
invoiceDao.setWrittenOff(invoice.getId(), context);
final TagDao tagDao = new AuditedTagDao(dbi, tagEventBuilder, bus);
@@ -1135,7 +1134,7 @@ public class TestInvoiceDao extends InvoiceDaoTestBase {
events.add(event1);
final Invoice invoice = generator.generateInvoice(UUID.randomUUID(), events, null, targetDate1, Currency.USD);
- invoiceDao.create(invoice, context);
+ invoiceDao.create(invoice, invoice.getTargetDate().getDayOfMonth(), context);
invoiceDao.setWrittenOff(invoice.getId(), context);
final TagDao tagDao = new AuditedTagDao(dbi, tagEventBuilder, bus);
diff --git a/invoice/src/test/java/com/ning/billing/invoice/dao/TestInvoiceItemDao.java b/invoice/src/test/java/com/ning/billing/invoice/dao/TestInvoiceItemDao.java
index 931d0ae..78bbdd6 100644
--- a/invoice/src/test/java/com/ning/billing/invoice/dao/TestInvoiceItemDao.java
+++ b/invoice/src/test/java/com/ning/billing/invoice/dao/TestInvoiceItemDao.java
@@ -114,7 +114,7 @@ public class TestInvoiceItemDao extends InvoiceDaoTestBase {
final DateTime targetDate = new DateTime(2011, 5, 23, 0, 0, 0, 0);
final DefaultInvoice invoice = new DefaultInvoice(accountId, clock.getUTCNow(), targetDate, Currency.USD);
- invoiceDao.create(invoice, context);
+ invoiceDao.create(invoice, targetDate.getDayOfMonth(), context);
final UUID invoiceId = invoice.getId();
final DateTime startDate = new DateTime(2011, 3, 1, 0, 0, 0, 0);
diff --git a/invoice/src/test/java/com/ning/billing/invoice/generator/TestDefaultInvoiceGenerator.java b/invoice/src/test/java/com/ning/billing/invoice/generator/TestDefaultInvoiceGenerator.java
index b46edc7..91c020b 100644
--- a/invoice/src/test/java/com/ning/billing/invoice/generator/TestDefaultInvoiceGenerator.java
+++ b/invoice/src/test/java/com/ning/billing/invoice/generator/TestDefaultInvoiceGenerator.java
@@ -71,7 +71,6 @@ import static org.testng.Assert.assertNull;
import static org.testng.Assert.assertTrue;
public class TestDefaultInvoiceGenerator extends InvoicingTestBase {
-
private static final Logger log = LoggerFactory.getLogger(TestDefaultInvoiceGenerator.class);
private final Clock clock = new ClockMock();
@@ -79,8 +78,6 @@ public class TestDefaultInvoiceGenerator extends InvoicingTestBase {
private final InvoiceGenerator generator;
public TestDefaultInvoiceGenerator() {
- super();
-
final Clock clock = new DefaultClock();
final InvoiceConfig invoiceConfig = new InvoiceConfig() {
@Override
diff --git a/invoice/src/test/java/com/ning/billing/invoice/glue/InvoiceModuleWithEmbeddedDb.java b/invoice/src/test/java/com/ning/billing/invoice/glue/InvoiceModuleWithEmbeddedDb.java
index a317cad..e4bf810 100644
--- a/invoice/src/test/java/com/ning/billing/invoice/glue/InvoiceModuleWithEmbeddedDb.java
+++ b/invoice/src/test/java/com/ning/billing/invoice/glue/InvoiceModuleWithEmbeddedDb.java
@@ -25,8 +25,6 @@ import com.ning.billing.account.api.AccountUserApi;
import com.ning.billing.catalog.glue.CatalogModule;
import com.ning.billing.dbi.MysqlTestingHelper;
import com.ning.billing.invoice.api.InvoiceNotifier;
-import com.ning.billing.invoice.api.test.DefaultInvoiceTestApi;
-import com.ning.billing.invoice.api.test.InvoiceTestApi;
import com.ning.billing.invoice.dao.InvoiceItemSqlDao;
import com.ning.billing.invoice.dao.InvoicePaymentSqlDao;
import com.ning.billing.invoice.notification.MockNextBillingDateNotifier;
@@ -117,7 +115,6 @@ public class InvoiceModuleWithEmbeddedDb extends DefaultInvoiceModule {
super.configure();
- bind(InvoiceTestApi.class).to(DefaultInvoiceTestApi.class).asEagerSingleton();
install(new BusModule());
install(new TemplateModule());
diff --git a/util/src/test/java/com/ning/billing/mock/glue/MockInvoiceModule.java b/util/src/test/java/com/ning/billing/mock/glue/MockInvoiceModule.java
index 90e41c4..6fd3f57 100644
--- a/util/src/test/java/com/ning/billing/mock/glue/MockInvoiceModule.java
+++ b/util/src/test/java/com/ning/billing/mock/glue/MockInvoiceModule.java
@@ -21,11 +21,9 @@ import com.ning.billing.glue.InvoiceModule;
import com.ning.billing.invoice.api.InvoiceMigrationApi;
import com.ning.billing.invoice.api.InvoicePaymentApi;
import com.ning.billing.invoice.api.InvoiceUserApi;
-import com.ning.billing.invoice.api.test.InvoiceTestApi;
import com.ning.billing.mock.BrainDeadProxyFactory;
public class MockInvoiceModule extends AbstractModule implements InvoiceModule {
-
@Override
public void installInvoiceUserApi() {
bind(InvoiceUserApi.class).toInstance(BrainDeadProxyFactory.createBrainDeadProxyFor(InvoiceUserApi.class));
@@ -42,15 +40,9 @@ public class MockInvoiceModule extends AbstractModule implements InvoiceModule {
}
@Override
- public void installInvoiceTestApi() {
- bind(InvoiceTestApi.class).toInstance(BrainDeadProxyFactory.createBrainDeadProxyFor(InvoiceTestApi.class));
- }
-
- @Override
protected void configure() {
installInvoiceUserApi();
installInvoicePaymentApi();
installInvoiceMigrationApi();
- installInvoiceTestApi();
}
}