killbill-memoizeit
Changes
invoice/src/test/java/com/ning/billing/invoice/api/invoice/TestDefaultInvoicePaymentApi.java 28(+4 -24)
invoice/src/test/java/com/ning/billing/invoice/api/migration/MockModuleNoEntitlement.java 51(+0 -51)
invoice/src/test/java/com/ning/billing/invoice/api/migration/TestDefaultInvoiceMigrationApi.java 10(+6 -4)
invoice/src/test/java/com/ning/billing/invoice/generator/TestDefaultInvoiceGenerator.java 120(+59 -61)
invoice/src/test/java/com/ning/billing/invoice/generator/TestDefaultInvoiceGeneratorUnit.java 53(+12 -41)
invoice/src/test/java/com/ning/billing/invoice/notification/TestNextBillingDateNotifier.java 176(+11 -165)
invoice/src/test/java/com/ning/billing/invoice/template/formatters/TestDefaultInvoiceFormatter.java 6(+4 -2)
invoice/src/test/java/com/ning/billing/invoice/template/formatters/TestDefaultInvoiceItemFormatter.java 6(+4 -2)
invoice/src/test/java/com/ning/billing/invoice/tests/inAdvance/annual/GenericProRationTests.java 2(+2 -0)
invoice/src/test/java/com/ning/billing/invoice/tests/inAdvance/annual/TestDoubleProRation.java 56(+29 -27)
invoice/src/test/java/com/ning/billing/invoice/tests/inAdvance/annual/TestLeadingProRation.java 54(+28 -26)
invoice/src/test/java/com/ning/billing/invoice/tests/inAdvance/annual/TestTrailingProRation.java 36(+19 -17)
invoice/src/test/java/com/ning/billing/invoice/tests/inAdvance/GenericProRationTestBase.java 58(+30 -28)
invoice/src/test/java/com/ning/billing/invoice/tests/inAdvance/monthly/GenericProRationTests.java 2(+2 -0)
invoice/src/test/java/com/ning/billing/invoice/tests/inAdvance/monthly/TestDoubleProRation.java 56(+29 -27)
invoice/src/test/java/com/ning/billing/invoice/tests/inAdvance/monthly/TestLeadingProRation.java 54(+28 -26)
invoice/src/test/java/com/ning/billing/invoice/tests/inAdvance/monthly/TestProRation.java 102(+52 -50)
invoice/src/test/java/com/ning/billing/invoice/tests/inAdvance/monthly/TestTrailingProRation.java 36(+19 -17)
invoice/src/test/java/com/ning/billing/invoice/tests/inAdvance/ProRationInAdvanceTestBase.java 2(+2 -0)
invoice/src/test/java/com/ning/billing/invoice/tests/inAdvance/quarterly/GenericProRationTests.java 2(+2 -0)
invoice/src/test/java/com/ning/billing/invoice/tests/inAdvance/quarterly/TestDoubleProRation.java 56(+29 -27)
invoice/src/test/java/com/ning/billing/invoice/tests/inAdvance/quarterly/TestLeadingProRation.java 54(+28 -26)
invoice/src/test/java/com/ning/billing/invoice/tests/inAdvance/quarterly/TestProRation.java 102(+52 -50)
invoice/src/test/java/com/ning/billing/invoice/tests/inAdvance/quarterly/TestTrailingProRation.java 36(+19 -17)
Details
diff --git a/invoice/src/test/java/com/ning/billing/invoice/api/invoice/TestDefaultInvoicePaymentApi.java b/invoice/src/test/java/com/ning/billing/invoice/api/invoice/TestDefaultInvoicePaymentApi.java
index 7d9c2f9..de924b2 100644
--- a/invoice/src/test/java/com/ning/billing/invoice/api/invoice/TestDefaultInvoicePaymentApi.java
+++ b/invoice/src/test/java/com/ning/billing/invoice/api/invoice/TestDefaultInvoicePaymentApi.java
@@ -16,17 +16,13 @@
package com.ning.billing.invoice.api.invoice;
-import java.io.IOException;
import java.math.BigDecimal;
import java.math.RoundingMode;
import java.util.HashMap;
import java.util.Map;
import java.util.UUID;
-import org.mockito.Mockito;
-import org.skife.jdbi.v2.IDBI;
import org.testng.Assert;
-import org.testng.annotations.BeforeSuite;
import org.testng.annotations.Test;
import com.ning.billing.catalog.api.Currency;
@@ -35,22 +31,6 @@ import com.ning.billing.invoice.api.Invoice;
import com.ning.billing.invoice.api.InvoiceApiException;
import com.ning.billing.invoice.api.InvoicePayment;
import com.ning.billing.invoice.api.InvoicePayment.InvoicePaymentType;
-import com.ning.billing.invoice.api.InvoicePaymentApi;
-import com.ning.billing.invoice.api.svcs.DefaultInvoiceInternalApi;
-import com.ning.billing.invoice.dao.DefaultInvoiceDao;
-import com.ning.billing.invoice.dao.InvoiceDao;
-import com.ning.billing.invoice.dao.InvoiceItemSqlDao;
-import com.ning.billing.invoice.dao.InvoiceSqlDao;
-import com.ning.billing.invoice.notification.MockNextBillingDatePoster;
-import com.ning.billing.invoice.notification.NextBillingDatePoster;
-import com.ning.billing.util.cache.CacheControllerDispatcher;
-import com.ning.billing.util.callcontext.InternalCallContextFactory;
-import com.ning.billing.util.clock.Clock;
-import com.ning.billing.util.clock.ClockMock;
-import com.ning.billing.util.dao.DefaultNonEntityDao;
-import com.ning.billing.util.dao.NonEntityDao;
-import com.ning.billing.util.svcapi.invoice.InvoiceInternalApi;
-import com.ning.billing.util.svcsapi.bus.InternalBus;
import com.google.common.collect.ImmutableList;
import com.google.common.collect.ImmutableMap;
@@ -86,7 +66,7 @@ public class TestDefaultInvoicePaymentApi extends InvoiceTestSuiteWithEmbeddedDB
@Test(groups = "slow")
public void testFullRefundWithBothInvoiceItemAdjustments() throws Exception {
// Create an invoice with two items (30 \u20ac and 10 \u20ac)
- final Invoice invoice = createAndPersistInvoice(invoiceDao, clock,
+ final Invoice invoice = createAndPersistInvoice(invoiceDao, clock,
ImmutableList.<BigDecimal>of(THIRTY, BigDecimal.TEN), CURRENCY, internalCallContext);
// Fully adjust both items
@@ -100,7 +80,7 @@ public class TestDefaultInvoicePaymentApi extends InvoiceTestSuiteWithEmbeddedDB
@Test(groups = "slow")
public void testPartialRefundWithSingleInvoiceItemAdjustment() throws Exception {
// Create an invoice with two items (30 \u20ac and 10 \u20ac)
- final Invoice invoice = createAndPersistInvoice(invoiceDao, clock,
+ final Invoice invoice = createAndPersistInvoice(invoiceDao, clock,
ImmutableList.<BigDecimal>of(THIRTY, BigDecimal.TEN), CURRENCY, internalCallContext);
// Fully adjust both items
@@ -113,7 +93,7 @@ public class TestDefaultInvoicePaymentApi extends InvoiceTestSuiteWithEmbeddedDB
@Test(groups = "slow")
public void testPartialRefundWithTwoInvoiceItemAdjustment() throws Exception {
// Create an invoice with two items (30 \u20ac and 10 \u20ac)
- final Invoice invoice = createAndPersistInvoice(invoiceDao, clock,
+ final Invoice invoice = createAndPersistInvoice(invoiceDao, clock,
ImmutableList.<BigDecimal>of(THIRTY, BigDecimal.TEN), CURRENCY, internalCallContext);
// Adjust partially both items: the invoice posted was 40 \u20ac, but we should really just have charged you 2 \u20ac
final ImmutableMap<UUID, BigDecimal> adjustments = ImmutableMap.<UUID, BigDecimal>of(invoice.getInvoiceItems().get(0).getId(), new BigDecimal("29"),
@@ -123,7 +103,7 @@ public class TestDefaultInvoicePaymentApi extends InvoiceTestSuiteWithEmbeddedDB
private void verifyRefund(final BigDecimal invoiceAmount, final BigDecimal refundAmount, final BigDecimal finalInvoiceAmount,
final boolean adjusted, final Map<UUID, BigDecimal> invoiceItemIdsWithAmounts) throws InvoiceApiException {
- final Invoice invoice = createAndPersistInvoice(invoiceDao, clock, invoiceAmount, CURRENCY, internalCallContext);
+ final Invoice invoice = createAndPersistInvoice(invoiceDao, clock, invoiceAmount, CURRENCY, internalCallContext);
verifyRefund(invoice, invoiceAmount, refundAmount, finalInvoiceAmount, adjusted, invoiceItemIdsWithAmounts);
}
diff --git a/invoice/src/test/java/com/ning/billing/invoice/api/migration/TestDefaultInvoiceMigrationApi.java b/invoice/src/test/java/com/ning/billing/invoice/api/migration/TestDefaultInvoiceMigrationApi.java
index 6aaa407..c57a359 100644
--- a/invoice/src/test/java/com/ning/billing/invoice/api/migration/TestDefaultInvoiceMigrationApi.java
+++ b/invoice/src/test/java/com/ning/billing/invoice/api/migration/TestDefaultInvoiceMigrationApi.java
@@ -31,12 +31,13 @@ import org.testng.annotations.Test;
import com.ning.billing.account.api.Account;
import com.ning.billing.catalog.api.Currency;
+import com.ning.billing.invoice.InvoiceTestSuiteWithEmbeddedDB;
import com.ning.billing.invoice.api.Invoice;
import com.ning.billing.invoice.api.InvoiceApiException;
import com.ning.billing.invoice.dao.InvoiceModelDao;
import com.ning.billing.invoice.dao.InvoiceModelDaoHelper;
-public class TestDefaultInvoiceMigrationApi extends InvoiceApiTestBase {
+public class TestDefaultInvoiceMigrationApi extends InvoiceTestSuiteWithEmbeddedDB {
private final Logger log = LoggerFactory.getLogger(TestDefaultInvoiceMigrationApi.class);
@@ -51,14 +52,15 @@ public class TestDefaultInvoiceMigrationApi extends InvoiceApiTestBase {
private static final Currency MIGRATION_INVOICE_CURRENCY = Currency.USD;
@BeforeMethod(groups = "slow")
- public void setupMethod() throws Exception {
+ public void setupTest() throws Exception {
+ super.setupTest();
date_migrated = clock.getUTCToday().minusYears(1);
date_regular = clock.getUTCNow();
- final Account account = createAccount();
+ final Account account = invoiceUtil.createAccount();
accountId = account.getId();
migrationInvoiceId = createAndCheckMigrationInvoice(accountId);
- regularInvoiceId = generateRegularInvoice(account, date_regular);
+ regularInvoiceId = invoiceUtil.generateRegularInvoice(account, date_regular);
}
private UUID createAndCheckMigrationInvoice(final UUID accountId) throws InvoiceApiException {
diff --git a/invoice/src/test/java/com/ning/billing/invoice/api/user/TestDefaultInvoiceUserApi.java b/invoice/src/test/java/com/ning/billing/invoice/api/user/TestDefaultInvoiceUserApi.java
index b576cc3..e50738c 100644
--- a/invoice/src/test/java/com/ning/billing/invoice/api/user/TestDefaultInvoiceUserApi.java
+++ b/invoice/src/test/java/com/ning/billing/invoice/api/user/TestDefaultInvoiceUserApi.java
@@ -22,7 +22,6 @@ import java.util.UUID;
import javax.annotation.Nullable;
-import org.mockito.Mockito;
import org.testng.Assert;
import org.testng.annotations.BeforeMethod;
import org.testng.annotations.Test;
@@ -30,61 +29,53 @@ import org.testng.annotations.Test;
import com.ning.billing.ErrorCode;
import com.ning.billing.ObjectType;
import com.ning.billing.account.api.Account;
+import com.ning.billing.invoice.InvoiceTestSuiteWithEmbeddedDB;
import com.ning.billing.invoice.api.InvoiceApiException;
import com.ning.billing.invoice.api.InvoiceItem;
import com.ning.billing.invoice.api.InvoiceItemType;
-import com.ning.billing.invoice.api.migration.InvoiceApiTestBase;
import com.ning.billing.invoice.model.InvoicingConfiguration;
import com.ning.billing.util.api.TagApiException;
-import com.ning.billing.util.callcontext.CallContext;
-import com.ning.billing.util.callcontext.CallOrigin;
-import com.ning.billing.util.callcontext.DefaultCallContextFactory;
-import com.ning.billing.util.callcontext.TenantContext;
-import com.ning.billing.util.callcontext.UserType;
import com.ning.billing.util.tag.ControlTagType;
import com.ning.billing.util.tag.Tag;
import static org.testng.Assert.assertEquals;
-public class TestDefaultInvoiceUserApi extends InvoiceApiTestBase {
+public class TestDefaultInvoiceUserApi extends InvoiceTestSuiteWithEmbeddedDB {
private UUID accountId;
private UUID invoiceId;
- private CallContext context;
- private TenantContext tenantContext;
@BeforeMethod(groups = "slow")
- public void setupMethod() throws Exception {
- final Account account = createAccount();
+ public void setupTest() throws Exception {
+ super.setupTest();
+ final Account account = invoiceUtil.createAccount();
accountId = account.getId();
- invoiceId = generateRegularInvoice(account, clock.getUTCNow());
- context = new DefaultCallContextFactory(clock).createCallContext(callContext.getTenantId(), "Unit test", CallOrigin.TEST, UserType.TEST);
- tenantContext = Mockito.mock(TenantContext.class);
+ invoiceId = invoiceUtil.generateRegularInvoice(account, clock.getUTCNow());
}
@Test(groups = "slow")
public void testPostExternalChargeOnNewInvoice() throws Exception {
// Initial account balance
- final BigDecimal accountBalance = invoiceUserApi.getAccountBalance(accountId, tenantContext);
+ final BigDecimal accountBalance = invoiceUserApi.getAccountBalance(accountId, callContext);
// Post an external charge
final BigDecimal externalChargeAmount = BigDecimal.TEN;
final InvoiceItem externalChargeInvoiceItem = invoiceUserApi.insertExternalCharge(accountId, externalChargeAmount, UUID.randomUUID().toString(),
- clock.getUTCToday(), accountCurrency, context);
+ clock.getUTCToday(), accountCurrency, callContext);
verifyExternalChargeOnNewInvoice(accountBalance, null, externalChargeAmount, externalChargeInvoiceItem);
}
@Test(groups = "slow")
public void testPostExternalChargeForBundleOnNewInvoice() throws Exception {
// Initial account balance
- final BigDecimal accountBalance = invoiceUserApi.getAccountBalance(accountId, tenantContext);
+ final BigDecimal accountBalance = invoiceUserApi.getAccountBalance(accountId, callContext);
// Post an external charge
final BigDecimal externalChargeAmount = BigDecimal.TEN;
final UUID bundleId = UUID.randomUUID();
final InvoiceItem externalChargeInvoiceItem = invoiceUserApi.insertExternalChargeForBundle(accountId, bundleId, externalChargeAmount,
UUID.randomUUID().toString(), clock.getUTCToday(),
- accountCurrency, context);
+ accountCurrency, callContext);
verifyExternalChargeOnNewInvoice(accountBalance, bundleId, externalChargeAmount, externalChargeInvoiceItem);
}
@@ -100,40 +91,40 @@ public class TestDefaultInvoiceUserApi extends InvoiceApiTestBase {
Assert.assertNull(externalChargeInvoiceItem.getLinkedItemId());
// Verify the adjusted invoice balance
- final BigDecimal adjustedInvoiceBalance = invoiceUserApi.getInvoice(externalChargeInvoiceItem.getInvoiceId(), tenantContext).getBalance();
+ final BigDecimal adjustedInvoiceBalance = invoiceUserApi.getInvoice(externalChargeInvoiceItem.getInvoiceId(), callContext).getBalance();
Assert.assertEquals(adjustedInvoiceBalance.compareTo(externalChargeAmount), 0);
// Verify the adjusted account balance
- final BigDecimal adjustedAccountBalance = invoiceUserApi.getAccountBalance(accountId, tenantContext);
+ final BigDecimal adjustedAccountBalance = invoiceUserApi.getAccountBalance(accountId, callContext);
Assert.assertEquals(adjustedAccountBalance, initialAccountBalance.add(externalChargeAmount));
}
@Test(groups = "slow")
public void testPostExternalChargeOnExistingInvoice() throws Exception {
// Verify the initial invoice balance
- final BigDecimal invoiceBalance = invoiceUserApi.getInvoice(invoiceId, tenantContext).getBalance();
+ final BigDecimal invoiceBalance = invoiceUserApi.getInvoice(invoiceId, callContext).getBalance();
Assert.assertEquals(invoiceBalance.compareTo(BigDecimal.ZERO), 1);
// Verify the initial account balance
- final BigDecimal accountBalance = invoiceUserApi.getAccountBalance(accountId, tenantContext);
+ final BigDecimal accountBalance = invoiceUserApi.getAccountBalance(accountId, callContext);
Assert.assertEquals(accountBalance, invoiceBalance);
// Post an external charge
final BigDecimal externalChargeAmount = BigDecimal.TEN;
final InvoiceItem externalChargeInvoiceItem = invoiceUserApi.insertExternalChargeForInvoice(accountId, invoiceId,
externalChargeAmount, UUID.randomUUID().toString(),
- clock.getUTCToday(), accountCurrency, context);
+ clock.getUTCToday(), accountCurrency, callContext);
verifyExternalChargeOnExistingInvoice(invoiceBalance, null, externalChargeAmount, externalChargeInvoiceItem);
}
@Test(groups = "slow")
public void testPostExternalChargeForBundleOnExistingInvoice() throws Exception {
// Verify the initial invoice balance
- final BigDecimal invoiceBalance = invoiceUserApi.getInvoice(invoiceId, tenantContext).getBalance();
+ final BigDecimal invoiceBalance = invoiceUserApi.getInvoice(invoiceId, callContext).getBalance();
Assert.assertEquals(invoiceBalance.compareTo(BigDecimal.ZERO), 1);
// Verify the initial account balance
- final BigDecimal accountBalance = invoiceUserApi.getAccountBalance(accountId, tenantContext);
+ final BigDecimal accountBalance = invoiceUserApi.getAccountBalance(accountId, callContext);
Assert.assertEquals(accountBalance, invoiceBalance);
// Post an external charge
@@ -141,7 +132,7 @@ public class TestDefaultInvoiceUserApi extends InvoiceApiTestBase {
final UUID bundleId = UUID.randomUUID();
final InvoiceItem externalChargeInvoiceItem = invoiceUserApi.insertExternalChargeForInvoiceAndBundle(accountId, invoiceId, bundleId,
externalChargeAmount, UUID.randomUUID().toString(),
- clock.getUTCToday(), accountCurrency, context);
+ clock.getUTCToday(), accountCurrency, callContext);
verifyExternalChargeOnExistingInvoice(invoiceBalance, bundleId, externalChargeAmount, externalChargeInvoiceItem);
}
@@ -156,27 +147,27 @@ public class TestDefaultInvoiceUserApi extends InvoiceApiTestBase {
Assert.assertNull(externalChargeInvoiceItem.getLinkedItemId());
// Verify the adjusted invoice balance
- final BigDecimal adjustedInvoiceBalance = invoiceUserApi.getInvoice(invoiceId, tenantContext).getBalance();
+ final BigDecimal adjustedInvoiceBalance = invoiceUserApi.getInvoice(invoiceId, callContext).getBalance();
Assert.assertEquals(adjustedInvoiceBalance.compareTo(initialInvoiceBalance.add(externalChargeAmount)), 0);
// Verify the adjusted account balance
- final BigDecimal adjustedAccountBalance = invoiceUserApi.getAccountBalance(accountId, tenantContext);
+ final BigDecimal adjustedAccountBalance = invoiceUserApi.getAccountBalance(accountId, callContext);
Assert.assertEquals(adjustedAccountBalance, adjustedInvoiceBalance);
}
@Test(groups = "slow")
public void testAdjustFullInvoice() throws Exception {
// Verify the initial invoice balance
- final BigDecimal invoiceBalance = invoiceUserApi.getInvoice(invoiceId, tenantContext).getBalance();
+ final BigDecimal invoiceBalance = invoiceUserApi.getInvoice(invoiceId, callContext).getBalance();
Assert.assertEquals(invoiceBalance.compareTo(BigDecimal.ZERO), 1);
// Verify the initial account balance
- final BigDecimal accountBalance = invoiceUserApi.getAccountBalance(accountId, tenantContext);
+ final BigDecimal accountBalance = invoiceUserApi.getAccountBalance(accountId, callContext);
Assert.assertEquals(accountBalance, invoiceBalance);
// Adjust the invoice for the full amount
final InvoiceItem creditInvoiceItem = invoiceUserApi.insertCreditForInvoice(accountId, invoiceId, invoiceBalance,
- clock.getUTCToday(), accountCurrency, context);
+ clock.getUTCToday(), accountCurrency, callContext);
Assert.assertEquals(creditInvoiceItem.getInvoiceId(), invoiceId);
Assert.assertEquals(creditInvoiceItem.getInvoiceItemType(), InvoiceItemType.CREDIT_ADJ);
Assert.assertEquals(creditInvoiceItem.getAccountId(), accountId);
@@ -185,28 +176,28 @@ public class TestDefaultInvoiceUserApi extends InvoiceApiTestBase {
Assert.assertNull(creditInvoiceItem.getLinkedItemId());
// Verify the adjusted invoice balance
- final BigDecimal adjustedInvoiceBalance = invoiceUserApi.getInvoice(invoiceId, tenantContext).getBalance();
+ final BigDecimal adjustedInvoiceBalance = invoiceUserApi.getInvoice(invoiceId, callContext).getBalance();
Assert.assertEquals(adjustedInvoiceBalance.compareTo(BigDecimal.ZERO), 0);
// Verify the adjusted account balance
- final BigDecimal adjustedAccountBalance = invoiceUserApi.getAccountBalance(accountId, tenantContext);
+ final BigDecimal adjustedAccountBalance = invoiceUserApi.getAccountBalance(accountId, callContext);
Assert.assertEquals(adjustedAccountBalance, adjustedInvoiceBalance);
}
@Test(groups = "slow")
public void testAdjustPartialInvoice() throws Exception {
// Verify the initial invoice balance
- final BigDecimal invoiceBalance = invoiceUserApi.getInvoice(invoiceId, tenantContext).getBalance();
+ final BigDecimal invoiceBalance = invoiceUserApi.getInvoice(invoiceId, callContext).getBalance();
Assert.assertEquals(invoiceBalance.compareTo(BigDecimal.ZERO), 1);
// Verify the initial account balance
- final BigDecimal accountBalance = invoiceUserApi.getAccountBalance(accountId, tenantContext);
+ final BigDecimal accountBalance = invoiceUserApi.getAccountBalance(accountId, callContext);
Assert.assertEquals(accountBalance, invoiceBalance);
// Adjust the invoice for a fraction of the balance
final BigDecimal creditAmount = invoiceBalance.divide(BigDecimal.TEN);
final InvoiceItem creditInvoiceItem = invoiceUserApi.insertCreditForInvoice(accountId, invoiceId, creditAmount,
- clock.getUTCToday(), accountCurrency, context);
+ clock.getUTCToday(), accountCurrency, callContext);
Assert.assertEquals(creditInvoiceItem.getInvoiceId(), invoiceId);
Assert.assertEquals(creditInvoiceItem.getInvoiceItemType(), InvoiceItemType.CREDIT_ADJ);
Assert.assertEquals(creditInvoiceItem.getAccountId(), accountId);
@@ -215,19 +206,19 @@ public class TestDefaultInvoiceUserApi extends InvoiceApiTestBase {
Assert.assertNull(creditInvoiceItem.getLinkedItemId());
// Verify the adjusted invoice balance
- final BigDecimal adjustedInvoiceBalance = invoiceUserApi.getInvoice(invoiceId, tenantContext).getBalance();
+ final BigDecimal adjustedInvoiceBalance = invoiceUserApi.getInvoice(invoiceId, callContext).getBalance();
// Note! The invoice code will round (see InvoiceItemList)
verifyAdjustedInvoiceBalance(invoiceBalance, creditAmount, adjustedInvoiceBalance);
// Verify the adjusted account balance
- final BigDecimal adjustedAccountBalance = invoiceUserApi.getAccountBalance(accountId, tenantContext);
+ final BigDecimal adjustedAccountBalance = invoiceUserApi.getAccountBalance(accountId, callContext);
Assert.assertEquals(adjustedAccountBalance, adjustedInvoiceBalance);
}
@Test(groups = "slow")
public void testCantAdjustInvoiceWithNegativeAmount() throws Exception {
try {
- invoiceUserApi.insertCreditForInvoice(accountId, invoiceId, BigDecimal.TEN.negate(), clock.getUTCToday(), accountCurrency, context);
+ invoiceUserApi.insertCreditForInvoice(accountId, invoiceId, BigDecimal.TEN.negate(), clock.getUTCToday(), accountCurrency, callContext);
Assert.fail("Should not have been able to adjust an invoice with a negative amount");
} catch (InvoiceApiException e) {
Assert.assertEquals(e.getCode(), ErrorCode.CREDIT_AMOUNT_INVALID.getCode());
@@ -236,21 +227,21 @@ public class TestDefaultInvoiceUserApi extends InvoiceApiTestBase {
@Test(groups = "slow")
public void testAdjustFullInvoiceItem() throws Exception {
- final InvoiceItem invoiceItem = invoiceUserApi.getInvoice(invoiceId, tenantContext).getInvoiceItems().get(0);
+ final InvoiceItem invoiceItem = invoiceUserApi.getInvoice(invoiceId, callContext).getInvoiceItems().get(0);
// Verify we picked a non zero item
Assert.assertEquals(invoiceItem.getAmount().compareTo(BigDecimal.ZERO), 1);
// Verify the initial invoice balance
- final BigDecimal invoiceBalance = invoiceUserApi.getInvoice(invoiceId, tenantContext).getBalance();
+ final BigDecimal invoiceBalance = invoiceUserApi.getInvoice(invoiceId, callContext).getBalance();
Assert.assertEquals(invoiceBalance.compareTo(BigDecimal.ZERO), 1);
// Verify the initial account balance
- final BigDecimal accountBalance = invoiceUserApi.getAccountBalance(accountId, tenantContext);
+ final BigDecimal accountBalance = invoiceUserApi.getAccountBalance(accountId, callContext);
Assert.assertEquals(accountBalance, invoiceBalance);
// Adjust the invoice for the full amount
final InvoiceItem adjInvoiceItem = invoiceUserApi.insertInvoiceItemAdjustment(accountId, invoiceId, invoiceItem.getId(),
- clock.getUTCToday(), context);
+ clock.getUTCToday(), callContext);
Assert.assertEquals(adjInvoiceItem.getInvoiceId(), invoiceId);
Assert.assertEquals(adjInvoiceItem.getInvoiceItemType(), InvoiceItemType.ITEM_ADJ);
Assert.assertEquals(adjInvoiceItem.getAccountId(), accountId);
@@ -259,34 +250,34 @@ public class TestDefaultInvoiceUserApi extends InvoiceApiTestBase {
Assert.assertEquals(adjInvoiceItem.getLinkedItemId(), invoiceItem.getId());
// Verify the adjusted invoice balance
- final BigDecimal adjustedInvoiceBalance = invoiceUserApi.getInvoice(invoiceId, tenantContext).getBalance();
+ final BigDecimal adjustedInvoiceBalance = invoiceUserApi.getInvoice(invoiceId, callContext).getBalance();
// Note! The invoice code will round (see InvoiceItemList)
verifyAdjustedInvoiceBalance(invoiceBalance, invoiceItem.getAmount(), adjustedInvoiceBalance);
// Verify the adjusted account balance
- final BigDecimal adjustedAccountBalance = invoiceUserApi.getAccountBalance(accountId, tenantContext);
+ final BigDecimal adjustedAccountBalance = invoiceUserApi.getAccountBalance(accountId, callContext);
Assert.assertEquals(adjustedAccountBalance, adjustedInvoiceBalance);
}
@Test(groups = "slow")
public void testAdjustPartialInvoiceItem() throws Exception {
- final InvoiceItem invoiceItem = invoiceUserApi.getInvoice(invoiceId, tenantContext).getInvoiceItems().get(0);
+ final InvoiceItem invoiceItem = invoiceUserApi.getInvoice(invoiceId, callContext).getInvoiceItems().get(0);
// Verify we picked a non zero item
Assert.assertEquals(invoiceItem.getAmount().compareTo(BigDecimal.ZERO), 1);
// Verify the initial invoice balance
- final BigDecimal invoiceBalance = invoiceUserApi.getInvoice(invoiceId, tenantContext).getBalance();
+ final BigDecimal invoiceBalance = invoiceUserApi.getInvoice(invoiceId, callContext).getBalance();
Assert.assertEquals(invoiceBalance.compareTo(BigDecimal.ZERO), 1);
// Verify the initial account balance
- final BigDecimal accountBalance = invoiceUserApi.getAccountBalance(accountId, tenantContext);
+ final BigDecimal accountBalance = invoiceUserApi.getAccountBalance(accountId, callContext);
Assert.assertEquals(accountBalance, invoiceBalance);
// Adjust the invoice for a fraction of the balance
final BigDecimal adjAmount = invoiceItem.getAmount().divide(BigDecimal.TEN);
final InvoiceItem adjInvoiceItem = invoiceUserApi.insertInvoiceItemAdjustment(accountId, invoiceId, invoiceItem.getId(),
clock.getUTCToday(), adjAmount, accountCurrency,
- context);
+ callContext);
Assert.assertEquals(adjInvoiceItem.getInvoiceId(), invoiceId);
Assert.assertEquals(adjInvoiceItem.getInvoiceItemType(), InvoiceItemType.ITEM_ADJ);
Assert.assertEquals(adjInvoiceItem.getAccountId(), accountId);
@@ -295,22 +286,22 @@ public class TestDefaultInvoiceUserApi extends InvoiceApiTestBase {
Assert.assertEquals(adjInvoiceItem.getLinkedItemId(), invoiceItem.getId());
// Verify the adjusted invoice balance
- final BigDecimal adjustedInvoiceBalance = invoiceUserApi.getInvoice(invoiceId, tenantContext).getBalance();
+ final BigDecimal adjustedInvoiceBalance = invoiceUserApi.getInvoice(invoiceId, callContext).getBalance();
// Note! The invoice code will round (see InvoiceItemList)
verifyAdjustedInvoiceBalance(invoiceBalance, adjAmount, adjustedInvoiceBalance);
// Verify the adjusted account balance
- final BigDecimal adjustedAccountBalance = invoiceUserApi.getAccountBalance(accountId, tenantContext);
+ final BigDecimal adjustedAccountBalance = invoiceUserApi.getAccountBalance(accountId, callContext);
Assert.assertEquals(adjustedAccountBalance, adjustedInvoiceBalance);
}
@Test(groups = "slow")
public void testCantAdjustInvoiceItemWithNegativeAmount() throws Exception {
- final InvoiceItem invoiceItem = invoiceUserApi.getInvoice(invoiceId, tenantContext).getInvoiceItems().get(0);
+ final InvoiceItem invoiceItem = invoiceUserApi.getInvoice(invoiceId, callContext).getInvoiceItems().get(0);
try {
invoiceUserApi.insertInvoiceItemAdjustment(accountId, invoiceId, invoiceItem.getId(), clock.getUTCToday(),
- BigDecimal.TEN.negate(), accountCurrency, context);
+ BigDecimal.TEN.negate(), accountCurrency, callContext);
Assert.fail("Should not have been able to adjust an item with a negative amount");
} catch (InvoiceApiException e) {
Assert.assertEquals(e.getCode(), ErrorCode.INVOICE_ITEM_ADJUSTMENT_AMOUNT_INVALID.getCode());
@@ -328,12 +319,12 @@ public class TestDefaultInvoiceUserApi extends InvoiceApiTestBase {
public void testAddRemoveWrittenOffTag() throws InvoiceApiException, TagApiException {
invoiceUserApi.tagInvoiceAsWrittenOff(invoiceId, callContext);
- List<Tag> tags = tagUserApi.getTags(invoiceId, ObjectType.INVOICE, tenantContext);
+ List<Tag> tags = tagUserApi.getTags(invoiceId, ObjectType.INVOICE, callContext);
assertEquals(tags.size(), 1);
assertEquals(tags.get(0).getTagDefinitionId(), ControlTagType.WRITTEN_OFF.getId());
invoiceUserApi.tagInvoiceAsNotWrittenOff(invoiceId, callContext);
- tags = tagUserApi.getTags(invoiceId, ObjectType.INVOICE, tenantContext);
+ tags = tagUserApi.getTags(invoiceId, ObjectType.INVOICE, callContext);
assertEquals(tags.size(), 0);
}
}
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 b9e6825..d3fa3f2 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
@@ -16,6 +16,8 @@
package com.ning.billing.invoice.dao;
+import static com.ning.billing.invoice.TestInvoiceUtil.*;
+
import java.math.BigDecimal;
import java.util.ArrayList;
import java.util.Collection;
@@ -44,6 +46,7 @@ import com.ning.billing.catalog.api.Plan;
import com.ning.billing.catalog.api.PlanPhase;
import com.ning.billing.entitlement.api.SubscriptionTransitionType;
import com.ning.billing.entitlement.api.user.Subscription;
+import com.ning.billing.invoice.InvoiceTestSuiteWithEmbeddedDB;
import com.ning.billing.invoice.MockBillingEventSet;
import com.ning.billing.invoice.api.Invoice;
import com.ning.billing.invoice.api.InvoiceApiException;
@@ -71,17 +74,17 @@ import static org.testng.Assert.assertNotNull;
import static org.testng.Assert.assertNull;
import static org.testng.Assert.assertTrue;
-public class TestInvoiceDao extends InvoiceDaoTestBase {
+public class TestInvoiceDao extends InvoiceTestSuiteWithEmbeddedDB {
@Test(groups = "slow")
public void testSimple() throws Exception {
final UUID accountId = UUID.randomUUID();
final Invoice invoice = new DefaultInvoice(accountId, clock.getUTCToday(), clock.getUTCToday(), Currency.USD);
- createInvoice(invoice, true, internalCallContext);
+ invoiceUtil.createInvoice(invoice, true, internalCallContext);
final InvoiceModelDao retrievedInvoice = invoiceDao.getById(invoice.getId(), internalCallContext);
- checkInvoicesEqual(retrievedInvoice, invoice);
- checkInvoicesEqual(invoiceDao.getByNumber(retrievedInvoice.getInvoiceNumber(), internalCallContext), invoice);
+ invoiceUtil.checkInvoicesEqual(retrievedInvoice, invoice);
+ invoiceUtil.checkInvoicesEqual(invoiceDao.getByNumber(retrievedInvoice.getInvoiceNumber(), internalCallContext), invoice);
}
@Test(groups = "slow")
@@ -90,7 +93,7 @@ public class TestInvoiceDao extends InvoiceDaoTestBase {
final Invoice invoice = new DefaultInvoice(accountId, clock.getUTCToday(), clock.getUTCToday(), Currency.USD);
final LocalDate invoiceDate = invoice.getInvoiceDate();
- createInvoice(invoice, true, internalCallContext);
+ invoiceUtil.createInvoice(invoice, true, internalCallContext);
final List<InvoiceModelDao> invoices = invoiceDao.getInvoicesByAccount(accountId, internalCallContext);
assertNotNull(invoices);
@@ -116,7 +119,7 @@ public class TestInvoiceDao extends InvoiceDaoTestBase {
new BigDecimal("21.00"), new BigDecimal("7.00"), Currency.USD);
invoice.addInvoiceItem(invoiceItem);
- createInvoice(invoice, true, internalCallContext);
+ invoiceUtil.createInvoice(invoice, true, internalCallContext);
final InvoiceModelDao savedInvoice = invoiceDao.getById(invoiceId, internalCallContext);
assertNotNull(savedInvoice);
@@ -167,7 +170,7 @@ public class TestInvoiceDao extends InvoiceDaoTestBase {
// Create invoice 1 (subscriptions 1-4)
final Invoice invoice1 = new DefaultInvoice(accountId, clock.getUTCToday(), targetDate, Currency.USD);
- createInvoice(invoice1, true, internalCallContext);
+ invoiceUtil.createInvoice(invoice1, true, internalCallContext);
final UUID invoiceId1 = invoice1.getId();
@@ -176,23 +179,23 @@ public class TestInvoiceDao extends InvoiceDaoTestBase {
final RecurringInvoiceItem item1 = new RecurringInvoiceItem(invoiceId1, accountId, bundleId, subscriptionId1, "test plan", "test A", startDate, endDate,
rate1, rate1, Currency.USD);
- createInvoiceItem(item1, internalCallContext);
+ invoiceUtil.createInvoiceItem(item1, internalCallContext);
final RecurringInvoiceItem item2 = new RecurringInvoiceItem(invoiceId1, accountId, bundleId, subscriptionId2, "test plan", "test B", startDate, endDate,
rate2, rate2, Currency.USD);
- createInvoiceItem(item2, internalCallContext);
+ invoiceUtil.createInvoiceItem(item2, internalCallContext);
final RecurringInvoiceItem item3 = new RecurringInvoiceItem(invoiceId1, accountId, bundleId, subscriptionId3, "test plan", "test C", startDate, endDate,
rate3, rate3, Currency.USD);
- createInvoiceItem(item3, internalCallContext);
+ invoiceUtil.createInvoiceItem(item3, internalCallContext);
final RecurringInvoiceItem item4 = new RecurringInvoiceItem(invoiceId1, accountId, bundleId, subscriptionId4, "test plan", "test D", startDate, endDate,
rate4, rate4, Currency.USD);
- createInvoiceItem(item4, internalCallContext);
+ invoiceUtil.createInvoiceItem(item4, internalCallContext);
// Create invoice 2 (subscriptions 1-3)
final DefaultInvoice invoice2 = new DefaultInvoice(accountId, clock.getUTCToday(), targetDate, Currency.USD);
- createInvoice(invoice2, true, internalCallContext);
+ invoiceUtil.createInvoice(invoice2, true, internalCallContext);
final UUID invoiceId2 = invoice2.getId();
@@ -201,15 +204,15 @@ public class TestInvoiceDao extends InvoiceDaoTestBase {
final RecurringInvoiceItem item5 = new RecurringInvoiceItem(invoiceId2, accountId, bundleId, subscriptionId1, "test plan", "test phase A", startDate, endDate,
rate1, rate1, Currency.USD);
- createInvoiceItem(item5, internalCallContext);
+ invoiceUtil.createInvoiceItem(item5, internalCallContext);
final RecurringInvoiceItem item6 = new RecurringInvoiceItem(invoiceId2, accountId, bundleId, subscriptionId2, "test plan", "test phase B", startDate, endDate,
rate2, rate2, Currency.USD);
- createInvoiceItem(item6, internalCallContext);
+ invoiceUtil.createInvoiceItem(item6, internalCallContext);
final RecurringInvoiceItem item7 = new RecurringInvoiceItem(invoiceId2, accountId, bundleId, subscriptionId3, "test plan", "test phase C", startDate, endDate,
rate3, rate3, Currency.USD);
- createInvoiceItem(item7, internalCallContext);
+ invoiceUtil.createInvoiceItem(item7, internalCallContext);
// Check that each subscription returns the correct number of invoices
final List<InvoiceModelDao> items1 = invoiceDao.getInvoicesBySubscription(subscriptionId1, internalCallContext);
@@ -243,7 +246,7 @@ public class TestInvoiceDao extends InvoiceDaoTestBase {
// Create invoice 1 (subscriptions 1-4)
final Invoice invoice1 = new DefaultInvoice(accountId, clock.getUTCToday(), targetDate, Currency.USD);
- createInvoice(invoice1, true, internalCallContext);
+ invoiceUtil.createInvoice(invoice1, true, internalCallContext);
final UUID invoiceId1 = invoice1.getId();
@@ -252,23 +255,23 @@ public class TestInvoiceDao extends InvoiceDaoTestBase {
final FixedPriceInvoiceItem item1 = new FixedPriceInvoiceItem(invoiceId1, accountId, bundleId, subscriptionId1, "test plan", "test A", startDate,
rate1, Currency.USD);
- createInvoiceItem(item1, internalCallContext);
+ invoiceUtil.createInvoiceItem(item1, internalCallContext);
final FixedPriceInvoiceItem item2 = new FixedPriceInvoiceItem(invoiceId1, accountId, bundleId, subscriptionId2, "test plan", "test B", startDate,
rate2, Currency.USD);
- createInvoiceItem(item2, internalCallContext);
+ invoiceUtil.createInvoiceItem(item2, internalCallContext);
final FixedPriceInvoiceItem item3 = new FixedPriceInvoiceItem(invoiceId1, accountId, bundleId, subscriptionId3, "test plan", "test C", startDate,
rate3, Currency.USD);
- createInvoiceItem(item3, internalCallContext);
+ invoiceUtil.createInvoiceItem(item3, internalCallContext);
final FixedPriceInvoiceItem item4 = new FixedPriceInvoiceItem(invoiceId1, accountId, bundleId, subscriptionId4, "test plan", "test D", startDate,
rate4, Currency.USD);
- createInvoiceItem(item4, internalCallContext);
+ invoiceUtil.createInvoiceItem(item4, internalCallContext);
// create invoice 2 (subscriptions 1-3)
final DefaultInvoice invoice2 = new DefaultInvoice(accountId, clock.getUTCToday(), targetDate, Currency.USD);
- createInvoice(invoice2, true, internalCallContext);
+ invoiceUtil.createInvoice(invoice2, true, internalCallContext);
final UUID invoiceId2 = invoice2.getId();
@@ -276,15 +279,15 @@ public class TestInvoiceDao extends InvoiceDaoTestBase {
final FixedPriceInvoiceItem item5 = new FixedPriceInvoiceItem(invoiceId2, accountId, bundleId, subscriptionId1, "test plan", "test phase A", startDate,
rate1, Currency.USD);
- createInvoiceItem(item5, internalCallContext);
+ invoiceUtil.createInvoiceItem(item5, internalCallContext);
final FixedPriceInvoiceItem item6 = new FixedPriceInvoiceItem(invoiceId2, accountId, bundleId, subscriptionId2, "test plan", "test phase B", startDate,
rate2, Currency.USD);
- createInvoiceItem(item6, internalCallContext);
+ invoiceUtil.createInvoiceItem(item6, internalCallContext);
final FixedPriceInvoiceItem item7 = new FixedPriceInvoiceItem(invoiceId2, accountId, bundleId, subscriptionId3, "test plan", "test phase C", startDate,
rate3, Currency.USD);
- createInvoiceItem(item7, internalCallContext);
+ invoiceUtil.createInvoiceItem(item7, internalCallContext);
// check that each subscription returns the correct number of invoices
final List<InvoiceModelDao> items1 = invoiceDao.getInvoicesBySubscription(subscriptionId1, internalCallContext);
@@ -318,7 +321,7 @@ public class TestInvoiceDao extends InvoiceDaoTestBase {
// Create invoice 1 (subscriptions 1-4)
final Invoice invoice1 = new DefaultInvoice(accountId, clock.getUTCToday(), targetDate, Currency.USD);
- createInvoice(invoice1, true, internalCallContext);
+ invoiceUtil.createInvoice(invoice1, true, internalCallContext);
final UUID invoiceId1 = invoice1.getId();
@@ -327,39 +330,39 @@ public class TestInvoiceDao extends InvoiceDaoTestBase {
final RecurringInvoiceItem recurringItem1 = new RecurringInvoiceItem(invoiceId1, accountId, bundleId, subscriptionId1, "test plan", "test A", startDate, endDate,
rate1, rate1, Currency.USD);
- createInvoiceItem(recurringItem1, internalCallContext);
+ invoiceUtil.createInvoiceItem(recurringItem1, internalCallContext);
final RecurringInvoiceItem recurringItem2 = new RecurringInvoiceItem(invoiceId1, accountId, bundleId, subscriptionId2, "test plan", "test B", startDate, endDate,
rate2, rate2, Currency.USD);
- createInvoiceItem(recurringItem2, internalCallContext);
+ invoiceUtil.createInvoiceItem(recurringItem2, internalCallContext);
final RecurringInvoiceItem recurringItem3 = new RecurringInvoiceItem(invoiceId1, accountId, bundleId, subscriptionId3, "test plan", "test C", startDate, endDate,
rate3, rate3, Currency.USD);
- createInvoiceItem(recurringItem3, internalCallContext);
+ invoiceUtil.createInvoiceItem(recurringItem3, internalCallContext);
final RecurringInvoiceItem recurringItem4 = new RecurringInvoiceItem(invoiceId1, accountId, bundleId, subscriptionId4, "test plan", "test D", startDate, endDate,
rate4, rate4, Currency.USD);
- createInvoiceItem(recurringItem4, internalCallContext);
+ invoiceUtil.createInvoiceItem(recurringItem4, internalCallContext);
final FixedPriceInvoiceItem fixedItem1 = new FixedPriceInvoiceItem(invoiceId1, accountId, bundleId, subscriptionId1, "test plan", "test A", startDate,
rate1, Currency.USD);
- createInvoiceItem(fixedItem1, internalCallContext);
+ invoiceUtil.createInvoiceItem(fixedItem1, internalCallContext);
final FixedPriceInvoiceItem fixedItem2 = new FixedPriceInvoiceItem(invoiceId1, accountId, bundleId, subscriptionId2, "test plan", "test B", startDate,
rate2, Currency.USD);
- createInvoiceItem(fixedItem2, internalCallContext);
+ invoiceUtil.createInvoiceItem(fixedItem2, internalCallContext);
final FixedPriceInvoiceItem fixedItem3 = new FixedPriceInvoiceItem(invoiceId1, accountId, bundleId, subscriptionId3, "test plan", "test C", startDate,
rate3, Currency.USD);
- createInvoiceItem(fixedItem3, internalCallContext);
+ invoiceUtil.createInvoiceItem(fixedItem3, internalCallContext);
final FixedPriceInvoiceItem fixedItem4 = new FixedPriceInvoiceItem(invoiceId1, accountId, bundleId, subscriptionId4, "test plan", "test D", startDate,
rate4, Currency.USD);
- createInvoiceItem(fixedItem4, internalCallContext);
+ invoiceUtil.createInvoiceItem(fixedItem4, internalCallContext);
// create invoice 2 (subscriptions 1-3)
final DefaultInvoice invoice2 = new DefaultInvoice(accountId, clock.getUTCToday(), targetDate, Currency.USD);
- createInvoice(invoice2, true, internalCallContext);
+ invoiceUtil.createInvoice(invoice2, true, internalCallContext);
final UUID invoiceId2 = invoice2.getId();
@@ -368,26 +371,26 @@ public class TestInvoiceDao extends InvoiceDaoTestBase {
final RecurringInvoiceItem recurringItem5 = new RecurringInvoiceItem(invoiceId2, accountId, bundleId, subscriptionId1, "test plan", "test phase A", startDate, endDate,
rate1, rate1, Currency.USD);
- createInvoiceItem(recurringItem5, internalCallContext);
+ invoiceUtil.createInvoiceItem(recurringItem5, internalCallContext);
final RecurringInvoiceItem recurringItem6 = new RecurringInvoiceItem(invoiceId2, accountId, bundleId, subscriptionId2, "test plan", "test phase B", startDate, endDate,
rate2, rate2, Currency.USD);
- createInvoiceItem(recurringItem6, internalCallContext);
+ invoiceUtil.createInvoiceItem(recurringItem6, internalCallContext);
final RecurringInvoiceItem recurringItem7 = new RecurringInvoiceItem(invoiceId2, accountId, bundleId, subscriptionId3, "test plan", "test phase C", startDate, endDate,
rate3, rate3, Currency.USD);
- createInvoiceItem(recurringItem7, internalCallContext);
+ invoiceUtil.createInvoiceItem(recurringItem7, internalCallContext);
final FixedPriceInvoiceItem fixedItem5 = new FixedPriceInvoiceItem(invoiceId2, accountId, bundleId, subscriptionId1, "test plan", "test phase A", startDate,
rate1, Currency.USD);
- createInvoiceItem(fixedItem5, internalCallContext);
+ invoiceUtil.createInvoiceItem(fixedItem5, internalCallContext);
final FixedPriceInvoiceItem fixedItem6 = new FixedPriceInvoiceItem(invoiceId2, accountId, bundleId, subscriptionId2, "test plan", "test phase B", startDate,
rate2, Currency.USD);
- createInvoiceItem(fixedItem6, internalCallContext);
+ invoiceUtil.createInvoiceItem(fixedItem6, internalCallContext);
final FixedPriceInvoiceItem fixedItem7 = new FixedPriceInvoiceItem(invoiceId2, accountId, bundleId, subscriptionId3, "test plan", "test phase C", startDate,
rate3, Currency.USD);
- createInvoiceItem(fixedItem7, internalCallContext);
+ invoiceUtil.createInvoiceItem(fixedItem7, internalCallContext);
// check that each subscription returns the correct number of invoices
final List<InvoiceModelDao> items1 = invoiceDao.getInvoicesBySubscription(subscriptionId1, internalCallContext);
@@ -408,11 +411,11 @@ public class TestInvoiceDao extends InvoiceDaoTestBase {
final UUID accountId = UUID.randomUUID();
final LocalDate targetDate1 = new LocalDate(2011, 10, 6);
final Invoice invoice1 = new DefaultInvoice(accountId, clock.getUTCToday(), targetDate1, Currency.USD);
- createInvoice(invoice1, true, internalCallContext);
+ invoiceUtil.createInvoice(invoice1, true, internalCallContext);
final LocalDate targetDate2 = new LocalDate(2011, 12, 6);
final Invoice invoice2 = new DefaultInvoice(accountId, clock.getUTCToday(), targetDate2, Currency.USD);
- createInvoice(invoice2, true, internalCallContext);
+ invoiceUtil.createInvoice(invoice2, true, internalCallContext);
List<InvoiceModelDao> invoices;
invoices = invoiceDao.getInvoicesByAccount(accountId, new LocalDate(2011, 1, 1), internalCallContext);
@@ -437,7 +440,7 @@ public class TestInvoiceDao extends InvoiceDaoTestBase {
final UUID bundleId = UUID.randomUUID();
final LocalDate targetDate1 = new LocalDate(2011, 10, 6);
final Invoice invoice1 = new DefaultInvoice(accountId, clock.getUTCToday(), targetDate1, Currency.USD);
- createInvoice(invoice1, true, internalCallContext);
+ invoiceUtil.createInvoice(invoice1, true, internalCallContext);
final LocalDate startDate = new LocalDate(2011, 3, 1);
final LocalDate endDate = startDate.plusMonths(1);
@@ -447,15 +450,15 @@ public class TestInvoiceDao extends InvoiceDaoTestBase {
final RecurringInvoiceItem item1 = new RecurringInvoiceItem(invoice1.getId(), accountId, bundleId, UUID.randomUUID(), "test plan", "test phase A", startDate,
endDate, rate1, rate1, Currency.USD);
- createInvoiceItem(item1, internalCallContext);
+ invoiceUtil.createInvoiceItem(item1, internalCallContext);
final RecurringInvoiceItem item2 = new RecurringInvoiceItem(invoice1.getId(), accountId, bundleId, UUID.randomUUID(), "test plan", "test phase B", startDate,
endDate, rate2, rate2, Currency.USD);
- createInvoiceItem(item2, internalCallContext);
+ invoiceUtil.createInvoiceItem(item2, internalCallContext);
final BigDecimal payment1 = new BigDecimal("48.0");
final InvoicePayment payment = new DefaultInvoicePayment(InvoicePaymentType.ATTEMPT, UUID.randomUUID(), invoice1.getId(), new DateTime(), payment1, Currency.USD);
- createPayment(payment, internalCallContext);
+ invoiceUtil.createPayment(payment, internalCallContext);
final BigDecimal balance = invoiceDao.getAccountBalance(accountId, internalCallContext);
assertEquals(balance.compareTo(rate1.add(rate2).subtract(payment1)), 0);
@@ -467,7 +470,7 @@ public class TestInvoiceDao extends InvoiceDaoTestBase {
final UUID bundleId = UUID.randomUUID();
final LocalDate targetDate1 = new LocalDate(2011, 10, 6);
final Invoice invoice1 = new DefaultInvoice(accountId, clock.getUTCToday(), targetDate1, Currency.USD);
- createInvoice(invoice1, true, internalCallContext);
+ invoiceUtil.createInvoice(invoice1, true, internalCallContext);
final LocalDate startDate = new LocalDate(2011, 3, 1);
final LocalDate endDate = startDate.plusMonths(1);
@@ -476,10 +479,10 @@ public class TestInvoiceDao extends InvoiceDaoTestBase {
final RecurringInvoiceItem item1 = new RecurringInvoiceItem(invoice1.getId(), accountId, bundleId, UUID.randomUUID(), "test plan", "test phase A", startDate,
endDate, rate1, rate1, Currency.USD);
- createInvoiceItem(item1, internalCallContext);
+ invoiceUtil.createInvoiceItem(item1, internalCallContext);
final CreditAdjInvoiceItem creditItem = new CreditAdjInvoiceItem(invoice1.getId(), accountId, new LocalDate(), rate1.negate(), Currency.USD);
- createInvoiceItem(creditItem, internalCallContext);
+ invoiceUtil.createInvoiceItem(creditItem, internalCallContext);
final BigDecimal balance = invoiceDao.getAccountBalance(accountId, internalCallContext);
assertEquals(balance.compareTo(BigDecimal.ZERO), 0);
@@ -491,7 +494,7 @@ public class TestInvoiceDao extends InvoiceDaoTestBase {
final UUID bundleId = UUID.randomUUID();
final LocalDate targetDate1 = new LocalDate(2011, 10, 6);
final Invoice invoice1 = new DefaultInvoice(accountId, clock.getUTCToday(), targetDate1, Currency.USD);
- createInvoice(invoice1, true, internalCallContext);
+ invoiceUtil.createInvoice(invoice1, true, internalCallContext);
final LocalDate startDate = new LocalDate(2011, 3, 1);
final LocalDate endDate = startDate.plusMonths(1);
@@ -501,11 +504,11 @@ public class TestInvoiceDao extends InvoiceDaoTestBase {
final RecurringInvoiceItem item1 = new RecurringInvoiceItem(invoice1.getId(), accountId, bundleId, UUID.randomUUID(), "test plan", "test phase A", startDate, endDate,
rate1, rate1, Currency.USD);
- createInvoiceItem(item1, internalCallContext);
+ invoiceUtil.createInvoiceItem(item1, internalCallContext);
final RecurringInvoiceItem item2 = new RecurringInvoiceItem(invoice1.getId(), accountId, bundleId, UUID.randomUUID(), "test plan", "test phase B", startDate, endDate,
rate2, rate2, Currency.USD);
- createInvoiceItem(item2, internalCallContext);
+ invoiceUtil.createInvoiceItem(item2, internalCallContext);
final BigDecimal balance = invoiceDao.getAccountBalance(accountId, internalCallContext);
assertEquals(balance.compareTo(rate1.add(rate2)), 0);
@@ -516,11 +519,11 @@ public class TestInvoiceDao extends InvoiceDaoTestBase {
final UUID accountId = UUID.randomUUID();
final LocalDate targetDate1 = new LocalDate(2011, 10, 6);
final Invoice invoice1 = new DefaultInvoice(accountId, clock.getUTCToday(), targetDate1, Currency.USD);
- createInvoice(invoice1, true, internalCallContext);
+ invoiceUtil.createInvoice(invoice1, true, internalCallContext);
final BigDecimal payment1 = new BigDecimal("48.0");
final InvoicePayment payment = new DefaultInvoicePayment(InvoicePaymentType.ATTEMPT, UUID.randomUUID(), invoice1.getId(), new DateTime(), payment1, Currency.USD);
- createPayment(payment, internalCallContext);
+ invoiceUtil.createPayment(payment, internalCallContext);
final BigDecimal balance = invoiceDao.getAccountBalance(accountId, internalCallContext);
assertEquals(balance.compareTo(BigDecimal.ZERO.subtract(payment1)), 0);
@@ -542,7 +545,7 @@ public class TestInvoiceDao extends InvoiceDaoTestBase {
final UUID bundleId = UUID.randomUUID();
final LocalDate targetDate1 = new LocalDate(2011, 10, 6);
final Invoice invoice1 = new DefaultInvoice(accountId, clock.getUTCToday(), targetDate1, Currency.USD);
- createInvoice(invoice1, true, internalCallContext);
+ invoiceUtil.createInvoice(invoice1, true, internalCallContext);
final LocalDate startDate = new LocalDate(2011, 3, 1);
final LocalDate endDate = startDate.plusMonths(1);
@@ -553,7 +556,7 @@ public class TestInvoiceDao extends InvoiceDaoTestBase {
// Recurring item
final RecurringInvoiceItem item2 = new RecurringInvoiceItem(invoice1.getId(), accountId, bundleId, UUID.randomUUID(), "test plan", "test phase B", startDate,
endDate, rate1, rate1, Currency.USD);
- createInvoiceItem(item2, internalCallContext);
+ invoiceUtil.createInvoiceItem(item2, internalCallContext);
BigDecimal balance = invoiceDao.getAccountBalance(accountId, internalCallContext);
assertEquals(balance.compareTo(new BigDecimal("20.00")), 0);
@@ -561,7 +564,7 @@ public class TestInvoiceDao extends InvoiceDaoTestBase {
final UUID paymentId = UUID.randomUUID();
final BigDecimal payment1 = rate1;
final InvoicePayment payment = new DefaultInvoicePayment(InvoicePaymentType.ATTEMPT, paymentId, invoice1.getId(), new DateTime(), payment1, Currency.USD);
- createPayment(payment, internalCallContext);
+ invoiceUtil.createPayment(payment, internalCallContext);
balance = invoiceDao.getAccountBalance(accountId, internalCallContext);
assertEquals(balance.compareTo(new BigDecimal("0.00")), 0);
@@ -592,7 +595,7 @@ public class TestInvoiceDao extends InvoiceDaoTestBase {
final LocalDate targetDate1 = new LocalDate(2011, 10, 6);
final Invoice invoice = new DefaultInvoice(accountId, clock.getUTCToday(), targetDate1, Currency.USD);
- createInvoice(invoice, true, internalCallContext);
+ invoiceUtil.createInvoice(invoice, true, internalCallContext);
final LocalDate startDate = new LocalDate(2011, 3, 1);
final LocalDate endDate = startDate.plusMonths(1);
@@ -602,7 +605,7 @@ public class TestInvoiceDao extends InvoiceDaoTestBase {
// Recurring item
final RecurringInvoiceItem item2 = new RecurringInvoiceItem(invoice.getId(), accountId, bundleId, UUID.randomUUID(), "test plan", "test phase B", startDate,
endDate, amount, amount, Currency.USD);
- createInvoiceItem(item2, internalCallContext);
+ invoiceUtil.createInvoiceItem(item2, internalCallContext);
BigDecimal balance = invoiceDao.getAccountBalance(accountId, internalCallContext);
assertEquals(balance.compareTo(new BigDecimal("20.00")), 0);
@@ -610,16 +613,16 @@ public class TestInvoiceDao extends InvoiceDaoTestBase {
final UUID paymentId = UUID.randomUUID();
final BigDecimal payment1 = amount;
final InvoicePayment payment = new DefaultInvoicePayment(InvoicePaymentType.ATTEMPT, paymentId, invoice.getId(), new DateTime(), payment1, Currency.USD);
- createPayment(payment, internalCallContext);
+ invoiceUtil.createPayment(payment, internalCallContext);
balance = invoiceDao.getAccountBalance(accountId, internalCallContext);
assertEquals(balance.compareTo(new BigDecimal("0.00")), 0);
// Repair the item (And add CBA item that should be generated)
final InvoiceItem repairItem = new RepairAdjInvoiceItem(invoice.getId(), accountId, startDate, endDate, amount.negate(), Currency.USD, item2.getId());
- createInvoiceItem(repairItem, internalCallContext);
+ invoiceUtil.createInvoiceItem(repairItem, internalCallContext);
final InvoiceItem cbaItem = new CreditBalanceAdjInvoiceItem(invoice.getId(), accountId, startDate, amount, Currency.USD);
- createInvoiceItem(cbaItem, internalCallContext);
+ invoiceUtil.createInvoiceItem(cbaItem, internalCallContext);
final Map<UUID, BigDecimal> itemAdjustment = new HashMap<UUID, BigDecimal>();
itemAdjustment.put(item2.getId(), refundAmount);
@@ -676,7 +679,7 @@ public class TestInvoiceDao extends InvoiceDaoTestBase {
final UUID bundleId = UUID.randomUUID();
final LocalDate targetDate1 = new LocalDate(2011, 10, 6);
final Invoice invoice1 = new DefaultInvoice(accountId, clock.getUTCToday(), targetDate1, Currency.USD);
- createInvoice(invoice1, true, internalCallContext);
+ invoiceUtil.createInvoice(invoice1, true, internalCallContext);
final LocalDate startDate = new LocalDate(2011, 3, 1);
final LocalDate endDate = startDate.plusMonths(1);
@@ -688,7 +691,7 @@ public class TestInvoiceDao extends InvoiceDaoTestBase {
// Fixed Item
final FixedPriceInvoiceItem item1 = new FixedPriceInvoiceItem(invoice1.getId(), accountId, bundleId, UUID.randomUUID(), "test plan", "test phase A", startDate,
amount1, Currency.USD);
- createInvoiceItem(item1, internalCallContext);
+ invoiceUtil.createInvoiceItem(item1, internalCallContext);
BigDecimal balance = invoiceDao.getAccountBalance(accountId, internalCallContext);
assertEquals(balance.compareTo(new BigDecimal("5.00")), 0);
@@ -696,7 +699,7 @@ public class TestInvoiceDao extends InvoiceDaoTestBase {
// Recurring item
final RecurringInvoiceItem item2 = new RecurringInvoiceItem(invoice1.getId(), accountId, bundleId, UUID.randomUUID(), "test plan", "test phase B", startDate,
endDate, rate1, rate1, Currency.USD);
- createInvoiceItem(item2, internalCallContext);
+ invoiceUtil.createInvoiceItem(item2, internalCallContext);
balance = invoiceDao.getAccountBalance(accountId, internalCallContext);
assertEquals(balance.compareTo(new BigDecimal("25.00")), 0);
@@ -704,7 +707,7 @@ public class TestInvoiceDao extends InvoiceDaoTestBase {
final UUID paymentId = UUID.randomUUID();
final BigDecimal payment1 = amount1.add(rate1);
final InvoicePayment payment = new DefaultInvoicePayment(InvoicePaymentType.ATTEMPT, paymentId, invoice1.getId(), new DateTime(), payment1, Currency.USD);
- createPayment(payment, internalCallContext);
+ invoiceUtil.createPayment(payment, internalCallContext);
balance = invoiceDao.getAccountBalance(accountId, internalCallContext);
assertEquals(balance.compareTo(new BigDecimal("0.00")), 0);
@@ -712,14 +715,14 @@ public class TestInvoiceDao extends InvoiceDaoTestBase {
final RepairAdjInvoiceItem item2Repair = new RepairAdjInvoiceItem(invoice1.getId(), accountId, startDate, endDate, rate1.negate(), Currency.USD, item2.getId());
final RecurringInvoiceItem item2Replace = new RecurringInvoiceItem(invoice1.getId(), accountId, bundleId, UUID.randomUUID(), "test plan", "test phase B", startDate,
endDate, rate2, rate2, Currency.USD);
- createInvoiceItem(item2Repair, internalCallContext);
- createInvoiceItem(item2Replace, internalCallContext);
+ invoiceUtil.createInvoiceItem(item2Repair, internalCallContext);
+ invoiceUtil.createInvoiceItem(item2Replace, internalCallContext);
balance = invoiceDao.getAccountBalance(accountId, internalCallContext);
assertEquals(balance.compareTo(new BigDecimal("-10.00")), 0);
// CBA
final CreditBalanceAdjInvoiceItem cbaItem = new CreditBalanceAdjInvoiceItem(invoice1.getId(), accountId, new LocalDate(), balance.negate(), Currency.USD);
- createInvoiceItem(cbaItem, internalCallContext);
+ invoiceUtil.createInvoiceItem(cbaItem, internalCallContext);
balance = invoiceDao.getAccountBalance(accountId, internalCallContext);
assertEquals(balance.compareTo(new BigDecimal("-10.00")), 0);
BigDecimal cba = invoiceDao.getAccountCBA(accountId, internalCallContext);
@@ -763,7 +766,7 @@ public class TestInvoiceDao extends InvoiceDaoTestBase {
final UUID bundleId = UUID.randomUUID();
final LocalDate targetDate1 = new LocalDate(2011, 10, 6);
final Invoice invoice1 = new DefaultInvoice(accountId, clock.getUTCToday(), targetDate1, Currency.USD);
- createInvoice(invoice1, true, internalCallContext);
+ invoiceUtil.createInvoice(invoice1, true, internalCallContext);
final LocalDate startDate = new LocalDate(2011, 3, 1);
final LocalDate endDate = startDate.plusMonths(1);
@@ -775,7 +778,7 @@ public class TestInvoiceDao extends InvoiceDaoTestBase {
// Fixed Item
final FixedPriceInvoiceItem item1 = new FixedPriceInvoiceItem(invoice1.getId(), accountId, bundleId, UUID.randomUUID(), "test plan", "test phase A", startDate,
amount1, Currency.USD);
- createInvoiceItem(item1, internalCallContext);
+ invoiceUtil.createInvoiceItem(item1, internalCallContext);
BigDecimal balance = invoiceDao.getAccountBalance(accountId, internalCallContext);
assertEquals(balance.compareTo(new BigDecimal("5.00")), 0);
@@ -783,14 +786,14 @@ public class TestInvoiceDao extends InvoiceDaoTestBase {
// Recurring item
final RecurringInvoiceItem item2 = new RecurringInvoiceItem(invoice1.getId(), accountId, bundleId, UUID.randomUUID(), "test plan", "test phase B", startDate,
endDate, rate1, rate1, Currency.USD);
- createInvoiceItem(item2, internalCallContext);
+ invoiceUtil.createInvoiceItem(item2, internalCallContext);
balance = invoiceDao.getAccountBalance(accountId, internalCallContext);
assertEquals(balance.compareTo(new BigDecimal("25.00")), 0);
// Pay the whole thing
final BigDecimal payment1 = amount1.add(rate1);
final InvoicePayment payment = new DefaultInvoicePayment(InvoicePaymentType.ATTEMPT, UUID.randomUUID(), invoice1.getId(), new DateTime(), payment1, Currency.USD);
- createPayment(payment, internalCallContext);
+ invoiceUtil.createPayment(payment, internalCallContext);
balance = invoiceDao.getAccountBalance(accountId, internalCallContext);
assertEquals(balance.compareTo(new BigDecimal("0.00")), 0);
@@ -798,14 +801,14 @@ public class TestInvoiceDao extends InvoiceDaoTestBase {
final RepairAdjInvoiceItem item2Repair = new RepairAdjInvoiceItem(invoice1.getId(), accountId, startDate, endDate, rate1.negate(), Currency.USD, item2.getId());
final RecurringInvoiceItem item2Replace = new RecurringInvoiceItem(invoice1.getId(), accountId, bundleId, UUID.randomUUID(), "test plan", "test phase B", startDate,
endDate, rate2, rate2, Currency.USD);
- createInvoiceItem(item2Repair, internalCallContext);
- createInvoiceItem(item2Replace, internalCallContext);
+ invoiceUtil.createInvoiceItem(item2Repair, internalCallContext);
+ invoiceUtil.createInvoiceItem(item2Replace, internalCallContext);
balance = invoiceDao.getAccountBalance(accountId, internalCallContext);
assertEquals(balance.compareTo(new BigDecimal("-10.00")), 0);
// CBA
final CreditBalanceAdjInvoiceItem cbaItem = new CreditBalanceAdjInvoiceItem(invoice1.getId(), accountId, new LocalDate(), balance.negate(), Currency.USD);
- createInvoiceItem(cbaItem, internalCallContext);
+ invoiceUtil.createInvoiceItem(cbaItem, internalCallContext);
balance = invoiceDao.getAccountBalance(accountId, internalCallContext);
assertEquals(balance.compareTo(new BigDecimal("-10.00")), 0);
BigDecimal cba = invoiceDao.getAccountCBA(accountId, internalCallContext);
@@ -813,9 +816,9 @@ public class TestInvoiceDao extends InvoiceDaoTestBase {
// partial REFUND on the payment (along with CBA generated by the system)
final InvoicePayment refund = new DefaultInvoicePayment(UUID.randomUUID(), InvoicePaymentType.ATTEMPT, UUID.randomUUID(), invoice1.getId(), new DateTime(), rate2.negate(), Currency.USD, null, payment.getId());
- createPayment(refund, internalCallContext);
+ invoiceUtil.createPayment(refund, internalCallContext);
final CreditBalanceAdjInvoiceItem cbaItem2 = new CreditBalanceAdjInvoiceItem(invoice1.getId(), accountId, new LocalDate(), rate2.negate(), Currency.USD);
- createInvoiceItem(cbaItem2, internalCallContext);
+ invoiceUtil.createInvoiceItem(cbaItem2, internalCallContext);
balance = invoiceDao.getAccountBalance(accountId, internalCallContext);
assertEquals(balance.compareTo(BigDecimal.ZERO), 0);
@@ -825,11 +828,11 @@ public class TestInvoiceDao extends InvoiceDaoTestBase {
// NEXT RECURRING on invoice 2
final Invoice invoice2 = new DefaultInvoice(accountId, clock.getUTCToday(), targetDate1.plusMonths(1), Currency.USD);
- createInvoice(invoice2, true, internalCallContext);
+ invoiceUtil.createInvoice(invoice2, true, internalCallContext);
final RecurringInvoiceItem nextItem = new RecurringInvoiceItem(invoice2.getId(), accountId, bundleId, UUID.randomUUID(), "test plan", "test bla", startDate.plusMonths(1),
endDate.plusMonths(1), rate2, rate2, Currency.USD);
- createInvoiceItem(nextItem, internalCallContext);
+ invoiceUtil.createInvoiceItem(nextItem, internalCallContext);
balance = invoiceDao.getAccountBalance(accountId, internalCallContext);
assertEquals(balance.compareTo(new BigDecimal("10.00")), 0);
cba = invoiceDao.getAccountCBA(accountId, internalCallContext);
@@ -837,7 +840,7 @@ public class TestInvoiceDao extends InvoiceDaoTestBase {
// FINALLY ISSUE A CREDIT ADJ
final CreditAdjInvoiceItem creditItem = new CreditAdjInvoiceItem(invoice2.getId(), accountId, new LocalDate(), rate2.negate(), Currency.USD);
- createInvoiceItem(creditItem, internalCallContext);
+ invoiceUtil.createInvoiceItem(creditItem, internalCallContext);
balance = invoiceDao.getAccountBalance(accountId, internalCallContext);
assertEquals(balance.compareTo(new BigDecimal("0.00")), 0);
cba = invoiceDao.getAccountCBA(accountId, internalCallContext);
@@ -910,7 +913,7 @@ public class TestInvoiceDao extends InvoiceDaoTestBase {
// Create one invoice with a fixed invoice item
final LocalDate targetDate = new LocalDate(2011, 2, 15);
final Invoice invoice1 = new DefaultInvoice(accountId, clock.getUTCToday(), targetDate, Currency.USD);
- createInvoice(invoice1, true, internalCallContext);
+ invoiceUtil.createInvoice(invoice1, true, internalCallContext);
final LocalDate startDate = new LocalDate(2011, 3, 1);
@@ -919,7 +922,7 @@ public class TestInvoiceDao extends InvoiceDaoTestBase {
// Fixed Item
final FixedPriceInvoiceItem item1 = new FixedPriceInvoiceItem(invoice1.getId(), accountId, bundleId, UUID.randomUUID(), "test plan", "test phase A", startDate,
amount1, Currency.USD);
- createInvoiceItem(item1, internalCallContext);
+ invoiceUtil.createInvoiceItem(item1, internalCallContext);
// Create the credit item
final LocalDate effectiveDate = new LocalDate(2011, 3, 1);
@@ -953,7 +956,7 @@ public class TestInvoiceDao extends InvoiceDaoTestBase {
final UUID bundleId = UUID.randomUUID();
final LocalDate targetDate1 = new LocalDate(2011, 10, 6);
final Invoice invoice1 = new DefaultInvoice(accountId, clock.getUTCToday(), targetDate1, Currency.USD);
- createInvoice(invoice1, true, internalCallContext);
+ invoiceUtil.createInvoice(invoice1, true, internalCallContext);
final LocalDate startDate = new LocalDate(2011, 3, 1);
final LocalDate endDate = startDate.plusMonths(1);
@@ -963,11 +966,11 @@ public class TestInvoiceDao extends InvoiceDaoTestBase {
final RecurringInvoiceItem item1 = new RecurringInvoiceItem(invoice1.getId(), accountId, bundleId, UUID.randomUUID(), "test plan", "test phase A", startDate, endDate,
rate1, rate1, Currency.USD);
- createInvoiceItem(item1, internalCallContext);
+ invoiceUtil.createInvoiceItem(item1, internalCallContext);
final RecurringInvoiceItem item2 = new RecurringInvoiceItem(invoice1.getId(), accountId, bundleId, UUID.randomUUID(), "test plan", "test phase B", startDate, endDate,
rate2, rate2, Currency.USD);
- createInvoiceItem(item2, internalCallContext);
+ invoiceUtil.createInvoiceItem(item2, internalCallContext);
LocalDate upToDate;
Collection<InvoiceModelDao> invoices;
@@ -982,7 +985,7 @@ public class TestInvoiceDao extends InvoiceDaoTestBase {
final LocalDate targetDate2 = new LocalDate(2011, 7, 1);
final Invoice invoice2 = new DefaultInvoice(accountId, clock.getUTCToday(), targetDate2, Currency.USD);
- createInvoice(invoice2, true, internalCallContext);
+ invoiceUtil.createInvoice(invoice2, true, internalCallContext);
final LocalDate startDate2 = new LocalDate(2011, 6, 1);
final LocalDate endDate2 = startDate2.plusMonths(3);
@@ -991,7 +994,7 @@ public class TestInvoiceDao extends InvoiceDaoTestBase {
final RecurringInvoiceItem item3 = new RecurringInvoiceItem(invoice2.getId(), accountId, bundleId, UUID.randomUUID(), "test plan", "test phase C", startDate2, endDate2,
rate3, rate3, Currency.USD);
- createInvoiceItem(item3, internalCallContext);
+ invoiceUtil.createInvoiceItem(item3, internalCallContext);
upToDate = new LocalDate(2011, 1, 1);
invoices = invoiceDao.getUnpaidInvoicesByAccountId(accountId, upToDate, internalCallContext);
@@ -1023,7 +1026,7 @@ public class TestInvoiceDao extends InvoiceDaoTestBase {
final Subscription subscription = getZombieSubscription();
final DateTime effectiveDate1 = new DateTime(2011, 2, 1, 0, 0, 0);
- final BillingEvent event1 = createMockBillingEvent(null, subscription, effectiveDate1, plan1, phase1, null,
+ final BillingEvent event1 = invoiceUtil.createMockBillingEvent(null, subscription, effectiveDate1, plan1, phase1, null,
recurringPrice.getPrice(currency), currency, BillingPeriod.MONTHLY, 1, BillingModeType.IN_ADVANCE,
"testEvent1", 1L, SubscriptionTransitionType.CREATE);
@@ -1041,7 +1044,7 @@ public class TestInvoiceDao extends InvoiceDaoTestBase {
final MockPlan plan2 = new MockPlan(phase2);
final DateTime effectiveDate2 = new DateTime(2011, 2, 15, 0, 0, 0);
- final BillingEvent event2 = createMockBillingEvent(null, subscription, effectiveDate2, plan2, phase2, null,
+ final BillingEvent event2 = invoiceUtil.createMockBillingEvent(null, subscription, effectiveDate2, plan2, phase2, null,
recurringPrice2.getPrice(currency), currency, BillingPeriod.MONTHLY, 1, BillingModeType.IN_ADVANCE,
"testEvent2", 2L, SubscriptionTransitionType.CREATE);
events.add(event2);
@@ -1052,8 +1055,8 @@ public class TestInvoiceDao extends InvoiceDaoTestBase {
assertEquals(invoice2.getBalance(), FIVE);
invoiceList.add(invoice2);
- createInvoice(invoice1, true, internalCallContext);
- createInvoice(invoice2, true, internalCallContext);
+ invoiceUtil.createInvoice(invoice1, true, internalCallContext);
+ invoiceUtil.createInvoice(invoice2, true, internalCallContext);
final InvoiceModelDao savedInvoice1 = invoiceDao.getById(invoice1.getId(), internalCallContext);
assertEquals(InvoiceModelDaoHelper.getBalance(savedInvoice1), ZERO);
@@ -1071,15 +1074,15 @@ public class TestInvoiceDao extends InvoiceDaoTestBase {
final MockPlan plan = new MockPlan(phase);
final Subscription subscription = getZombieSubscription();
- final DateTime effectiveDate = buildDate(2011, 1, 1).toDateTimeAtStartOfDay();
+ final DateTime effectiveDate = invoiceUtil.buildDate(2011, 1, 1).toDateTimeAtStartOfDay();
- final BillingEvent event = createMockBillingEvent(null, subscription, effectiveDate, plan, phase, null,
+ final BillingEvent event = invoiceUtil.createMockBillingEvent(null, subscription, effectiveDate, plan, phase, null,
recurringPrice.getPrice(currency), currency, BillingPeriod.MONTHLY, 15, BillingModeType.IN_ADVANCE,
"testEvent", 1L, SubscriptionTransitionType.CREATE);
final BillingEventSet events = new MockBillingEventSet();
events.add(event);
- final LocalDate targetDate = buildDate(2011, 1, 15);
+ final LocalDate targetDate = invoiceUtil.buildDate(2011, 1, 15);
final Invoice invoice = generator.generateInvoice(UUID.randomUUID(), events, null, targetDate, Currency.USD);
// expect one pro-ration item and one full-period item
@@ -1110,9 +1113,9 @@ public class TestInvoiceDao extends InvoiceDaoTestBase {
final MockPlan plan = new MockPlan();
final Subscription subscription = getZombieSubscription();
- final DateTime effectiveDate1 = buildDate(2011, 1, 1).toDateTimeAtStartOfDay();
+ final DateTime effectiveDate1 = invoiceUtil.buildDate(2011, 1, 1).toDateTimeAtStartOfDay();
- final BillingEvent event1 = createMockBillingEvent(null, subscription, effectiveDate1, plan, phase1, fixedPrice.getPrice(currency),
+ final BillingEvent event1 = invoiceUtil.createMockBillingEvent(null, subscription, effectiveDate1, plan, phase1, fixedPrice.getPrice(currency),
null, currency, BillingPeriod.MONTHLY, 1, BillingModeType.IN_ADVANCE,
"testEvent1", 1L, SubscriptionTransitionType.CREATE);
final BillingEventSet events = new MockBillingEventSet();
@@ -1127,10 +1130,10 @@ public class TestInvoiceDao extends InvoiceDaoTestBase {
final List<Invoice> invoiceList = new ArrayList<Invoice>();
invoiceList.add(invoice1);
- //createInvoice(invoice1, invoice1.getTargetDate().getDayOfMonth(), internalCallContext);
+ //invoiceUtil.createInvoice(invoice1, invoice1.getTargetDate().getDayOfMonth(), internalCallContext);
final DateTime effectiveDate2 = effectiveDate1.plusDays(30);
- final BillingEvent event2 = createMockBillingEvent(null, subscription, effectiveDate2, plan, phase2, null,
+ final BillingEvent event2 = invoiceUtil.createMockBillingEvent(null, subscription, effectiveDate2, plan, phase2, null,
recurringPrice.getPrice(currency), currency, BillingPeriod.MONTHLY, 31, BillingModeType.IN_ADVANCE,
"testEvent2", 2L, SubscriptionTransitionType.PHASE);
events.add(event2);
@@ -1142,7 +1145,7 @@ public class TestInvoiceDao extends InvoiceDaoTestBase {
invoiceList.add(invoice2);
- //createInvoice(invoice2, invoice2.getTargetDate().getDayOfMonth(), internalCallContext);
+ //invoiceUtil.createInvoice(invoice2, invoice2.getTargetDate().getDayOfMonth(), internalCallContext);
final DateTime effectiveDate3 = effectiveDate2.plusMonths(1);
final Invoice invoice3 = generator.generateInvoice(accountId, events, invoiceList, new LocalDate(effectiveDate3), Currency.USD);
@@ -1150,7 +1153,7 @@ public class TestInvoiceDao extends InvoiceDaoTestBase {
assertEquals(invoice3.getNumberOfItems(), 1);
assertEquals(invoice3.getBalance().compareTo(cheapAmount), 0);
- //createInvoice(invoice3, invoice3.getTargetDate().getDayOfMonth(), internalCallContext);
+ //invoiceUtil.createInvoice(invoice3, invoice3.getTargetDate().getDayOfMonth(), internalCallContext);
}
@Test(groups = "slow")
@@ -1175,9 +1178,9 @@ public class TestInvoiceDao extends InvoiceDaoTestBase {
final MockPlan plan = new MockPlan();
final Subscription subscription = getZombieSubscription();
- final DateTime effectiveDate1 = buildDate(2011, 1, 1).toDateTimeAtStartOfDay();
+ final DateTime effectiveDate1 = invoiceUtil.buildDate(2011, 1, 1).toDateTimeAtStartOfDay();
- final BillingEvent event1 = createMockBillingEvent(null, subscription, effectiveDate1, plan, phase1,
+ final BillingEvent event1 = invoiceUtil.createMockBillingEvent(null, subscription, effectiveDate1, plan, phase1,
fixedPrice.getPrice(currency), null, currency,
BillingPeriod.MONTHLY, 1, BillingModeType.IN_ADVANCE,
"testEvent1", 1L, SubscriptionTransitionType.CREATE);
@@ -1185,7 +1188,7 @@ public class TestInvoiceDao extends InvoiceDaoTestBase {
events.add(event1);
final DateTime effectiveDate2 = effectiveDate1.plusDays(30);
- final BillingEvent event2 = createMockBillingEvent(null, subscription, effectiveDate2, plan, phase2, null,
+ final BillingEvent event2 = invoiceUtil.createMockBillingEvent(null, subscription, effectiveDate2, plan, phase2, null,
recurringPrice.getPrice(currency), currency, BillingPeriod.MONTHLY, 31, BillingModeType.IN_ADVANCE,
"testEvent2", 2L, SubscriptionTransitionType.CHANGE);
events.add(event2);
@@ -1195,7 +1198,7 @@ public class TestInvoiceDao extends InvoiceDaoTestBase {
assertEquals(invoice.getNumberOfItems(), 2);
assertEquals(invoice.getBalance().compareTo(cheapAmount), 0);
- createInvoice(invoice, true, internalCallContext);
+ invoiceUtil.createInvoice(invoice, true, internalCallContext);
final InvoiceModelDao savedInvoice = invoiceDao.getById(invoice.getId(), internalCallContext);
assertNotNull(savedInvoice);
@@ -1225,7 +1228,7 @@ public class TestInvoiceDao extends InvoiceDaoTestBase {
recuringStartDate, recuringEndDate, new BigDecimal("239.00"), new BigDecimal("239.00"), Currency.USD);
invoice.addInvoiceItem(invoiceItem);
- createInvoice(invoice, true, internalCallContext);
+ invoiceUtil.createInvoice(invoice, true, internalCallContext);
((ClockMock) clock).addDays(1);
@@ -1260,13 +1263,13 @@ public class TestInvoiceDao extends InvoiceDaoTestBase {
final PlanPhase phase2 = Mockito.mock(PlanPhase.class);
Mockito.when(phase2.getName()).thenReturn("plan-phase2");
- final BillingEvent event1 = createMockBillingEvent(null, subscription, recuringStartDate.toDateTimeAtStartOfDay(), plan, phase1, null,
+ final BillingEvent event1 = invoiceUtil.createMockBillingEvent(null, subscription, recuringStartDate.toDateTimeAtStartOfDay(), plan, phase1, null,
TEN, Currency.USD,
BillingPeriod.MONTHLY, 1, BillingModeType.IN_ADVANCE,
"new-event", 1L, SubscriptionTransitionType.CREATE);
events.add(event1);
final Invoice newInvoice = generator.generateInvoice(UUID.randomUUID(), events, invoices, targetDate, Currency.USD);
- createInvoice(newInvoice, true, internalCallContext);
+ invoiceUtil.createInvoice(newInvoice, true, internalCallContext);
// VERIFY THAT WE STILL HAVE ONLY 2 ITEMS, MENAING THERE WERE NO REPAIR AND NO CBA GENERATED
final Invoice firstInvoice = new DefaultInvoice(invoiceDao.getById(invoiceId, internalCallContext));
@@ -1294,7 +1297,7 @@ public class TestInvoiceDao extends InvoiceDaoTestBase {
final BillingEventSet events = new MockBillingEventSet();
final List<Invoice> invoices = new ArrayList<Invoice>();
- final BillingEvent event1 = createMockBillingEvent(null, subscription, targetDate1, plan, phase1, null,
+ final BillingEvent event1 = invoiceUtil.createMockBillingEvent(null, subscription, targetDate1, plan, phase1, null,
TEN, currency,
BillingPeriod.MONTHLY, 31, BillingModeType.IN_ADVANCE,
"testEvent1", 1L, SubscriptionTransitionType.CHANGE);
@@ -1302,17 +1305,17 @@ public class TestInvoiceDao extends InvoiceDaoTestBase {
Invoice invoice1 = generator.generateInvoice(UUID.randomUUID(), events, invoices, new LocalDate(targetDate1), Currency.USD);
invoices.add(invoice1);
- createInvoice(invoice1, true, internalCallContext);
+ invoiceUtil.createInvoice(invoice1, true, internalCallContext);
invoice1 = new DefaultInvoice(invoiceDao.getById(invoice1.getId(), internalCallContext));
assertNotNull(invoice1.getInvoiceNumber());
- final BillingEvent event2 = createMockBillingEvent(null, subscription, targetDate1, plan, phase2, null,
+ final BillingEvent event2 = invoiceUtil.createMockBillingEvent(null, subscription, targetDate1, plan, phase2, null,
TWENTY, currency,
BillingPeriod.MONTHLY, 31, BillingModeType.IN_ADVANCE,
"testEvent2", 2L, SubscriptionTransitionType.CHANGE);
events.add(event2);
Invoice invoice2 = generator.generateInvoice(UUID.randomUUID(), events, invoices, new LocalDate(targetDate2), Currency.USD);
- createInvoice(invoice2, true, internalCallContext);
+ invoiceUtil.createInvoice(invoice2, true, internalCallContext);
invoice2 = new DefaultInvoice(invoiceDao.getById(invoice2.getId(), internalCallContext));
assertNotNull(invoice2.getInvoiceNumber());
}
@@ -1337,21 +1340,21 @@ public class TestInvoiceDao extends InvoiceDaoTestBase {
final CreditBalanceAdjInvoiceItem creditBalanceAdjInvoiceItem1 = new CreditBalanceAdjInvoiceItem(fixedItem1.getInvoiceId(), fixedItem1.getAccountId(),
fixedItem1.getStartDate(), fixedItem1.getAmount(),
fixedItem1.getCurrency());
- createInvoice(invoice1, true, internalCallContext);
- createInvoiceItem(fixedItem1, internalCallContext);
- createInvoiceItem(repairAdjInvoiceItem, internalCallContext);
- createInvoiceItem(creditBalanceAdjInvoiceItem1, internalCallContext);
+ invoiceUtil.createInvoice(invoice1, true, internalCallContext);
+ invoiceUtil.createInvoiceItem(fixedItem1, internalCallContext);
+ invoiceUtil.createInvoiceItem(repairAdjInvoiceItem, internalCallContext);
+ invoiceUtil.createInvoiceItem(creditBalanceAdjInvoiceItem1, internalCallContext);
// Verify scenario - no CBA should have been used
Assert.assertEquals(invoiceDao.getAccountCBA(accountId, internalCallContext).doubleValue(), 10.00);
- verifyInvoice(invoice1.getId(), 10.00, 10.00);
+ invoiceUtil.verifyInvoice(invoice1.getId(), 10.00, 10.00);
// Delete the CBA on invoice 1
invoiceDao.deleteCBA(accountId, invoice1.getId(), creditBalanceAdjInvoiceItem1.getId(), internalCallContext);
// Verify the result
Assert.assertEquals(invoiceDao.getAccountCBA(accountId, internalCallContext).doubleValue(), 0.00);
- verifyInvoice(invoice1.getId(), 0.00, 0.00);
+ invoiceUtil.verifyInvoice(invoice1.getId(), 0.00, 0.00);
}
@Test(groups = "slow")
@@ -1380,10 +1383,10 @@ public class TestInvoiceDao extends InvoiceDaoTestBase {
invoiceDao.notifyOfPayment(new InvoicePaymentModelDao(defaultInvoicePayment), internalCallContext);
- createInvoice(invoice1, true, internalCallContext);
- createInvoiceItem(fixedItem1, internalCallContext);
- createInvoiceItem(repairAdjInvoiceItem, internalCallContext);
- createInvoiceItem(creditBalanceAdjInvoiceItem1, internalCallContext);
+ invoiceUtil.createInvoice(invoice1, true, internalCallContext);
+ invoiceUtil.createInvoiceItem(fixedItem1, internalCallContext);
+ invoiceUtil.createInvoiceItem(repairAdjInvoiceItem, internalCallContext);
+ invoiceUtil.createInvoiceItem(creditBalanceAdjInvoiceItem1, internalCallContext);
// Create invoice 2
// Scenario: single item
@@ -1395,22 +1398,22 @@ public class TestInvoiceDao extends InvoiceDaoTestBase {
final CreditBalanceAdjInvoiceItem creditBalanceAdjInvoiceItem2 = new CreditBalanceAdjInvoiceItem(fixedItem2.getInvoiceId(), fixedItem2.getAccountId(),
fixedItem2.getStartDate(), fixedItem2.getAmount().negate(),
fixedItem2.getCurrency());
- createInvoice(invoice2, true, internalCallContext);
- createInvoiceItem(fixedItem2, internalCallContext);
- createInvoiceItem(creditBalanceAdjInvoiceItem2, internalCallContext);
+ invoiceUtil.createInvoice(invoice2, true, internalCallContext);
+ invoiceUtil.createInvoiceItem(fixedItem2, internalCallContext);
+ invoiceUtil.createInvoiceItem(creditBalanceAdjInvoiceItem2, internalCallContext);
// Verify scenario - half of the CBA should have been used
Assert.assertEquals(invoiceDao.getAccountCBA(accountId, internalCallContext).doubleValue(), 5.00);
- verifyInvoice(invoice1.getId(), 0.00, 10.00);
- verifyInvoice(invoice2.getId(), 0.00, -5.00);
+ invoiceUtil.verifyInvoice(invoice1.getId(), 0.00, 10.00);
+ invoiceUtil.verifyInvoice(invoice2.getId(), 0.00, -5.00);
// Refund Payment before we can deleted CBA
invoiceDao.createRefund(paymentId, new BigDecimal("10.0"), false, ImmutableMap.<UUID,BigDecimal>of(), UUID.randomUUID(), internalCallContext);
// Verify all three invoices were affected
Assert.assertEquals(invoiceDao.getAccountCBA(accountId, internalCallContext).doubleValue(), 0.00);
- verifyInvoice(invoice1.getId(), 5.00, 5.00);
- verifyInvoice(invoice2.getId(), 0.00, -5.00);
+ invoiceUtil.verifyInvoice(invoice1.getId(), 5.00, 5.00);
+ invoiceUtil.verifyInvoice(invoice2.getId(), 0.00, -5.00);
}
@Test(groups = "slow")
@@ -1433,10 +1436,10 @@ public class TestInvoiceDao extends InvoiceDaoTestBase {
final CreditBalanceAdjInvoiceItem creditBalanceAdjInvoiceItem1 = new CreditBalanceAdjInvoiceItem(fixedItem1.getInvoiceId(), fixedItem1.getAccountId(),
fixedItem1.getStartDate(), fixedItem1.getAmount(),
fixedItem1.getCurrency());
- createInvoice(invoice1, true, internalCallContext);
- createInvoiceItem(fixedItem1, internalCallContext);
- createInvoiceItem(repairAdjInvoiceItem, internalCallContext);
- createInvoiceItem(creditBalanceAdjInvoiceItem1, internalCallContext);
+ invoiceUtil.createInvoice(invoice1, true, internalCallContext);
+ invoiceUtil.createInvoiceItem(fixedItem1, internalCallContext);
+ invoiceUtil.createInvoiceItem(repairAdjInvoiceItem, internalCallContext);
+ invoiceUtil.createInvoiceItem(creditBalanceAdjInvoiceItem1, internalCallContext);
final BigDecimal paymentAmount = new BigDecimal("10.00");
@@ -1455,9 +1458,9 @@ public class TestInvoiceDao extends InvoiceDaoTestBase {
final CreditBalanceAdjInvoiceItem creditBalanceAdjInvoiceItem2 = new CreditBalanceAdjInvoiceItem(fixedItem2.getInvoiceId(), fixedItem2.getAccountId(),
fixedItem2.getStartDate(), fixedItem2.getAmount().negate(),
fixedItem2.getCurrency());
- createInvoice(invoice2, true, internalCallContext);
- createInvoiceItem(fixedItem2, internalCallContext);
- createInvoiceItem(creditBalanceAdjInvoiceItem2, internalCallContext);
+ invoiceUtil.createInvoice(invoice2, true, internalCallContext);
+ invoiceUtil.createInvoiceItem(fixedItem2, internalCallContext);
+ invoiceUtil.createInvoiceItem(creditBalanceAdjInvoiceItem2, internalCallContext);
// Create invoice 3
// Scenario: single item
@@ -1469,23 +1472,23 @@ public class TestInvoiceDao extends InvoiceDaoTestBase {
final CreditBalanceAdjInvoiceItem creditBalanceAdjInvoiceItem3 = new CreditBalanceAdjInvoiceItem(fixedItem3.getInvoiceId(), fixedItem3.getAccountId(),
fixedItem3.getStartDate(), fixedItem3.getAmount().negate(),
fixedItem3.getCurrency());
- createInvoice(invoice3, true, internalCallContext);
- createInvoiceItem(fixedItem3, internalCallContext);
- createInvoiceItem(creditBalanceAdjInvoiceItem3, internalCallContext);
+ invoiceUtil.createInvoice(invoice3, true, internalCallContext);
+ invoiceUtil.createInvoiceItem(fixedItem3, internalCallContext);
+ invoiceUtil.createInvoiceItem(creditBalanceAdjInvoiceItem3, internalCallContext);
// Verify scenario - all CBA should have been used
Assert.assertEquals(invoiceDao.getAccountCBA(accountId, internalCallContext).doubleValue(), 0.00);
- verifyInvoice(invoice1.getId(), 0.00, 10.00);
- verifyInvoice(invoice2.getId(), 0.00, -5.00);
- verifyInvoice(invoice3.getId(), 0.00, -5.00);
+ invoiceUtil.verifyInvoice(invoice1.getId(), 0.00, 10.00);
+ invoiceUtil.verifyInvoice(invoice2.getId(), 0.00, -5.00);
+ invoiceUtil.verifyInvoice(invoice3.getId(), 0.00, -5.00);
invoiceDao.createRefund(paymentId, paymentAmount, false, ImmutableMap.<UUID, BigDecimal>of(), UUID.randomUUID(), internalCallContext);
// Verify all three invoices were affected
Assert.assertEquals(invoiceDao.getAccountCBA(accountId, internalCallContext).doubleValue(), 0.00);
- verifyInvoice(invoice1.getId(), 10.00, 10.00);
- verifyInvoice(invoice2.getId(), 0.00, -5.00);
- verifyInvoice(invoice3.getId(), 0.00, -5.00);
+ invoiceUtil.verifyInvoice(invoice1.getId(), 10.00, 10.00);
+ invoiceUtil.verifyInvoice(invoice2.getId(), 0.00, -5.00);
+ invoiceUtil.verifyInvoice(invoice3.getId(), 0.00, -5.00);
}
@Test(groups = "slow")
@@ -1504,13 +1507,13 @@ public class TestInvoiceDao extends InvoiceDaoTestBase {
final CreditBalanceAdjInvoiceItem creditBalanceAdjInvoiceItem1 = new CreditBalanceAdjInvoiceItem(invoice1.getId(), invoice1.getAccountId(),
invoice1.getInvoiceDate(), repairAdjInvoiceItem.getAmount().negate(),
invoice1.getCurrency());
- createInvoice(invoice1, true, internalCallContext);
- createInvoiceItem(repairAdjInvoiceItem, internalCallContext);
- createInvoiceItem(creditBalanceAdjInvoiceItem1, internalCallContext);
+ invoiceUtil.createInvoice(invoice1, true, internalCallContext);
+ invoiceUtil.createInvoiceItem(repairAdjInvoiceItem, internalCallContext);
+ invoiceUtil.createInvoiceItem(creditBalanceAdjInvoiceItem1, internalCallContext);
// Verify scenario
Assert.assertEquals(invoiceDao.getAccountCBA(accountId, internalCallContext).doubleValue(), 10.00);
- verifyInvoice(invoice1.getId(), 0.00, 10.00);
+ invoiceUtil.verifyInvoice(invoice1.getId(), 0.00, 10.00);
// Delete the CBA on invoice 1
try {
@@ -1523,6 +1526,6 @@ public class TestInvoiceDao extends InvoiceDaoTestBase {
// Verify the result
Assert.assertEquals(invoiceDao.getAccountCBA(accountId, internalCallContext).doubleValue(), 10.00);
- verifyInvoice(invoice1.getId(), 0.00, 10.00);
+ invoiceUtil.verifyInvoice(invoice1.getId(), 0.00, 10.00);
}
}
diff --git a/invoice/src/test/java/com/ning/billing/invoice/dao/TestInvoiceDaoForItemAdjustment.java b/invoice/src/test/java/com/ning/billing/invoice/dao/TestInvoiceDaoForItemAdjustment.java
index 9cc7557..978cee5 100644
--- a/invoice/src/test/java/com/ning/billing/invoice/dao/TestInvoiceDaoForItemAdjustment.java
+++ b/invoice/src/test/java/com/ning/billing/invoice/dao/TestInvoiceDaoForItemAdjustment.java
@@ -26,6 +26,7 @@ import org.testng.annotations.Test;
import com.ning.billing.ErrorCode;
import com.ning.billing.catalog.api.Currency;
+import com.ning.billing.invoice.InvoiceTestSuiteWithEmbeddedDB;
import com.ning.billing.invoice.api.Invoice;
import com.ning.billing.invoice.api.InvoiceApiException;
import com.ning.billing.invoice.api.InvoiceItem;
@@ -33,7 +34,7 @@ import com.ning.billing.invoice.api.InvoiceItemType;
import com.ning.billing.invoice.model.DefaultInvoice;
import com.ning.billing.invoice.model.RecurringInvoiceItem;
-public class TestInvoiceDaoForItemAdjustment extends InvoiceDaoTestBase {
+public class TestInvoiceDaoForItemAdjustment extends InvoiceTestSuiteWithEmbeddedDB {
private static final BigDecimal INVOICE_ITEM_AMOUNT = new BigDecimal("21.00");
@@ -60,7 +61,7 @@ public class TestInvoiceDaoForItemAdjustment extends InvoiceDaoTestBase {
new LocalDate(2010, 1, 1), new LocalDate(2010, 4, 1),
INVOICE_ITEM_AMOUNT, new BigDecimal("7.00"), Currency.USD);
invoice.addInvoiceItem(invoiceItem);
- createInvoice(invoice, true, internalCallContext);
+ invoiceUtil.createInvoice(invoice, true, internalCallContext);
try {
invoiceDao.insertInvoiceItemAdjustment(invoice.getAccountId(), UUID.randomUUID(), invoiceItem.getId(), new LocalDate(2010, 1, 1), null, null, internalCallContext);
@@ -78,7 +79,7 @@ public class TestInvoiceDaoForItemAdjustment extends InvoiceDaoTestBase {
new LocalDate(2010, 1, 1), new LocalDate(2010, 4, 1),
INVOICE_ITEM_AMOUNT, new BigDecimal("7.00"), Currency.USD);
invoice.addInvoiceItem(invoiceItem);
- createInvoice(invoice, true, internalCallContext);
+ invoiceUtil.createInvoice(invoice, true, internalCallContext);
final InvoiceItemModelDao adjustedInvoiceItem = createAndCheckAdjustment(invoice, invoiceItem, null);
Assert.assertEquals(adjustedInvoiceItem.getAmount().compareTo(invoiceItem.getAmount().negate()), 0);
@@ -92,7 +93,7 @@ public class TestInvoiceDaoForItemAdjustment extends InvoiceDaoTestBase {
new LocalDate(2010, 1, 1), new LocalDate(2010, 4, 1),
INVOICE_ITEM_AMOUNT, new BigDecimal("7.00"), Currency.USD);
invoice.addInvoiceItem(invoiceItem);
- createInvoice(invoice, true, internalCallContext);
+ invoiceUtil.createInvoice(invoice, true, internalCallContext);
final InvoiceItemModelDao adjustedInvoiceItem = createAndCheckAdjustment(invoice, invoiceItem, BigDecimal.TEN);
Assert.assertEquals(adjustedInvoiceItem.getAmount().compareTo(BigDecimal.TEN.negate()), 0);
@@ -116,7 +117,7 @@ public class TestInvoiceDaoForItemAdjustment extends InvoiceDaoTestBase {
Assert.assertNull(adjustedInvoiceItem.getSubscriptionId());
// Retrieve the item by id
- final InvoiceItemModelDao retrievedInvoiceItem = invoiceItemSqlDao.getById(adjustedInvoiceItem.getId().toString(), internalCallContext);
+ final InvoiceItemModelDao retrievedInvoiceItem = invoiceUtil.getInvoiceItemById(adjustedInvoiceItem.getId(), internalCallContext);
// TODO We can't use equals() due to the createdDate field
Assert.assertEquals(retrievedInvoiceItem.getAccountId(), adjustedInvoiceItem.getAccountId());
Assert.assertNull(retrievedInvoiceItem.getBundleId());
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 513a95d..1608bd5 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
@@ -24,6 +24,7 @@ import org.joda.time.LocalDate;
import org.testng.annotations.Test;
import com.ning.billing.catalog.api.Currency;
+import com.ning.billing.invoice.InvoiceTestSuiteWithEmbeddedDB;
import com.ning.billing.invoice.api.InvoiceItem;
import com.ning.billing.invoice.model.CreditBalanceAdjInvoiceItem;
import com.ning.billing.invoice.model.DefaultInvoice;
@@ -33,11 +34,12 @@ import com.ning.billing.invoice.model.InvoiceItemFactory;
import com.ning.billing.invoice.model.RecurringInvoiceItem;
import com.ning.billing.util.entity.EntityPersistenceException;
+import static com.ning.billing.invoice.TestInvoiceUtil.TEN;
import static org.testng.Assert.assertEquals;
import static org.testng.Assert.assertNotNull;
import static org.testng.Assert.assertTrue;
-public class TestInvoiceItemDao extends InvoiceDaoTestBase {
+public class TestInvoiceItemDao extends InvoiceTestSuiteWithEmbeddedDB {
@Test(groups = "slow")
public void testInvoiceItemCreation() throws EntityPersistenceException {
@@ -51,9 +53,9 @@ public class TestInvoiceItemDao extends InvoiceDaoTestBase {
final RecurringInvoiceItem item = new RecurringInvoiceItem(invoiceId, accountId, bundleId, subscriptionId, "test plan", "test phase", startDate, endDate,
rate, rate, Currency.USD);
- createInvoiceItem(item, internalCallContext);
+ invoiceUtil.createInvoiceItem(item, internalCallContext);
- final InvoiceItemModelDao thisItem = invoiceItemSqlDao.getById(item.getId().toString(), internalCallContext);
+ final InvoiceItemModelDao thisItem = invoiceUtil.getInvoiceItemById(item.getId(), internalCallContext);
assertNotNull(thisItem);
assertEquals(thisItem.getId(), item.getId());
assertEquals(thisItem.getInvoiceId(), item.getInvoiceId());
@@ -81,10 +83,10 @@ public class TestInvoiceItemDao extends InvoiceDaoTestBase {
final RecurringInvoiceItem item = new RecurringInvoiceItem(invoiceId, accountId, bundleId, subscriptionId,
"test plan", "test phase", startDate.plusMonths(i), startDate.plusMonths(i + 1),
rate, rate, Currency.USD);
- createInvoiceItem(item, internalCallContext);
+ invoiceUtil.createInvoiceItem(item, internalCallContext);
}
- final List<InvoiceItemModelDao> items = invoiceItemSqlDao.getInvoiceItemsBySubscription(subscriptionId.toString(), internalCallContext);
+ final List<InvoiceItemModelDao> items = invoiceUtil.getInvoiceItemBySubscriptionId(subscriptionId, internalCallContext);
assertEquals(items.size(), 3);
}
@@ -103,10 +105,10 @@ public class TestInvoiceItemDao extends InvoiceDaoTestBase {
final RecurringInvoiceItem item = new RecurringInvoiceItem(invoiceId, accountId, bundleId, subscriptionId,
"test plan", "test phase", startDate, startDate.plusMonths(1),
amount, amount, Currency.USD);
- createInvoiceItem(item, internalCallContext);
+ invoiceUtil.createInvoiceItem(item, internalCallContext);
}
- final List<InvoiceItemModelDao> items = invoiceItemSqlDao.getInvoiceItemsByInvoice(invoiceId.toString(), internalCallContext);
+ final List<InvoiceItemModelDao> items = invoiceUtil.getInvoiceItemByInvoiceId(invoiceId, internalCallContext);
assertEquals(items.size(), 5);
}
@@ -117,7 +119,7 @@ public class TestInvoiceItemDao extends InvoiceDaoTestBase {
final LocalDate targetDate = new LocalDate(2011, 5, 23);
final DefaultInvoice invoice = new DefaultInvoice(accountId, clock.getUTCToday(), targetDate, Currency.USD);
- createInvoice(invoice, true, internalCallContext);
+ invoiceUtil.createInvoice(invoice, true, internalCallContext);
final UUID invoiceId = invoice.getId();
final LocalDate startDate = new LocalDate(2011, 3, 1);
@@ -128,9 +130,9 @@ public class TestInvoiceItemDao extends InvoiceDaoTestBase {
final RecurringInvoiceItem item = new RecurringInvoiceItem(invoiceId, accountId, bundleId, subscriptionId,
"test plan", "test phase", startDate, startDate.plusMonths(1),
rate, rate, Currency.USD);
- createInvoiceItem(item, internalCallContext);
+ invoiceUtil.createInvoiceItem(item, internalCallContext);
- final List<InvoiceItemModelDao> items = invoiceItemSqlDao.getInvoiceItemsByAccount(accountId.toString(), internalCallContext);
+ final List<InvoiceItemModelDao> items = invoiceUtil.getInvoiceItemByAccountId(accountId, internalCallContext);
assertEquals(items.size(), 1);
}
@@ -141,9 +143,9 @@ public class TestInvoiceItemDao extends InvoiceDaoTestBase {
final LocalDate creditDate = new LocalDate(2012, 4, 1);
final InvoiceItem creditInvoiceItem = new CreditBalanceAdjInvoiceItem(invoiceId, accountId, creditDate, TEN, Currency.USD);
- createInvoiceItem(creditInvoiceItem, internalCallContext);
+ invoiceUtil.createInvoiceItem(creditInvoiceItem, internalCallContext);
- final InvoiceItemModelDao savedItem = invoiceItemSqlDao.getById(creditInvoiceItem.getId().toString(), internalCallContext);
+ final InvoiceItemModelDao savedItem = invoiceUtil.getInvoiceItemById(creditInvoiceItem.getId(), internalCallContext);
assertEquals(InvoiceItemFactory.fromModelDao(savedItem), creditInvoiceItem);
}
@@ -155,9 +157,9 @@ public class TestInvoiceItemDao extends InvoiceDaoTestBase {
final InvoiceItem fixedPriceInvoiceItem = new FixedPriceInvoiceItem(invoiceId, accountId, UUID.randomUUID(),
UUID.randomUUID(), "test plan", "test phase", startDate, TEN, Currency.USD);
- createInvoiceItem(fixedPriceInvoiceItem, internalCallContext);
+ invoiceUtil.createInvoiceItem(fixedPriceInvoiceItem, internalCallContext);
- final InvoiceItemModelDao savedItem = invoiceItemSqlDao.getById(fixedPriceInvoiceItem.getId().toString(), internalCallContext);
+ final InvoiceItemModelDao savedItem = invoiceUtil.getInvoiceItemById(fixedPriceInvoiceItem.getId(), internalCallContext);
assertEquals(InvoiceItemFactory.fromModelDao(savedItem), fixedPriceInvoiceItem);
}
@@ -170,9 +172,9 @@ public class TestInvoiceItemDao extends InvoiceDaoTestBase {
final LocalDate startDate = new LocalDate(2012, 4, 1);
final InvoiceItem externalChargeInvoiceItem = new ExternalChargeInvoiceItem(invoiceId, accountId, bundleId, description,
startDate, TEN, Currency.USD);
- createInvoiceItem(externalChargeInvoiceItem, internalCallContext);
+ invoiceUtil.createInvoiceItem(externalChargeInvoiceItem, internalCallContext);
- final InvoiceItemModelDao savedItem = invoiceItemSqlDao.getById(externalChargeInvoiceItem.getId().toString(), internalCallContext);
+ final InvoiceItemModelDao savedItem = invoiceUtil.getInvoiceItemById(externalChargeInvoiceItem.getId(), internalCallContext);
assertEquals(InvoiceItemFactory.fromModelDao(savedItem), externalChargeInvoiceItem);
}
}
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 5514da0..59fecc9 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
@@ -16,6 +16,8 @@
package com.ning.billing.invoice.generator;
+import static com.ning.billing.invoice.TestInvoiceUtil.*;
+
import java.math.BigDecimal;
import java.util.ArrayList;
import java.util.HashMap;
@@ -46,6 +48,7 @@ import com.ning.billing.catalog.api.Plan;
import com.ning.billing.catalog.api.PlanPhase;
import com.ning.billing.entitlement.api.SubscriptionTransitionType;
import com.ning.billing.entitlement.api.user.Subscription;
+import com.ning.billing.invoice.InvoiceTestSuiteNoDB;
import com.ning.billing.invoice.MockBillingEventSet;
import com.ning.billing.invoice.api.Invoice;
import com.ning.billing.invoice.api.InvoiceApiException;
@@ -56,7 +59,6 @@ import com.ning.billing.invoice.model.DefaultInvoice;
import com.ning.billing.invoice.model.DefaultInvoicePayment;
import com.ning.billing.invoice.model.FixedPriceInvoiceItem;
import com.ning.billing.invoice.model.RecurringInvoiceItem;
-import com.ning.billing.invoice.tests.InvoicingTestBase;
import com.ning.billing.util.clock.Clock;
import com.ning.billing.util.clock.ClockMock;
import com.ning.billing.util.clock.DefaultClock;
@@ -70,14 +72,10 @@ import static org.testng.Assert.assertNotNull;
import static org.testng.Assert.assertNull;
import static org.testng.Assert.assertTrue;
-public class TestDefaultInvoiceGenerator extends InvoicingTestBase {
+public class TestDefaultInvoiceGenerator extends InvoiceTestSuiteNoDB {
private static final Logger log = LoggerFactory.getLogger(TestDefaultInvoiceGenerator.class);
- private final Clock clock = new ClockMock();
-
- private final InvoiceGenerator generator;
-
public TestDefaultInvoiceGenerator() {
final Clock clock = new DefaultClock();
final InvoiceConfig invoiceConfig = new InvoiceConfig() {
@@ -117,7 +115,7 @@ public class TestDefaultInvoiceGenerator extends InvoicingTestBase {
final BillingEventSet events = new MockBillingEventSet();
final Subscription sub = createZombieSubscription();
- final LocalDate startDate = buildDate(2011, 9, 1);
+ final LocalDate startDate = invoiceUtil.buildDate(2011, 9, 1);
final Plan plan = new MockPlan();
final BigDecimal rate1 = TEN;
@@ -126,7 +124,7 @@ public class TestDefaultInvoiceGenerator extends InvoicingTestBase {
final BillingEvent event = createBillingEvent(sub.getId(), startDate, plan, phase, 1);
events.add(event);
- final LocalDate targetDate = buildDate(2011, 10, 3);
+ final LocalDate targetDate = invoiceUtil.buildDate(2011, 10, 3);
final UUID accountId = UUID.randomUUID();
final Invoice invoice = generator.generateInvoice(accountId, events, null, targetDate, Currency.USD);
@@ -159,23 +157,23 @@ public class TestDefaultInvoiceGenerator extends InvoicingTestBase {
// Start date was the 16 local, but was the 17 UTC
final int bcdLocal = 16;
final int bcdUTC = 17;
- final LocalDate startDate = buildDate(2012, 7, bcdLocal);
+ final LocalDate startDate = invoiceUtil.buildDate(2012, 7, bcdLocal);
final BillingEventSet events = new MockBillingEventSet();
final BillingEvent event = createBillingEvent(sub.getId(), startDate, plan, phase, bcdUTC, bcdLocal);
events.add(event);
// Target date is the next BCD, in local time
- final LocalDate targetDate = buildDate(2012, 8, bcdLocal);
+ final LocalDate targetDate = invoiceUtil.buildDate(2012, 8, bcdLocal);
final DateTimeZone accountTimeZone = DateTimeZone.forID("HST");
final Invoice invoice = generator.generateInvoice(accountId, events, null, targetDate, Currency.USD);
assertNotNull(invoice);
assertEquals(invoice.getNumberOfItems(), 2);
- assertEquals(invoice.getInvoiceItems().get(0).getStartDate(), buildDate(2012, 7, 16));
- assertEquals(invoice.getInvoiceItems().get(0).getEndDate(), buildDate(2012, 8, 16));
- assertEquals(invoice.getInvoiceItems().get(1).getStartDate(), buildDate(2012, 8, 16));
- assertEquals(invoice.getInvoiceItems().get(1).getEndDate(), buildDate(2012, 9, 16));
+ assertEquals(invoice.getInvoiceItems().get(0).getStartDate(), invoiceUtil.buildDate(2012, 7, 16));
+ assertEquals(invoice.getInvoiceItems().get(0).getEndDate(), invoiceUtil.buildDate(2012, 8, 16));
+ assertEquals(invoice.getInvoiceItems().get(1).getStartDate(), invoiceUtil.buildDate(2012, 8, 16));
+ assertEquals(invoice.getInvoiceItems().get(1).getEndDate(), invoiceUtil.buildDate(2012, 9, 16));
}
@Test(groups = "fast")
@@ -186,7 +184,7 @@ public class TestDefaultInvoiceGenerator extends InvoicingTestBase {
final PlanPhase phaseEvergreen = createMockMonthlyPlanPhase(EIGHT, PhaseType.DISCOUNT);
final DateTimeZone accountTimeZone = DateTimeZone.UTC;
final int bcdUTC = 16;
- final LocalDate startDate = buildDate(2012, 7, 16);
+ final LocalDate startDate = invoiceUtil.buildDate(2012, 7, 16);
final BillingEventSet events = new MockBillingEventSet();
events.add(createBillingEvent(sub.getId(), startDate, plan, phaseEvergreen, bcdUTC));
@@ -197,8 +195,8 @@ public class TestDefaultInvoiceGenerator extends InvoicingTestBase {
assertNotNull(invoice);
assertEquals(invoice.getNumberOfItems(), 1);
- assertEquals(invoice.getInvoiceItems().get(0).getStartDate(), buildDate(2012, 7, 16));
- assertEquals(invoice.getInvoiceItems().get(0).getEndDate(), buildDate(2012, 8, 16));
+ assertEquals(invoice.getInvoiceItems().get(0).getStartDate(), invoiceUtil.buildDate(2012, 7, 16));
+ assertEquals(invoice.getInvoiceItems().get(0).getEndDate(), invoiceUtil.buildDate(2012, 8, 16));
}
@Test(groups = "fast")
@@ -206,7 +204,7 @@ public class TestDefaultInvoiceGenerator extends InvoicingTestBase {
final BillingEventSet events = new MockBillingEventSet();
final Subscription sub = createZombieSubscription();
- final LocalDate startDate = buildDate(2011, 9, 1);
+ final LocalDate startDate = invoiceUtil.buildDate(2011, 9, 1);
final Plan plan = new MockPlan();
final BigDecimal rate = TEN;
@@ -214,7 +212,7 @@ public class TestDefaultInvoiceGenerator extends InvoicingTestBase {
final BillingEvent event = createBillingEvent(sub.getId(), startDate, plan, phase, 15);
events.add(event);
- final LocalDate targetDate = buildDate(2011, 10, 3);
+ final LocalDate targetDate = invoiceUtil.buildDate(2011, 10, 3);
final UUID accountId = UUID.randomUUID();
final Invoice invoice = generator.generateInvoice(accountId, events, null, targetDate, Currency.USD);
@@ -241,13 +239,13 @@ public class TestDefaultInvoiceGenerator extends InvoicingTestBase {
final Subscription sub = createZombieSubscription();
- final BillingEvent event1 = createBillingEvent(sub.getId(), buildDate(2011, 9, 1), plan1, phase1, 1);
+ final BillingEvent event1 = createBillingEvent(sub.getId(), invoiceUtil.buildDate(2011, 9, 1), plan1, phase1, 1);
events.add(event1);
- final BillingEvent event2 = createBillingEvent(sub.getId(), buildDate(2011, 10, 1), plan2, phase2, 1);
+ final BillingEvent event2 = createBillingEvent(sub.getId(), invoiceUtil.buildDate(2011, 10, 1), plan2, phase2, 1);
events.add(event2);
- final LocalDate targetDate = buildDate(2011, 10, 3);
+ final LocalDate targetDate = invoiceUtil.buildDate(2011, 10, 3);
final UUID accountId = UUID.randomUUID();
final Invoice invoice = generator.generateInvoice(accountId, events, null, targetDate, Currency.USD);
@@ -265,15 +263,15 @@ public class TestDefaultInvoiceGenerator extends InvoicingTestBase {
final PlanPhase phase1 = createMockMonthlyPlanPhase(rate1);
final Subscription sub = createZombieSubscription();
- final BillingEvent event1 = createBillingEvent(sub.getId(), buildDate(2011, 9, 1), plan1, phase1, 1);
+ final BillingEvent event1 = createBillingEvent(sub.getId(), invoiceUtil.buildDate(2011, 9, 1), plan1, phase1, 1);
events.add(event1);
final BigDecimal rate2 = TEN;
final PlanPhase phase2 = createMockMonthlyPlanPhase(rate2);
- final BillingEvent event2 = createBillingEvent(sub.getId(), buildDate(2011, 10, 15), plan1, phase2, 15);
+ final BillingEvent event2 = createBillingEvent(sub.getId(), invoiceUtil.buildDate(2011, 10, 15), plan1, phase2, 15);
events.add(event2);
- final LocalDate targetDate = buildDate(2011, 12, 3);
+ final LocalDate targetDate = invoiceUtil.buildDate(2011, 12, 3);
final UUID accountId = UUID.randomUUID();
final Invoice invoice = generator.generateInvoice(accountId, events, null, targetDate, Currency.USD);
@@ -302,20 +300,20 @@ public class TestDefaultInvoiceGenerator extends InvoicingTestBase {
final PlanPhase phase1 = createMockMonthlyPlanPhase(rate1);
final Subscription sub = createZombieSubscription();
- final BillingEvent event1 = createBillingEvent(sub.getId(), buildDate(2011, 9, 1), plan1, phase1, 1);
+ final BillingEvent event1 = createBillingEvent(sub.getId(), invoiceUtil.buildDate(2011, 9, 1), plan1, phase1, 1);
events.add(event1);
final BigDecimal rate2 = TEN;
final PlanPhase phase2 = createMockMonthlyPlanPhase(rate2);
- final BillingEvent event2 = createBillingEvent(sub.getId(), buildDate(2011, 10, 1), plan1, phase2, 1);
+ final BillingEvent event2 = createBillingEvent(sub.getId(), invoiceUtil.buildDate(2011, 10, 1), plan1, phase2, 1);
events.add(event2);
final BigDecimal rate3 = THIRTY;
final PlanPhase phase3 = createMockMonthlyPlanPhase(rate3);
- final BillingEvent event3 = createBillingEvent(sub.getId(), buildDate(2011, 11, 1), plan1, phase3, 1);
+ final BillingEvent event3 = createBillingEvent(sub.getId(), invoiceUtil.buildDate(2011, 11, 1), plan1, phase3, 1);
events.add(event3);
- final LocalDate targetDate = buildDate(2011, 12, 3);
+ final LocalDate targetDate = invoiceUtil.buildDate(2011, 12, 3);
final UUID accountId = UUID.randomUUID();
final Invoice invoice = generator.generateInvoice(accountId, events, null, targetDate, Currency.USD);
@@ -329,7 +327,7 @@ public class TestDefaultInvoiceGenerator extends InvoicingTestBase {
final BillingEventSet events = new MockBillingEventSet();
final Subscription sub = createZombieSubscription();
- final LocalDate startDate = buildDate(2011, 9, 1);
+ final LocalDate startDate = invoiceUtil.buildDate(2011, 9, 1);
final Plan plan1 = new MockPlan();
final BigDecimal rate = FIVE;
@@ -338,13 +336,13 @@ public class TestDefaultInvoiceGenerator extends InvoicingTestBase {
final BillingEvent event1 = createBillingEvent(sub.getId(), startDate, plan1, phase1, 1);
events.add(event1);
- LocalDate targetDate = buildDate(2011, 12, 1);
+ LocalDate targetDate = invoiceUtil.buildDate(2011, 12, 1);
final UUID accountId = UUID.randomUUID();
final Invoice invoice1 = generator.generateInvoice(accountId, events, null, targetDate, Currency.USD);
final List<Invoice> existingInvoices = new ArrayList<Invoice>();
existingInvoices.add(invoice1);
- targetDate = buildDate(2011, 12, 3);
+ targetDate = invoiceUtil.buildDate(2011, 12, 3);
final Invoice invoice2 = generator.generateInvoice(accountId, events, existingInvoices, targetDate, Currency.USD);
assertNull(invoice2);
@@ -369,37 +367,37 @@ public class TestDefaultInvoiceGenerator extends InvoicingTestBase {
final PlanPhase plan1Phase1 = createMockMonthlyPlanPhase(EIGHT, PhaseType.TRIAL);
final PlanPhase plan1Phase2 = createMockMonthlyPlanPhase(TWELVE, PhaseType.DISCOUNT);
final PlanPhase plan1Phase3 = createMockMonthlyPlanPhase();
- final LocalDate plan1StartDate = buildDate(2011, 1, 5);
- final LocalDate plan1PhaseChangeDate = buildDate(2011, 4, 5);
- final LocalDate plan1CancelDate = buildDate(2011, 4, 29);
+ final LocalDate plan1StartDate = invoiceUtil.buildDate(2011, 1, 5);
+ final LocalDate plan1PhaseChangeDate = invoiceUtil.buildDate(2011, 4, 5);
+ final LocalDate plan1CancelDate = invoiceUtil.buildDate(2011, 4, 29);
final Plan plan2 = new MockPlan("Change phase from trial to discount to evergreen");
final PlanPhase plan2Phase1 = createMockMonthlyPlanPhase(TWENTY, PhaseType.TRIAL);
final PlanPhase plan2Phase2 = createMockMonthlyPlanPhase(THIRTY, PhaseType.DISCOUNT);
final PlanPhase plan2Phase3 = createMockMonthlyPlanPhase(FORTY, PhaseType.EVERGREEN);
- final LocalDate plan2StartDate = buildDate(2011, 3, 10);
- final LocalDate plan2PhaseChangeToDiscountDate = buildDate(2011, 6, 10);
- final LocalDate plan2PhaseChangeToEvergreenDate = buildDate(2011, 9, 10);
+ final LocalDate plan2StartDate = invoiceUtil.buildDate(2011, 3, 10);
+ final LocalDate plan2PhaseChangeToDiscountDate = invoiceUtil.buildDate(2011, 6, 10);
+ final LocalDate plan2PhaseChangeToEvergreenDate = invoiceUtil.buildDate(2011, 9, 10);
final Plan plan3 = new MockPlan("Upgrade with immediate change, BCD = 31");
final PlanPhase plan3Phase1 = createMockMonthlyPlanPhase(TEN, PhaseType.EVERGREEN);
final PlanPhase plan3Phase2 = createMockAnnualPlanPhase(ONE_HUNDRED, PhaseType.EVERGREEN);
- final LocalDate plan3StartDate = buildDate(2011, 5, 20);
- final LocalDate plan3UpgradeToAnnualDate = buildDate(2011, 7, 31);
+ final LocalDate plan3StartDate = invoiceUtil.buildDate(2011, 5, 20);
+ final LocalDate plan3UpgradeToAnnualDate = invoiceUtil.buildDate(2011, 7, 31);
final Plan plan4a = new MockPlan("Plan change effective EOT; plan 1");
final Plan plan4b = new MockPlan("Plan change effective EOT; plan 2");
final PlanPhase plan4aPhase1 = createMockMonthlyPlanPhase(FIFTEEN);
final PlanPhase plan4bPhase1 = createMockMonthlyPlanPhase(TWENTY_FOUR);
- final LocalDate plan4StartDate = buildDate(2011, 6, 7);
- final LocalDate plan4ChangeOfPlanDate = buildDate(2011, 8, 7);
+ final LocalDate plan4StartDate = invoiceUtil.buildDate(2011, 6, 7);
+ final LocalDate plan4ChangeOfPlanDate = invoiceUtil.buildDate(2011, 8, 7);
final Plan plan5 = new MockPlan("Add-on");
final PlanPhase plan5Phase1 = createMockMonthlyPlanPhase(TWENTY);
final PlanPhase plan5Phase2 = createMockMonthlyPlanPhase();
- final LocalDate plan5StartDate = buildDate(2011, 6, 21);
- final LocalDate plan5CancelDate = buildDate(2011, 10, 7);
+ final LocalDate plan5StartDate = invoiceUtil.buildDate(2011, 6, 21);
+ final LocalDate plan5CancelDate = invoiceUtil.buildDate(2011, 10, 7);
BigDecimal expectedAmount;
final List<Invoice> invoices = new ArrayList<Invoice>();
@@ -412,11 +410,11 @@ public class TestDefaultInvoiceGenerator extends InvoicingTestBase {
// on 2/5/2011, invoice subscription 1 (trial)
expectedAmount = EIGHT;
- testInvoiceGeneration(accountId, events, invoices, buildDate(2011, 2, 5), 1, expectedAmount);
+ testInvoiceGeneration(accountId, events, invoices, invoiceUtil.buildDate(2011, 2, 5), 1, expectedAmount);
// on 3/5/2011, invoice subscription 1 (trial)
expectedAmount = EIGHT;
- testInvoiceGeneration(accountId, events, invoices, buildDate(2011, 3, 5), 1, expectedAmount);
+ testInvoiceGeneration(accountId, events, invoices, invoiceUtil.buildDate(2011, 3, 5), 1, expectedAmount);
// on 3/10/2011, create subscription 2 (trial)
events.add(createBillingEvent(subscriptionId2, plan2StartDate, plan2, plan2Phase1, 10));
@@ -430,7 +428,7 @@ public class TestDefaultInvoiceGenerator extends InvoicingTestBase {
// on 4/10/2011, invoice subscription 2 (trial)
expectedAmount = TWENTY;
- testInvoiceGeneration(accountId, events, invoices, buildDate(2011, 4, 10), 1, expectedAmount);
+ testInvoiceGeneration(accountId, events, invoices, invoiceUtil.buildDate(2011, 4, 10), 1, expectedAmount);
// on 4/29/2011, cancel subscription 1
events.add(createBillingEvent(subscriptionId1, plan1CancelDate, plan1, plan1Phase3, 5));
@@ -440,7 +438,7 @@ public class TestDefaultInvoiceGenerator extends InvoicingTestBase {
// on 5/10/2011, invoice subscription 2 (trial)
expectedAmount = TWENTY;
- testInvoiceGeneration(accountId, events, invoices, buildDate(2011, 5, 10), 1, expectedAmount);
+ testInvoiceGeneration(accountId, events, invoices, invoiceUtil.buildDate(2011, 5, 10), 1, expectedAmount);
// on 5/20/2011, create subscription 3 (monthly)
events.add(createBillingEvent(subscriptionId3, plan3StartDate, plan3, plan3Phase1, 20));
@@ -459,7 +457,7 @@ public class TestDefaultInvoiceGenerator extends InvoicingTestBase {
// on 6/20/2011, invoice subscription 3 (monthly)
expectedAmount = TEN;
- testInvoiceGeneration(accountId, events, invoices, buildDate(2011, 6, 20), 1, expectedAmount);
+ testInvoiceGeneration(accountId, events, invoices, invoiceUtil.buildDate(2011, 6, 20), 1, expectedAmount);
// on 6/21/2011, create add-on (subscription 5)
events.add(createBillingEvent(subscriptionId5, plan5StartDate, plan5, plan5Phase1, 10));
@@ -468,15 +466,15 @@ public class TestDefaultInvoiceGenerator extends InvoicingTestBase {
// on 7/7/2011, invoice subscription 4 (plan 1)
expectedAmount = FIFTEEN;
- testInvoiceGeneration(accountId, events, invoices, buildDate(2011, 7, 7), 1, expectedAmount);
+ testInvoiceGeneration(accountId, events, invoices, invoiceUtil.buildDate(2011, 7, 7), 1, expectedAmount);
// on 7/10/2011, invoice subscription 2 (discount), invoice subscription 5
expectedAmount = THIRTY.add(TWENTY);
- testInvoiceGeneration(accountId, events, invoices, buildDate(2011, 7, 10), 2, expectedAmount);
+ testInvoiceGeneration(accountId, events, invoices, invoiceUtil.buildDate(2011, 7, 10), 2, expectedAmount);
// on 7/20/2011, invoice subscription 3 (monthly)
expectedAmount = TEN;
- testInvoiceGeneration(accountId, events, invoices, buildDate(2011, 7, 20), 1, expectedAmount);
+ testInvoiceGeneration(accountId, events, invoices, invoiceUtil.buildDate(2011, 7, 20), 1, expectedAmount);
// on 7/31/2011, convert subscription 3 to annual
events.add(createBillingEvent(subscriptionId3, plan3UpgradeToAnnualDate, plan3, plan3Phase2, 31));
@@ -491,11 +489,11 @@ public class TestDefaultInvoiceGenerator extends InvoicingTestBase {
// on 8/10/2011, invoice plan 2 (discount), invoice subscription 5
expectedAmount = THIRTY.add(TWENTY);
- testInvoiceGeneration(accountId, events, invoices, buildDate(2011, 8, 10), 2, expectedAmount);
+ testInvoiceGeneration(accountId, events, invoices, invoiceUtil.buildDate(2011, 8, 10), 2, expectedAmount);
// on 9/7/2011, invoice subscription 4 (plan 2)
expectedAmount = TWENTY_FOUR;
- testInvoiceGeneration(accountId, events, invoices, buildDate(2011, 9, 7), 1, expectedAmount);
+ testInvoiceGeneration(accountId, events, invoices, invoiceUtil.buildDate(2011, 9, 7), 1, expectedAmount);
// on 9/10/2011, invoice plan 2 (evergreen), invoice subscription 5
events.add(createBillingEvent(subscriptionId2, plan2PhaseChangeToEvergreenDate, plan2, plan2Phase3, 10));
@@ -509,7 +507,7 @@ public class TestDefaultInvoiceGenerator extends InvoicingTestBase {
// on 10/10/2011, invoice plan 2 (evergreen)
expectedAmount = FORTY;
- testInvoiceGeneration(accountId, events, invoices, buildDate(2011, 10, 10), 1, expectedAmount);
+ testInvoiceGeneration(accountId, events, invoices, invoiceUtil.buildDate(2011, 10, 10), 1, expectedAmount);
}
@Test(groups = "fast")
@@ -517,7 +515,7 @@ public class TestDefaultInvoiceGenerator extends InvoicingTestBase {
final Plan plan = new MockPlan();
final PlanPhase planPhase = createMockMonthlyPlanPhase(ZERO);
final BillingEventSet events = new MockBillingEventSet();
- final LocalDate targetDate = buildDate(2011, 1, 1);
+ final LocalDate targetDate = invoiceUtil.buildDate(2011, 1, 1);
events.add(createBillingEvent(UUID.randomUUID(), targetDate, plan, planPhase, 1));
final Invoice invoice = generator.generateInvoice(UUID.randomUUID(), events, null, targetDate, Currency.USD);
@@ -558,13 +556,13 @@ public class TestDefaultInvoiceGenerator extends InvoicingTestBase {
final BillingEventSet events = new MockBillingEventSet();
- final BillingEvent event1 = createMockBillingEvent(null, subscription, new DateTime("2012-01-1"),
+ final BillingEvent event1 = invoiceUtil.createMockBillingEvent(null, subscription, new DateTime("2012-01-1"),
plan, phase1,
ZERO, null, Currency.USD, BillingPeriod.NO_BILLING_PERIOD, 1,
BillingModeType.IN_ADVANCE, "Test Event 1", 1L,
SubscriptionTransitionType.CREATE);
- final BillingEvent event2 = createMockBillingEvent(null, subscription, changeDate,
+ final BillingEvent event2 = invoiceUtil.createMockBillingEvent(null, subscription, changeDate,
plan, phase2,
ZERO, null, Currency.USD, BillingPeriod.NO_BILLING_PERIOD, 1,
BillingModeType.IN_ADVANCE, "Test Event 2", 2L,
@@ -761,7 +759,7 @@ public class TestDefaultInvoiceGenerator extends InvoicingTestBase {
final Subscription sub = createZombieSubscription(subscriptionId);
final Currency currency = Currency.USD;
- return createMockBillingEvent(null, sub, startDate.toDateTimeAtStartOfDay(), plan, planPhase,
+ return invoiceUtil.createMockBillingEvent(null, sub, startDate.toDateTimeAtStartOfDay(), plan, planPhase,
planPhase.getFixedPrice() == null ? null : planPhase.getFixedPrice().getPrice(currency),
planPhase.getRecurringPrice() == null ? null : planPhase.getRecurringPrice().getPrice(currency),
currency, planPhase.getBillingPeriod(),
@@ -933,7 +931,7 @@ public class TestDefaultInvoiceGenerator extends InvoicingTestBase {
events.setAccountInvoiceOff(true);
final Subscription sub = createZombieSubscription();
- final LocalDate startDate = buildDate(2011, 9, 1);
+ final LocalDate startDate = invoiceUtil.buildDate(2011, 9, 1);
final Plan plan = new MockPlan();
final BigDecimal rate1 = TEN;
@@ -942,7 +940,7 @@ public class TestDefaultInvoiceGenerator extends InvoicingTestBase {
final BillingEvent event = createBillingEvent(sub.getId(), startDate, plan, phase, 1);
events.add(event);
- final LocalDate targetDate = buildDate(2011, 10, 3);
+ final LocalDate targetDate = invoiceUtil.buildDate(2011, 10, 3);
final UUID accountId = UUID.randomUUID();
final Invoice invoice = generator.generateInvoice(accountId, events, null, targetDate, Currency.USD);
diff --git a/invoice/src/test/java/com/ning/billing/invoice/generator/TestDefaultInvoiceGeneratorUnit.java b/invoice/src/test/java/com/ning/billing/invoice/generator/TestDefaultInvoiceGeneratorUnit.java
index c5c7168..eedaa03 100644
--- a/invoice/src/test/java/com/ning/billing/invoice/generator/TestDefaultInvoiceGeneratorUnit.java
+++ b/invoice/src/test/java/com/ning/billing/invoice/generator/TestDefaultInvoiceGeneratorUnit.java
@@ -22,10 +22,10 @@ import java.util.List;
import java.util.UUID;
import org.joda.time.LocalDate;
-import org.testng.annotations.BeforeClass;
import org.testng.annotations.Test;
import com.ning.billing.catalog.api.Currency;
+import com.ning.billing.invoice.InvoiceTestSuiteNoDB;
import com.ning.billing.invoice.api.Invoice;
import com.ning.billing.invoice.api.InvoiceItem;
import com.ning.billing.invoice.api.InvoiceItemType;
@@ -33,19 +33,12 @@ import com.ning.billing.invoice.model.CreditBalanceAdjInvoiceItem;
import com.ning.billing.invoice.model.FixedPriceInvoiceItem;
import com.ning.billing.invoice.model.RecurringInvoiceItem;
import com.ning.billing.invoice.model.RepairAdjInvoiceItem;
-import com.ning.billing.invoice.tests.InvoicingTestBase;
-import com.ning.billing.util.clock.Clock;
-import com.ning.billing.util.clock.ClockMock;
-import com.ning.billing.util.config.InvoiceConfig;
import static org.mockito.Mockito.mock;
import static org.mockito.Mockito.when;
import static org.testng.Assert.assertEquals;
-public class TestDefaultInvoiceGeneratorUnit extends InvoicingTestBase {
-
- private DefaultInvoiceGenerator gen;
- private Clock clock;
+public class TestDefaultInvoiceGeneratorUnit extends InvoiceTestSuiteNoDB {
private final UUID invoiceId = UUID.randomUUID();
private final UUID accountId = UUID.randomUUID();
@@ -55,28 +48,6 @@ public class TestDefaultInvoiceGeneratorUnit extends InvoicingTestBase {
private final String phaseName = "my-phase";
private final Currency currency = Currency.USD;
- public static final class TestDefaultInvoiceGeneratorMock extends DefaultInvoiceGenerator {
-
- public TestDefaultInvoiceGeneratorMock(final Clock clock, final InvoiceConfig config) {
- super(clock, config);
- }
- }
-
- @BeforeClass(groups = "fast")
- public void setup() {
- clock = new ClockMock();
- gen = new TestDefaultInvoiceGeneratorMock(clock, new InvoiceConfig() {
- @Override
- public boolean isEmailNotificationsEnabled() {
- return false;
- }
-
- @Override
- public int getNumberOfMonthsInFuture() {
- return 5;
- }
- });
- }
@Test(groups = "fast")
public void testRemoveCancellingInvoiceItemsFixedPrice() {
@@ -92,7 +63,7 @@ public class TestDefaultInvoiceGeneratorUnit extends InvoicingTestBase {
items.add(item1);
items.add(new RepairAdjInvoiceItem(invoiceId, accountId, startDate, endDate, amount.negate(), currency, item1.getId()));
items.add(new RecurringInvoiceItem(invoiceId, accountId, bundleId, subscriptionId, planName, phaseName, endDate, nextEndDate, amount2, rate2, currency));
- gen.removeCancellingInvoiceItems(items);
+ ((DefaultInvoiceGenerator) generator).removeCancellingInvoiceItems(items);
assertEquals(items.size(), 1);
final InvoiceItem leftItem = items.get(0);
assertEquals(leftItem.getInvoiceItemType(), InvoiceItemType.RECURRING);
@@ -114,7 +85,7 @@ public class TestDefaultInvoiceGeneratorUnit extends InvoicingTestBase {
items.add(item1);
items.add(new RepairAdjInvoiceItem(invoiceId, accountId, startDate, endDate, amount1.negate(), currency, item1.getId()));
items.add(new RecurringInvoiceItem(invoiceId, accountId, bundleId, subscriptionId, planName, phaseName, endDate, nextEndDate, amount2, rate2, currency));
- gen.removeCancellingInvoiceItems(items);
+ ((DefaultInvoiceGenerator) generator).removeCancellingInvoiceItems(items);
assertEquals(items.size(), 1);
final InvoiceItem leftItem = items.get(0);
assertEquals(leftItem.getInvoiceItemType(), InvoiceItemType.RECURRING);
@@ -138,7 +109,7 @@ public class TestDefaultInvoiceGeneratorUnit extends InvoicingTestBase {
final InvoiceItem other1 = new FixedPriceInvoiceItem(invoiceId, accountId, bundleId, subscriptionId, planName, phaseName, startDate, amount, currency);
proposed.add(other1);
- gen.removeDuplicatedInvoiceItems(proposed, existing);
+ ((DefaultInvoiceGenerator) generator).removeDuplicatedInvoiceItems(proposed, existing);
assertEquals(existing.size(), 1);
assertEquals(proposed.size(), 0);
}
@@ -160,7 +131,7 @@ public class TestDefaultInvoiceGeneratorUnit extends InvoicingTestBase {
proposed.add(other1);
proposed.add(other2);
- gen.removeDuplicatedInvoiceItems(proposed, existing);
+ ((DefaultInvoiceGenerator) generator).removeDuplicatedInvoiceItems(proposed, existing);
assertEquals(existing.size(), 0);
assertEquals(proposed.size(), 1);
}
@@ -187,7 +158,7 @@ public class TestDefaultInvoiceGeneratorUnit extends InvoicingTestBase {
proposed.add(other1);
proposed.add(other2);
- gen.removeDuplicatedInvoiceItems(proposed, existing);
+ ((DefaultInvoiceGenerator) generator).removeDuplicatedInvoiceItems(proposed, existing);
assertEquals(existing.size(), 0);
assertEquals(proposed.size(), 1);
}
@@ -214,7 +185,7 @@ public class TestDefaultInvoiceGeneratorUnit extends InvoicingTestBase {
proposed.add(item1);
proposed.add(other);
- gen.removeDuplicatedInvoiceItems(proposed, existing);
+ ((DefaultInvoiceGenerator) generator).removeDuplicatedInvoiceItems(proposed, existing);
assertEquals(existing.size(), 0);
assertEquals(proposed.size(), 1);
final InvoiceItem leftItem = proposed.get(0);
@@ -243,7 +214,7 @@ public class TestDefaultInvoiceGeneratorUnit extends InvoicingTestBase {
proposed.add(item1);
proposed.add(other);
- gen.removeDuplicatedInvoiceItems(proposed, existing);
+ ((DefaultInvoiceGenerator) generator).removeDuplicatedInvoiceItems(proposed, existing);
assertEquals(existing.size(), 0);
assertEquals(proposed.size(), 1);
final InvoiceItem leftItem = proposed.get(0);
@@ -273,7 +244,7 @@ public class TestDefaultInvoiceGeneratorUnit extends InvoicingTestBase {
final InvoiceItem other = new RecurringInvoiceItem(invoiceId, accountId, bundleId, subscriptionId, planName, phaseName, endDate, nextEndDate, amount2, rate2, currency);
proposed.add(other);
- gen.addRepairedItems(existing, proposed);
+ ((DefaultInvoiceGenerator) generator).addRepairedItems(existing, proposed);
assertEquals(existing.size(), 1);
assertEquals(proposed.size(), 2);
final InvoiceItem leftItem1 = proposed.get(0);
@@ -318,7 +289,7 @@ public class TestDefaultInvoiceGeneratorUnit extends InvoicingTestBase {
proposed.add(reversedItem1);
proposed.add(newItem1);
- gen.generateCBAForExistingInvoices(accountId, existingInvoices, proposed, currency);
+ ((DefaultInvoiceGenerator) generator).generateCBAForExistingInvoices(accountId, existingInvoices, proposed, currency);
assertEquals(proposed.size(), 3);
final InvoiceItem reversedItemCheck1 = proposed.get(0);
@@ -379,7 +350,7 @@ public class TestDefaultInvoiceGeneratorUnit extends InvoicingTestBase {
final InvoiceItem item2 = new RecurringInvoiceItem(invoiceId, accountId, bundleId, subscriptionId, planName, phaseName, startDate.plusMonths(1), endDate.plusMonths(1), newAmount2, newRate2, currency);
proposed.add(item2);
- gen.consumeExistingCredit(invoiceId, firstInvoiceId, existing, proposed, currency);
+ ((DefaultInvoiceGenerator) generator).consumeExistingCredit(invoiceId, firstInvoiceId, existing, proposed, currency);
assertEquals(proposed.size(), 2);
final InvoiceItem item2Check = proposed.get(0);
assertEquals(item2Check.getInvoiceId(), invoiceId);
diff --git a/invoice/src/test/java/com/ning/billing/invoice/generator/TestInvoiceDateUtils.java b/invoice/src/test/java/com/ning/billing/invoice/generator/TestInvoiceDateUtils.java
index 311b0a2..5958a34 100644
--- a/invoice/src/test/java/com/ning/billing/invoice/generator/TestInvoiceDateUtils.java
+++ b/invoice/src/test/java/com/ning/billing/invoice/generator/TestInvoiceDateUtils.java
@@ -24,8 +24,9 @@ import org.testng.Assert;
import org.testng.annotations.Test;
import com.ning.billing.catalog.api.BillingPeriod;
+import com.ning.billing.invoice.InvoiceTestSuiteNoDB;
-public class TestInvoiceDateUtils {
+public class TestInvoiceDateUtils extends InvoiceTestSuiteNoDB {
@Test(groups = "fast")
public void testLastBCDShouldNotBeBeforePreviousBCD() throws Exception {
diff --git a/invoice/src/test/java/com/ning/billing/invoice/glue/TestInvoiceModule.java b/invoice/src/test/java/com/ning/billing/invoice/glue/TestInvoiceModule.java
index dc73fed..01c1eb6 100644
--- a/invoice/src/test/java/com/ning/billing/invoice/glue/TestInvoiceModule.java
+++ b/invoice/src/test/java/com/ning/billing/invoice/glue/TestInvoiceModule.java
@@ -18,24 +18,21 @@ package com.ning.billing.invoice.glue;
import org.mockito.Mockito;
-import com.ning.billing.GuicyKillbillTestWithEmbeddedDBModule;
import com.ning.billing.catalog.glue.CatalogModule;
+import com.ning.billing.invoice.TestInvoiceUtil;
import com.ning.billing.mock.glue.MockGlobalLockerModule;
import com.ning.billing.util.email.EmailModule;
import com.ning.billing.util.email.templates.TemplateModule;
import com.ning.billing.util.glue.CacheModule;
-import com.ning.billing.util.glue.CallContextModule;
import com.ning.billing.util.glue.CustomFieldModule;
-import com.ning.billing.util.glue.NonEntityDaoModule;
import com.ning.billing.util.glue.NotificationQueueModule;
import com.ning.billing.util.glue.TagStoreModule;
import com.ning.billing.util.svcapi.account.AccountInternalApi;
import com.ning.billing.util.svcapi.entitlement.EntitlementInternalApi;
import com.ning.billing.util.svcapi.junction.BillingInternalApi;
-public class TestInvoiceModule extends DefaultInvoiceModule {
-
+public class TestInvoiceModule extends DefaultInvoiceModule {
private void installExternalApis() {
bind(EntitlementInternalApi.class).toInstance(Mockito.mock(EntitlementInternalApi.class));
@@ -60,5 +57,6 @@ public class TestInvoiceModule extends DefaultInvoiceModule {
installExternalApis();
+ bind(TestInvoiceUtil.class).asEagerSingleton();
}
}
diff --git a/invoice/src/test/java/com/ning/billing/invoice/glue/TestInvoiceModuleWithEmbeddedDb.java b/invoice/src/test/java/com/ning/billing/invoice/glue/TestInvoiceModuleWithEmbeddedDb.java
index f52f819..5986a0f 100644
--- a/invoice/src/test/java/com/ning/billing/invoice/glue/TestInvoiceModuleWithEmbeddedDb.java
+++ b/invoice/src/test/java/com/ning/billing/invoice/glue/TestInvoiceModuleWithEmbeddedDb.java
@@ -17,14 +17,18 @@
package com.ning.billing.invoice.glue;
import com.ning.billing.GuicyKillbillTestWithEmbeddedDBModule;
+import com.ning.billing.invoice.InvoiceListener;
+import com.ning.billing.invoice.TestInvoiceNotificationQListener;
import com.ning.billing.util.glue.BusModule;
-import com.ning.billing.util.glue.CustomFieldModule;
import com.ning.billing.util.glue.NonEntityDaoModule;
-import com.ning.billing.util.glue.NotificationQueueModule;
-import com.ning.billing.util.glue.TagStoreModule;
public class TestInvoiceModuleWithEmbeddedDb extends TestInvoiceModule {
+ @Override
+ protected void installInvoiceListener() {
+ bind(InvoiceListener.class).to(TestInvoiceNotificationQListener.class).asEagerSingleton();
+ bind(TestInvoiceNotificationQListener.class).asEagerSingleton();
+ }
@Override
public void configure() {
diff --git a/invoice/src/test/java/com/ning/billing/invoice/InvoiceTestSuiteNoDB.java b/invoice/src/test/java/com/ning/billing/invoice/InvoiceTestSuiteNoDB.java
index 8c7dd0a..d322910 100644
--- a/invoice/src/test/java/com/ning/billing/invoice/InvoiceTestSuiteNoDB.java
+++ b/invoice/src/test/java/com/ning/billing/invoice/InvoiceTestSuiteNoDB.java
@@ -26,13 +26,11 @@ import org.testng.annotations.BeforeClass;
import org.testng.annotations.BeforeMethod;
import com.ning.billing.KillbillTestSuite;
-import com.ning.billing.catalog.api.Currency;
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.dao.InvoiceDao;
import com.ning.billing.invoice.generator.InvoiceGenerator;
-import com.ning.billing.invoice.glue.InvoiceModuleWithEmbeddedDb;
import com.ning.billing.invoice.glue.TestInvoiceModuleNoDB;
import com.ning.billing.util.api.TagUserApi;
import com.ning.billing.util.cache.CacheControllerDispatcher;
@@ -57,8 +55,6 @@ public abstract class InvoiceTestSuiteNoDB extends KillbillTestSuite {
private static final Logger log = LoggerFactory.getLogger(InvoiceTestSuiteNoDB.class);
- protected static final Currency accountCurrency = Currency.USD;
-
@Inject
protected InternalBus bus;
@Inject
@@ -91,6 +87,8 @@ public abstract class InvoiceTestSuiteNoDB extends KillbillTestSuite {
protected InvoiceInternalApi invoiceInternalApi;
@Inject
protected InvoiceDao invoiceDao;
+ @Inject
+ protected TestInvoiceUtil invoiceUtil;
@BeforeClass(groups = "fast")
@@ -113,7 +111,7 @@ public abstract class InvoiceTestSuiteNoDB extends KillbillTestSuite {
}
private static void loadSystemPropertiesFromClasspath(final String resource) {
- final URL url = InvoiceModuleWithEmbeddedDb.class.getResource(resource);
+ final URL url = InvoiceTestSuiteNoDB.class.getResource(resource);
assertNotNull(url);
try {
System.getProperties().load(url.openStream());
diff --git a/invoice/src/test/java/com/ning/billing/invoice/InvoiceTestSuiteWithEmbeddedDB.java b/invoice/src/test/java/com/ning/billing/invoice/InvoiceTestSuiteWithEmbeddedDB.java
index 683267b..25e4a60 100644
--- a/invoice/src/test/java/com/ning/billing/invoice/InvoiceTestSuiteWithEmbeddedDB.java
+++ b/invoice/src/test/java/com/ning/billing/invoice/InvoiceTestSuiteWithEmbeddedDB.java
@@ -19,7 +19,6 @@ package com.ning.billing.invoice;
import java.io.IOException;
import java.net.URL;
-import org.skife.jdbi.v2.IDBI;
import org.slf4j.Logger;
import org.slf4j.LoggerFactory;
import org.testng.annotations.AfterMethod;
@@ -28,21 +27,21 @@ import org.testng.annotations.BeforeMethod;
import com.ning.billing.GuicyKillbillTestSuiteWithEmbeddedDB;
import com.ning.billing.catalog.api.Currency;
+import com.ning.billing.invoice.api.DefaultInvoiceService;
import com.ning.billing.invoice.api.InvoiceMigrationApi;
import com.ning.billing.invoice.api.InvoicePaymentApi;
+import com.ning.billing.invoice.api.InvoiceService;
import com.ning.billing.invoice.api.InvoiceUserApi;
import com.ning.billing.invoice.dao.InvoiceDao;
-import com.ning.billing.invoice.dao.InvoiceItemSqlDao;
-import com.ning.billing.invoice.dao.InvoicePaymentSqlDao;
-import com.ning.billing.invoice.dao.InvoiceSqlDao;
import com.ning.billing.invoice.generator.InvoiceGenerator;
-import com.ning.billing.invoice.glue.InvoiceModuleWithEmbeddedDb;
import com.ning.billing.invoice.glue.TestInvoiceModuleWithEmbeddedDb;
+import com.ning.billing.invoice.notification.NextBillingDateNotifier;
import com.ning.billing.util.api.TagUserApi;
import com.ning.billing.util.cache.CacheControllerDispatcher;
import com.ning.billing.util.callcontext.InternalCallContextFactory;
import com.ning.billing.util.clock.Clock;
import com.ning.billing.util.globallocker.GlobalLocker;
+import com.ning.billing.util.notificationq.NotificationQueueService;
import com.ning.billing.util.svcapi.account.AccountInternalApi;
import com.ning.billing.util.svcapi.entitlement.EntitlementInternalApi;
import com.ning.billing.util.svcapi.invoice.InvoiceInternalApi;
@@ -64,6 +63,8 @@ public abstract class InvoiceTestSuiteWithEmbeddedDB extends GuicyKillbillTestSu
protected static final Currency accountCurrency = Currency.USD;
@Inject
+ protected InvoiceService invoiceService;
+ @Inject
protected InternalBus bus;
@Inject
protected CacheControllerDispatcher controllerDispatcher;
@@ -95,6 +96,14 @@ public abstract class InvoiceTestSuiteWithEmbeddedDB extends GuicyKillbillTestSu
protected InternalCallContextFactory internalCallContextFactory;
@Inject
protected InvoiceInternalApi invoiceInternalApi;
+ @Inject
+ protected NextBillingDateNotifier nextBillingDateNotifier;
+ @Inject
+ protected NotificationQueueService notificationQueueService;
+ @Inject
+ protected TestInvoiceUtil invoiceUtil;
+ @Inject
+ protected TestInvoiceNotificationQListener testInvoiceNotificationQListener;
@BeforeClass(groups = "slow")
@@ -107,17 +116,30 @@ public abstract class InvoiceTestSuiteWithEmbeddedDB extends GuicyKillbillTestSu
}
@BeforeMethod(groups = "slow")
- public void setupTest() {
+ public void setupTest() throws Exception {
bus.start();
+ restartInvoiceService(invoiceService);
+ }
+
+ private void restartInvoiceService(final InvoiceService invoiceService) throws Exception {
+ ((DefaultInvoiceService) invoiceService).initialize();
+ ((DefaultInvoiceService) invoiceService).registerForNotifications();
+ ((DefaultInvoiceService) invoiceService).start();
+ }
+
+ private void stopInvoiceService(final InvoiceService invoiceService) throws Exception {
+ ((DefaultInvoiceService) invoiceService).unregisterForNotifications();
+ ((DefaultInvoiceService) invoiceService).stop();
}
@AfterMethod(groups = "slow")
- public void cleanupTest() {
+ public void cleanupTest() throws Exception {
bus.stop();
+ stopInvoiceService(invoiceService);
}
private static void loadSystemPropertiesFromClasspath(final String resource) {
- final URL url = InvoiceModuleWithEmbeddedDb.class.getResource(resource);
+ final URL url = InvoiceTestSuiteWithEmbeddedDB.class.getResource(resource);
assertNotNull(url);
try {
System.getProperties().load(url.openStream());
@@ -125,5 +147,4 @@ public abstract class InvoiceTestSuiteWithEmbeddedDB extends GuicyKillbillTestSu
throw new RuntimeException(e);
}
}
-
}
diff --git a/invoice/src/test/java/com/ning/billing/invoice/model/TestExternalChargeInvoiceItem.java b/invoice/src/test/java/com/ning/billing/invoice/model/TestExternalChargeInvoiceItem.java
index c525627..178f3da 100644
--- a/invoice/src/test/java/com/ning/billing/invoice/model/TestExternalChargeInvoiceItem.java
+++ b/invoice/src/test/java/com/ning/billing/invoice/model/TestExternalChargeInvoiceItem.java
@@ -24,13 +24,12 @@ import org.testng.Assert;
import org.testng.annotations.Test;
import com.ning.billing.catalog.api.Currency;
+import com.ning.billing.invoice.InvoiceTestSuiteNoDB;
import com.ning.billing.invoice.api.InvoiceItemType;
import com.ning.billing.util.clock.Clock;
import com.ning.billing.util.clock.ClockMock;
-public class TestExternalChargeInvoiceItem {
-
- private final Clock clock = new ClockMock();
+public class TestExternalChargeInvoiceItem extends InvoiceTestSuiteNoDB {
@Test(groups = "fast")
public void testEquals() throws Exception {
diff --git a/invoice/src/test/java/com/ning/billing/invoice/model/TestInAdvanceBillingMode.java b/invoice/src/test/java/com/ning/billing/invoice/model/TestInAdvanceBillingMode.java
index 3231760..a144342 100644
--- a/invoice/src/test/java/com/ning/billing/invoice/model/TestInAdvanceBillingMode.java
+++ b/invoice/src/test/java/com/ning/billing/invoice/model/TestInAdvanceBillingMode.java
@@ -27,8 +27,9 @@ import org.testng.Assert;
import org.testng.annotations.Test;
import com.ning.billing.catalog.api.BillingPeriod;
+import com.ning.billing.invoice.InvoiceTestSuiteNoDB;
-public class TestInAdvanceBillingMode {
+public class TestInAdvanceBillingMode extends InvoiceTestSuiteNoDB {
private static final DateTimeZone TIMEZONE = DateTimeZone.forID("Pacific/Pitcairn");
private static final BillingPeriod BILLING_PERIOD = BillingPeriod.MONTHLY;
diff --git a/invoice/src/test/java/com/ning/billing/invoice/model/TestItemAdjInvoiceItem.java b/invoice/src/test/java/com/ning/billing/invoice/model/TestItemAdjInvoiceItem.java
index 316b613..00dbcca 100644
--- a/invoice/src/test/java/com/ning/billing/invoice/model/TestItemAdjInvoiceItem.java
+++ b/invoice/src/test/java/com/ning/billing/invoice/model/TestItemAdjInvoiceItem.java
@@ -24,10 +24,11 @@ import org.testng.Assert;
import org.testng.annotations.Test;
import com.ning.billing.catalog.api.Currency;
+import com.ning.billing.invoice.InvoiceTestSuiteNoDB;
import com.ning.billing.invoice.api.InvoiceItem;
import com.ning.billing.invoice.api.InvoiceItemType;
-public class TestItemAdjInvoiceItem {
+public class TestItemAdjInvoiceItem extends InvoiceTestSuiteNoDB {
@Test(groups = "fast")
public void testType() throws Exception {
diff --git a/invoice/src/test/java/com/ning/billing/invoice/notification/TestNextBillingDateNotifier.java b/invoice/src/test/java/com/ning/billing/invoice/notification/TestNextBillingDateNotifier.java
index 3d5cc76..0090f26 100644
--- a/invoice/src/test/java/com/ning/billing/invoice/notification/TestNextBillingDateNotifier.java
+++ b/invoice/src/test/java/com/ning/billing/invoice/notification/TestNextBillingDateNotifier.java
@@ -16,187 +16,38 @@
package com.ning.billing.invoice.notification;
-import java.io.IOException;
-import java.sql.SQLException;
import java.util.UUID;
import java.util.concurrent.Callable;
import org.joda.time.DateTime;
-import org.mockito.Mockito;
-import org.skife.config.ConfigurationObjectFactory;
-import org.skife.jdbi.v2.IDBI;
import org.testng.Assert;
-import org.testng.annotations.AfterClass;
-import org.testng.annotations.BeforeClass;
import org.testng.annotations.Test;
-import com.ning.billing.KillbillTestSuiteWithEmbeddedDB;
-import com.ning.billing.catalog.MockCatalogModule;
-import com.ning.billing.dbi.DBIProvider;
-import com.ning.billing.dbi.DBTestingHelper;
-import com.ning.billing.dbi.DbiConfig;
-import com.ning.billing.entitlement.api.user.EntitlementUserApiException;
import com.ning.billing.entitlement.api.user.Subscription;
-import com.ning.billing.invoice.InvoiceDispatcher;
-import com.ning.billing.invoice.InvoiceListener;
import com.ning.billing.invoice.InvoiceTestSuiteWithEmbeddedDB;
-import com.ning.billing.invoice.api.formatters.InvoiceFormatterFactory;
-import com.ning.billing.invoice.glue.InvoiceModuleWithMocks;
-import com.ning.billing.invoice.template.formatters.DefaultInvoiceFormatterFactory;
-import com.ning.billing.lifecycle.KillbillService;
-import com.ning.billing.mock.glue.MockJunctionModule;
-import com.ning.billing.util.cache.CacheControllerDispatcher;
-import com.ning.billing.util.callcontext.InternalCallContextFactory;
-import com.ning.billing.util.callcontext.InternalTenantContext;
-import com.ning.billing.util.clock.Clock;
+import com.ning.billing.invoice.api.DefaultInvoiceService;
import com.ning.billing.util.clock.ClockMock;
-import com.ning.billing.util.config.InvoiceConfig;
-import com.ning.billing.util.dao.NonEntityDao;
-import com.ning.billing.util.email.templates.TemplateModule;
-import com.ning.billing.util.entity.dao.EntitySqlDao;
-import com.ning.billing.util.entity.dao.EntitySqlDaoTransactionWrapper;
-import com.ning.billing.util.entity.dao.EntitySqlDaoTransactionalJdbiWrapper;
-import com.ning.billing.util.entity.dao.EntitySqlDaoWrapperFactory;
-import com.ning.billing.util.glue.BusModule;
-import com.ning.billing.util.glue.BusModule.BusType;
-import com.ning.billing.util.glue.CacheModule;
-import com.ning.billing.util.glue.NonEntityDaoModule;
-import com.ning.billing.util.glue.NotificationQueueModule;
-import com.ning.billing.util.glue.TagStoreModule;
-import com.ning.billing.util.notificationq.NotificationQueueService;
-import com.ning.billing.util.svcapi.account.AccountInternalApi;
-import com.ning.billing.util.svcapi.entitlement.EntitlementInternalApi;
-import com.ning.billing.util.svcsapi.bus.InternalBus;
-
-import com.google.inject.AbstractModule;
-import com.google.inject.Guice;
-import com.google.inject.Injector;
-import com.google.inject.Stage;
+import com.ning.billing.util.notificationq.NotificationQueue;
import static com.jayway.awaitility.Awaitility.await;
import static java.util.concurrent.TimeUnit.MINUTES;
public class TestNextBillingDateNotifier extends InvoiceTestSuiteWithEmbeddedDB {
- private Clock clock;
- private DefaultNextBillingDateNotifier notifier;
- private InternalBus eventBus;
- private InvoiceListenerMock listener;
- private NotificationQueueService notificationQueueService;
- private InternalCallContextFactory internalCallContextFactory;
- private EntitySqlDaoTransactionalJdbiWrapper entitySqlDaoTransactionalJdbiWrapper;
- private CacheControllerDispatcher controllerDispatcher;
- private NonEntityDao nonEntityDao;
-
- private static final class InvoiceListenerMock extends InvoiceListener {
-
- int eventCount = 0;
- UUID latestSubscriptionId = null;
-
- public InvoiceListenerMock(final InternalCallContextFactory internalCallContextFactory, final InvoiceDispatcher dispatcher) {
- super(internalCallContextFactory, dispatcher);
- }
-
- @Override
- public void handleNextBillingDateEvent(final UUID subscriptionId, final DateTime eventDateTime, final UUID userToken, final Long accountRecordId, final Long tenantRecordId) {
- eventCount++;
- latestSubscriptionId = subscriptionId;
- }
-
- public int getEventCount() {
- return eventCount;
- }
-
- public UUID getLatestSubscriptionId() {
- return latestSubscriptionId;
- }
-
- }
-
- @BeforeClass(groups = {"slow"})
- public void setup() throws KillbillService.ServiceException, IOException, ClassNotFoundException, SQLException, EntitlementUserApiException {
- //TestApiBase.loadSystemPropertiesFromClasspath("/entitlement.properties");
- final Injector g = Guice.createInjector(Stage.PRODUCTION, new AbstractModule() {
- @Override
- protected void configure() {
-
- final ClockMock clock = new ClockMock();
- bind(Clock.class).toInstance(clock);
- bind(ClockMock.class).toInstance(clock);
-
- install(new BusModule(BusType.MEMORY));
- install(new InvoiceModuleWithMocks());
- install(new MockJunctionModule());
- install(new MockCatalogModule());
- install(new NotificationQueueModule());
- install(new TemplateModule());
- install(new TagStoreModule());
- install(new CacheModule());
- install(new NonEntityDaoModule());
-
- final DBTestingHelper helper = KillbillTestSuiteWithEmbeddedDB.getDBTestingHelper();
- if (helper.isUsingLocalInstance()) {
- bind(IDBI.class).toProvider(DBIProvider.class).asEagerSingleton();
- final DbiConfig config = new ConfigurationObjectFactory(System.getProperties()).build(DbiConfig.class);
- bind(DbiConfig.class).toInstance(config);
- } else {
- final IDBI dbi = helper.getDBI();
- bind(IDBI.class).toInstance(dbi);
- }
-
- /*
- final InternalCallContextFactory internalCallContextFactory = new InternalCallContextFactory(helper.getDBI(), clock, nonEntityDao);
- bind(InternalCallContextFactory.class).toInstance(internalCallContextFactory);
-*/
- bind(InvoiceFormatterFactory.class).to(DefaultInvoiceFormatterFactory.class).asEagerSingleton();
-
- bind(AccountInternalApi.class).toInstance(Mockito.mock(AccountInternalApi.class));
- bind(EntitlementInternalApi.class).toInstance(Mockito.mock(EntitlementInternalApi.class));
- }
- });
-
- clock = g.getInstance(Clock.class);
- final IDBI dbi = g.getInstance(IDBI.class);
-
- nonEntityDao = g.getInstance(NonEntityDao.class);
- controllerDispatcher = g.getInstance(CacheControllerDispatcher.class);
-
- entitySqlDaoTransactionalJdbiWrapper = new EntitySqlDaoTransactionalJdbiWrapper(dbi, clock, controllerDispatcher, nonEntityDao);
-
- eventBus = g.getInstance(InternalBus.class);
- notificationQueueService = g.getInstance(NotificationQueueService.class);
- final InvoiceDispatcher dispatcher = g.getInstance(InvoiceDispatcher.class);
-
- final Subscription subscription = Mockito.mock(Subscription.class);
- final EntitlementInternalApi entitlementUserApi = Mockito.mock(EntitlementInternalApi.class);
- Mockito.when(entitlementUserApi.getSubscriptionFromId(Mockito.<UUID>any(), Mockito.<InternalTenantContext>any())).thenReturn(subscription);
-
- internalCallContextFactory = g.getInstance(InternalCallContextFactory.class);
- listener = new InvoiceListenerMock(internalCallContextFactory, dispatcher);
- notifier = new DefaultNextBillingDateNotifier(notificationQueueService, g.getInstance(InvoiceConfig.class), entitlementUserApi,
- listener, internalCallContextFactory);
- }
-
@Test(groups = "slow")
public void testInvoiceNotifier() throws Exception {
final UUID accountId = UUID.randomUUID();
- final UUID subscriptionId = new UUID(0L, 1L);
+ final Subscription subscription = invoiceUtil.createSubscription();
+ final UUID subscriptionId = subscription.getId();
final DateTime now = new DateTime();
final DateTime readyTime = now.plusMillis(2000);
- final NextBillingDatePoster poster = new DefaultNextBillingDatePoster(notificationQueueService, internalCallContextFactory);
- eventBus.start();
- notifier.initialize();
- notifier.start();
- entitySqlDaoTransactionalJdbiWrapper.execute(new EntitySqlDaoTransactionWrapper<Void>() {
- @Override
- public Void inTransaction(final EntitySqlDaoWrapperFactory<EntitySqlDao> entitySqlDaoWrapperFactory) throws Exception {
- poster.insertNextBillingNotification(entitySqlDaoWrapperFactory, accountId, subscriptionId, readyTime, UUID.randomUUID());
- return null;
- }
- });
+ final NotificationQueue nextBillingQueue = notificationQueueService.getNotificationQueue(DefaultInvoiceService.INVOICE_SERVICE_NAME, DefaultNextBillingDateNotifier.NEXT_BILLING_DATE_NOTIFIER_QUEUE);
+
+
+ nextBillingQueue.recordFutureNotification(now, new NextBillingDateNotificationKey(subscriptionId), internalCallContext);
// Move time in the future after the notification effectiveDate
((ClockMock) clock).setDeltaFromReality(3000);
@@ -204,16 +55,11 @@ public class TestNextBillingDateNotifier extends InvoiceTestSuiteWithEmbeddedDB
await().atMost(1, MINUTES).until(new Callable<Boolean>() {
@Override
public Boolean call() throws Exception {
- return listener.getEventCount() == 1;
+ return testInvoiceNotificationQListener.getEventCount() == 1;
}
});
- Assert.assertEquals(listener.getEventCount(), 1);
- Assert.assertEquals(listener.getLatestSubscriptionId(), subscriptionId);
- }
-
- @AfterClass(groups = "slow")
- public void tearDown() throws Exception {
- notifier.stop();
+ Assert.assertEquals(testInvoiceNotificationQListener.getEventCount(), 1);
+ Assert.assertEquals(testInvoiceNotificationQListener.getLatestSubscriptionId(), subscriptionId);
}
}
diff --git a/invoice/src/test/java/com/ning/billing/invoice/template/formatters/TestDefaultInvoiceFormatter.java b/invoice/src/test/java/com/ning/billing/invoice/template/formatters/TestDefaultInvoiceFormatter.java
index 1c6726c..1bad422 100644
--- a/invoice/src/test/java/com/ning/billing/invoice/template/formatters/TestDefaultInvoiceFormatter.java
+++ b/invoice/src/test/java/com/ning/billing/invoice/template/formatters/TestDefaultInvoiceFormatter.java
@@ -26,6 +26,7 @@ import java.util.UUID;
import org.joda.time.LocalDate;
import org.skife.config.ConfigurationObjectFactory;
import org.testng.Assert;
+import org.testng.annotations.BeforeClass;
import org.testng.annotations.BeforeSuite;
import org.testng.annotations.Test;
@@ -49,8 +50,9 @@ public class TestDefaultInvoiceFormatter extends InvoiceTestSuiteNoDB {
private TranslatorConfig config;
private MustacheTemplateEngine templateEngine;
- @BeforeSuite(groups = "fast")
- public void setup() {
+ @BeforeClass(groups = "fast")
+ public void setup() throws Exception {
+ super.setup();
config = new ConfigurationObjectFactory(System.getProperties()).build(TranslatorConfig.class);
templateEngine = new MustacheTemplateEngine();
}
diff --git a/invoice/src/test/java/com/ning/billing/invoice/template/formatters/TestDefaultInvoiceItemFormatter.java b/invoice/src/test/java/com/ning/billing/invoice/template/formatters/TestDefaultInvoiceItemFormatter.java
index 9c14d71..becf514 100644
--- a/invoice/src/test/java/com/ning/billing/invoice/template/formatters/TestDefaultInvoiceItemFormatter.java
+++ b/invoice/src/test/java/com/ning/billing/invoice/template/formatters/TestDefaultInvoiceItemFormatter.java
@@ -26,6 +26,7 @@ import org.joda.time.LocalDate;
import org.joda.time.format.DateTimeFormat;
import org.skife.config.ConfigurationObjectFactory;
import org.testng.Assert;
+import org.testng.annotations.BeforeClass;
import org.testng.annotations.BeforeSuite;
import org.testng.annotations.Test;
@@ -43,8 +44,9 @@ public class TestDefaultInvoiceItemFormatter extends InvoiceTestSuiteNoDB {
private TranslatorConfig config;
private MustacheTemplateEngine templateEngine;
- @BeforeSuite(groups = "fast")
- public void setup() {
+ @BeforeClass(groups = "fast")
+ public void setup() throws Exception {
+ super.setup();
config = new ConfigurationObjectFactory(System.getProperties()).build(TranslatorConfig.class);
templateEngine = new MustacheTemplateEngine();
}
diff --git a/invoice/src/test/java/com/ning/billing/invoice/TestHtmlInvoiceGenerator.java b/invoice/src/test/java/com/ning/billing/invoice/TestHtmlInvoiceGenerator.java
index ce08611..fabe13b 100644
--- a/invoice/src/test/java/com/ning/billing/invoice/TestHtmlInvoiceGenerator.java
+++ b/invoice/src/test/java/com/ning/billing/invoice/TestHtmlInvoiceGenerator.java
@@ -27,6 +27,7 @@ import org.joda.time.LocalDate;
import org.mockito.Mockito;
import org.skife.config.ConfigurationObjectFactory;
import org.testng.Assert;
+import org.testng.annotations.BeforeClass;
import org.testng.annotations.BeforeSuite;
import org.testng.annotations.Test;
@@ -45,8 +46,9 @@ public class TestHtmlInvoiceGenerator extends InvoiceTestSuiteNoDB {
private HtmlInvoiceGenerator g;
- @BeforeSuite(groups = "fast")
- public void setup() {
+ @BeforeClass(groups = "fast")
+ public void setup() throws Exception {
+ super.setup();
final TranslatorConfig config = new ConfigurationObjectFactory(System.getProperties()).build(TranslatorConfig.class);
final TemplateEngine templateEngine = new MustacheTemplateEngine();
final InvoiceFormatterFactory factory = new DefaultInvoiceFormatterFactory();
diff --git a/invoice/src/test/java/com/ning/billing/invoice/TestInvoiceDispatcher.java b/invoice/src/test/java/com/ning/billing/invoice/TestInvoiceDispatcher.java
index c339485..ccd09f7 100644
--- a/invoice/src/test/java/com/ning/billing/invoice/TestInvoiceDispatcher.java
+++ b/invoice/src/test/java/com/ning/billing/invoice/TestInvoiceDispatcher.java
@@ -29,9 +29,7 @@ import org.mockito.Mockito;
import org.slf4j.Logger;
import org.slf4j.LoggerFactory;
import org.testng.Assert;
-import org.testng.annotations.AfterClass;
-import org.testng.annotations.BeforeSuite;
-import org.testng.annotations.Guice;
+import org.testng.annotations.BeforeMethod;
import org.testng.annotations.Test;
import com.ning.billing.account.api.Account;
@@ -51,101 +49,25 @@ import com.ning.billing.invoice.api.InvoiceApiException;
import com.ning.billing.invoice.api.InvoiceItem;
import com.ning.billing.invoice.api.InvoiceItemType;
import com.ning.billing.invoice.api.InvoiceNotifier;
-import com.ning.billing.invoice.dao.InvoiceDao;
import com.ning.billing.invoice.dao.InvoiceItemModelDao;
import com.ning.billing.invoice.dao.InvoiceModelDao;
-import com.ning.billing.invoice.generator.InvoiceGenerator;
-import com.ning.billing.invoice.notification.NextBillingDateNotifier;
import com.ning.billing.invoice.notification.NullInvoiceNotifier;
-import com.ning.billing.invoice.tests.InvoicingTestBase;
-import com.ning.billing.mock.api.MockBillCycleDay;
-import com.ning.billing.util.bus.DefaultBusService;
import com.ning.billing.util.callcontext.InternalCallContext;
-import com.ning.billing.util.callcontext.InternalCallContextFactory;
import com.ning.billing.util.callcontext.InternalTenantContext;
import com.ning.billing.util.clock.ClockMock;
-import com.ning.billing.util.globallocker.GlobalLocker;
-import com.ning.billing.util.svcapi.account.AccountInternalApi;
-import com.ning.billing.util.svcapi.entitlement.EntitlementInternalApi;
import com.ning.billing.util.svcapi.junction.BillingEventSet;
-import com.ning.billing.util.svcapi.junction.BillingInternalApi;
import com.ning.billing.util.svcapi.junction.BillingModeType;
-import com.ning.billing.util.svcsapi.bus.BusService;
-import com.google.inject.Inject;
-
-@Guice(modules = {MockModule.class})
-public class TestInvoiceDispatcher extends InvoicingTestBase {
-
- private final Logger log = LoggerFactory.getLogger(TestInvoiceDispatcher.class);
-
- @Inject
- private InvoiceGenerator generator;
-
- @Inject
- private InvoiceDao invoiceDao;
-
- @Inject
- private GlobalLocker locker;
-
- @Inject
- private NextBillingDateNotifier notifier;
-
- @Inject
- private BusService busService;
-
- @Inject
- private BillingInternalApi billingApi;
-
- @Inject
- private ClockMock clock;
-
- @Inject
- private AccountInternalApi accountInternalApi;
-
- @Inject
- private EntitlementInternalApi entitlementInternalApi;
-
- @Inject
- private InternalCallContextFactory internalCallContextFactory;
+public class TestInvoiceDispatcher extends InvoiceTestSuiteWithEmbeddedDB {
private Account account;
private Subscription subscription;
- @BeforeSuite(groups = "slow")
- public void setup() throws Exception {
- notifier.initialize();
- notifier.start();
-
- busService.getBus().start();
-
- account = Mockito.mock(Account.class);
-
- final UUID accountId = UUID.randomUUID();
-
- Mockito.when(accountInternalApi.getAccountById(Mockito.<UUID>any(), Mockito.<InternalTenantContext>any())).thenReturn(account);
-
- Mockito.when(account.getCurrency()).thenReturn(Currency.USD);
- Mockito.when(account.getId()).thenReturn(accountId);
- Mockito.when(account.isNotifiedForInvoices()).thenReturn(true);
- Mockito.when(account.getBillCycleDay()).thenReturn(new MockBillCycleDay(30));
- // The timezone is required to compute the date of the next invoice notification
- Mockito.when(account.getTimeZone()).thenReturn(DateTimeZone.UTC);
-
- subscription = Mockito.mock(Subscription.class);
- final UUID subscriptionId = UUID.randomUUID();
- Mockito.when(subscription.getId()).thenReturn(subscriptionId);
- Mockito.when(subscription.getBundleId()).thenReturn(new UUID(0L, 0L));
- }
-
- @AfterClass(groups = "slow")
- public void tearDown() {
- try {
- ((DefaultBusService) busService).stopBus();
- notifier.stop();
- } catch (Exception e) {
- log.warn("Failed to tearDown test properly ", e);
- }
+ @BeforeMethod(groups = "slow")
+ public void setupTest() throws Exception {
+ super.setupTest();
+ account = invoiceUtil.createAccount();
+ subscription = invoiceUtil.createSubscription();
}
@Test(groups = "slow")
@@ -158,16 +80,16 @@ public class TestInvoiceDispatcher extends InvoicingTestBase {
final DateTime effectiveDate = new DateTime().minusDays(1);
final Currency currency = Currency.USD;
final BigDecimal fixedPrice = null;
- events.add(createMockBillingEvent(account, subscription, effectiveDate, plan, planPhase,
- fixedPrice, BigDecimal.ONE, currency, BillingPeriod.MONTHLY, 1,
- BillingModeType.IN_ADVANCE, "", 1L, SubscriptionTransitionType.CREATE));
+ events.add(invoiceUtil.createMockBillingEvent(account, subscription, effectiveDate, plan, planPhase,
+ fixedPrice, BigDecimal.ONE, currency, BillingPeriod.MONTHLY, 1,
+ BillingModeType.IN_ADVANCE, "", 1L, SubscriptionTransitionType.CREATE));
Mockito.when(billingApi.getBillingEventsForAccountAndUpdateAccountBCD(Mockito.<UUID>any(), Mockito.<InternalCallContext>any())).thenReturn(events);
final DateTime target = new DateTime();
final InvoiceNotifier invoiceNotifier = new NullInvoiceNotifier();
- final InvoiceDispatcher dispatcher = new InvoiceDispatcher(generator, accountInternalApi, billingApi, entitlementInternalApi, invoiceDao,
+ final InvoiceDispatcher dispatcher = new InvoiceDispatcher(generator, accountApi, billingApi, entitlementApi, invoiceDao,
invoiceNotifier, locker, busService.getBus(),
clock);
@@ -199,29 +121,29 @@ public class TestInvoiceDispatcher extends InvoicingTestBase {
// Initial trial
final MockPlan bicycleTrialEvergreen1USD = MockPlan.createBicycleTrialEvergreen1USD();
- events.add(createMockBillingEvent(account, subscription, new DateTime("2012-05-01T00:03:42.000Z"), bicycleTrialEvergreen1USD,
- new MockPlanPhase(bicycleTrialEvergreen1USD, PhaseType.TRIAL), BigDecimal.ZERO, null, account.getCurrency(), BillingPeriod.NO_BILLING_PERIOD,
- 31, 31, BillingModeType.IN_ADVANCE, "CREATE", 1L, SubscriptionTransitionType.CREATE));
+ events.add(invoiceUtil.createMockBillingEvent(account, subscription, new DateTime("2012-05-01T00:03:42.000Z"), bicycleTrialEvergreen1USD,
+ new MockPlanPhase(bicycleTrialEvergreen1USD, PhaseType.TRIAL), BigDecimal.ZERO, null, account.getCurrency(), BillingPeriod.NO_BILLING_PERIOD,
+ 31, 31, BillingModeType.IN_ADVANCE, "CREATE", 1L, SubscriptionTransitionType.CREATE));
// Phase change to evergreen
- events.add(createMockBillingEvent(account, subscription, new DateTime("2012-05-31T00:03:42.000Z"), bicycleTrialEvergreen1USD,
- new MockPlanPhase(bicycleTrialEvergreen1USD, PhaseType.EVERGREEN), null, new BigDecimal("249.95"), account.getCurrency(), BillingPeriod.MONTHLY,
- 31, 31, BillingModeType.IN_ADVANCE, "PHASE", 2L, SubscriptionTransitionType.PHASE));
+ events.add(invoiceUtil.createMockBillingEvent(account, subscription, new DateTime("2012-05-31T00:03:42.000Z"), bicycleTrialEvergreen1USD,
+ new MockPlanPhase(bicycleTrialEvergreen1USD, PhaseType.EVERGREEN), null, new BigDecimal("249.95"), account.getCurrency(), BillingPeriod.MONTHLY,
+ 31, 31, BillingModeType.IN_ADVANCE, "PHASE", 2L, SubscriptionTransitionType.PHASE));
// Overdue period
- events.add(createMockBillingEvent(account, subscription, new DateTime("2012-07-15T00:00:00.000Z"), bicycleTrialEvergreen1USD,
- new MockPlanPhase(bicycleTrialEvergreen1USD, PhaseType.EVERGREEN), null, null, account.getCurrency(), BillingPeriod.NO_BILLING_PERIOD,
- 31, 31, BillingModeType.IN_ADVANCE, "", 0L, SubscriptionTransitionType.START_BILLING_DISABLED));
- events.add(createMockBillingEvent(account, subscription, new DateTime("2012-07-25T00:00:00.000Z"), bicycleTrialEvergreen1USD,
- new MockPlanPhase(bicycleTrialEvergreen1USD, PhaseType.EVERGREEN), null, new BigDecimal("249.95"), account.getCurrency(), BillingPeriod.MONTHLY,
- 31, 31, BillingModeType.IN_ADVANCE, "", 1L, SubscriptionTransitionType.END_BILLING_DISABLED));
+ events.add(invoiceUtil.createMockBillingEvent(account, subscription, new DateTime("2012-07-15T00:00:00.000Z"), bicycleTrialEvergreen1USD,
+ new MockPlanPhase(bicycleTrialEvergreen1USD, PhaseType.EVERGREEN), null, null, account.getCurrency(), BillingPeriod.NO_BILLING_PERIOD,
+ 31, 31, BillingModeType.IN_ADVANCE, "", 0L, SubscriptionTransitionType.START_BILLING_DISABLED));
+ events.add(invoiceUtil.createMockBillingEvent(account, subscription, new DateTime("2012-07-25T00:00:00.000Z"), bicycleTrialEvergreen1USD,
+ new MockPlanPhase(bicycleTrialEvergreen1USD, PhaseType.EVERGREEN), null, new BigDecimal("249.95"), account.getCurrency(), BillingPeriod.MONTHLY,
+ 31, 31, BillingModeType.IN_ADVANCE, "", 1L, SubscriptionTransitionType.END_BILLING_DISABLED));
// Upgrade after the overdue period
final MockPlan jetTrialEvergreen1000USD = MockPlan.createJetTrialEvergreen1000USD();
- events.add(createMockBillingEvent(account, subscription, new DateTime("2012-07-25T00:04:00.000Z"), jetTrialEvergreen1000USD,
- new MockPlanPhase(jetTrialEvergreen1000USD, PhaseType.EVERGREEN), null, new BigDecimal("1000"), account.getCurrency(), BillingPeriod.MONTHLY,
- 31, 31, BillingModeType.IN_ADVANCE, "CHANGE", 3L, SubscriptionTransitionType.CHANGE));
+ events.add(invoiceUtil.createMockBillingEvent(account, subscription, new DateTime("2012-07-25T00:04:00.000Z"), jetTrialEvergreen1000USD,
+ new MockPlanPhase(jetTrialEvergreen1000USD, PhaseType.EVERGREEN), null, new BigDecimal("1000"), account.getCurrency(), BillingPeriod.MONTHLY,
+ 31, 31, BillingModeType.IN_ADVANCE, "CHANGE", 3L, SubscriptionTransitionType.CHANGE));
Mockito.when(billingApi.getBillingEventsForAccountAndUpdateAccountBCD(Mockito.<UUID>any(), Mockito.<InternalCallContext>any())).thenReturn(events);
final InvoiceNotifier invoiceNotifier = new NullInvoiceNotifier();
- final InvoiceDispatcher dispatcher = new InvoiceDispatcher(generator, accountInternalApi, billingApi, entitlementInternalApi, invoiceDao,
+ final InvoiceDispatcher dispatcher = new InvoiceDispatcher(generator, accountApi, billingApi, entitlementApi, invoiceDao,
invoiceNotifier, locker, busService.getBus(),
clock);
@@ -269,19 +191,19 @@ public class TestInvoiceDispatcher extends InvoicingTestBase {
public void testCreateNextFutureNotificationDate() throws Exception {
-
final LocalDate startDate = new LocalDate("2012-10-26");
final LocalDate endDate = new LocalDate("2012-11-26");
- clock.setTime(new DateTime(2012, 10, 26, 1, 12, 23, DateTimeZone.UTC));
- final InvoiceDispatcher.DateAndTimeZoneContext dateAndTimeZoneContext = new DateAndTimeZoneContext(clock.getUTCNow(),DateTimeZone.forID("Pacific/Pitcairn"), clock);
+ ((ClockMock) clock).setTime(new DateTime(2012, 10, 26, 1, 12, 23, DateTimeZone.UTC));
+
+ final InvoiceDispatcher.DateAndTimeZoneContext dateAndTimeZoneContext = new DateAndTimeZoneContext(clock.getUTCNow(), DateTimeZone.forID("Pacific/Pitcairn"), clock);
final InvoiceItemModelDao item = new InvoiceItemModelDao(UUID.randomUUID(), clock.getUTCNow(), InvoiceItemType.RECURRING, UUID.randomUUID(), UUID.randomUUID(), UUID.randomUUID(), UUID.randomUUID(),
"planName", "phaseName", startDate, endDate, new BigDecimal("23.9"), new BigDecimal("23.9"), Currency.EUR, null);
final InvoiceNotifier invoiceNotifier = new NullInvoiceNotifier();
- final InvoiceDispatcher dispatcher = new InvoiceDispatcher(generator, accountInternalApi, billingApi, entitlementInternalApi, invoiceDao,
+ final InvoiceDispatcher dispatcher = new InvoiceDispatcher(generator, accountApi, billingApi, entitlementApi, invoiceDao,
invoiceNotifier, locker, busService.getBus(),
clock);
diff --git a/invoice/src/test/java/com/ning/billing/invoice/TestInvoiceNotificationQListener.java b/invoice/src/test/java/com/ning/billing/invoice/TestInvoiceNotificationQListener.java
new file mode 100644
index 0000000..d426de5
--- /dev/null
+++ b/invoice/src/test/java/com/ning/billing/invoice/TestInvoiceNotificationQListener.java
@@ -0,0 +1,51 @@
+/*
+ * Copyright 2010-2013 Ning, Inc.
+ *
+ * Ning licenses this file to you under the Apache License, version 2.0
+ * (the "License"); you may not use this file except in compliance with the
+ * License. You may obtain a copy of the License at:
+ *
+ * http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS, WITHOUT
+ * WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. See the
+ * License for the specific language governing permissions and limitations
+ * under the License.
+ */
+
+package com.ning.billing.invoice;
+
+import java.util.UUID;
+
+import javax.inject.Inject;
+
+import org.joda.time.DateTime;
+
+import com.ning.billing.util.callcontext.InternalCallContextFactory;
+
+public class TestInvoiceNotificationQListener extends InvoiceListener {
+
+ int eventCount = 0;
+ UUID latestSubscriptionId = null;
+
+ @Inject
+ public TestInvoiceNotificationQListener(final InternalCallContextFactory internalCallContextFactory, final InvoiceDispatcher dispatcher) {
+ super(internalCallContextFactory, dispatcher);
+ }
+
+ @Override
+ public void handleNextBillingDateEvent(final UUID subscriptionId, final DateTime eventDateTime, final UUID userToken, final Long accountRecordId, final Long tenantRecordId) {
+ eventCount++;
+ latestSubscriptionId = subscriptionId;
+ }
+
+ public int getEventCount() {
+ return eventCount;
+ }
+
+ public UUID getLatestSubscriptionId() {
+ return latestSubscriptionId;
+ }
+
+}
diff --git a/invoice/src/test/java/com/ning/billing/invoice/TestInvoiceUtil.java b/invoice/src/test/java/com/ning/billing/invoice/TestInvoiceUtil.java
new file mode 100644
index 0000000..e248328
--- /dev/null
+++ b/invoice/src/test/java/com/ning/billing/invoice/TestInvoiceUtil.java
@@ -0,0 +1,420 @@
+/*
+ * Copyright 2010-2013 Ning, Inc.
+ *
+ * Ning licenses this file to you under the Apache License, version 2.0
+ * (the "License"); you may not use this file except in compliance with the
+ * License. You may obtain a copy of the License at:
+ *
+ * http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS, WITHOUT
+ * WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. See the
+ * License for the specific language governing permissions and limitations
+ * under the License.
+ */
+
+package com.ning.billing.invoice;
+
+import java.math.BigDecimal;
+import java.util.List;
+import java.util.UUID;
+
+import javax.annotation.Nullable;
+import javax.inject.Inject;
+
+import org.joda.time.DateTime;
+import org.joda.time.DateTimeZone;
+import org.joda.time.LocalDate;
+import org.mockito.Mockito;
+import org.skife.jdbi.v2.IDBI;
+import org.testng.Assert;
+
+import com.ning.billing.account.api.Account;
+import com.ning.billing.account.api.AccountApiException;
+import com.ning.billing.account.api.BillCycleDay;
+import com.ning.billing.catalog.MockPlan;
+import com.ning.billing.catalog.MockPlanPhase;
+import com.ning.billing.catalog.api.BillingPeriod;
+import com.ning.billing.catalog.api.Currency;
+import com.ning.billing.catalog.api.Plan;
+import com.ning.billing.catalog.api.PlanPhase;
+import com.ning.billing.entitlement.api.SubscriptionTransitionType;
+import com.ning.billing.entitlement.api.user.EntitlementUserApiException;
+import com.ning.billing.entitlement.api.user.Subscription;
+import com.ning.billing.invoice.api.Invoice;
+import com.ning.billing.invoice.api.InvoiceApiException;
+import com.ning.billing.invoice.api.InvoiceItem;
+import com.ning.billing.invoice.api.InvoiceMigrationApi;
+import com.ning.billing.invoice.api.InvoiceNotifier;
+import com.ning.billing.invoice.api.InvoicePayment;
+import com.ning.billing.invoice.api.InvoicePaymentApi;
+import com.ning.billing.invoice.api.InvoiceUserApi;
+import com.ning.billing.invoice.dao.InvoiceDao;
+import com.ning.billing.invoice.dao.InvoiceItemModelDao;
+import com.ning.billing.invoice.dao.InvoiceItemSqlDao;
+import com.ning.billing.invoice.dao.InvoiceModelDao;
+import com.ning.billing.invoice.dao.InvoiceModelDaoHelper;
+import com.ning.billing.invoice.dao.InvoicePaymentModelDao;
+import com.ning.billing.invoice.dao.InvoicePaymentSqlDao;
+import com.ning.billing.invoice.dao.InvoiceSqlDao;
+import com.ning.billing.invoice.generator.InvoiceGenerator;
+import com.ning.billing.invoice.model.InvoicingConfiguration;
+import com.ning.billing.invoice.notification.NullInvoiceNotifier;
+import com.ning.billing.mock.api.MockBillCycleDay;
+import com.ning.billing.util.api.TagUserApi;
+import com.ning.billing.util.callcontext.InternalCallContext;
+import com.ning.billing.util.callcontext.InternalCallContextFactory;
+import com.ning.billing.util.callcontext.InternalTenantContext;
+import com.ning.billing.util.clock.Clock;
+import com.ning.billing.util.entity.EntityPersistenceException;
+import com.ning.billing.util.globallocker.GlobalLocker;
+import com.ning.billing.util.svcapi.account.AccountInternalApi;
+import com.ning.billing.util.svcapi.entitlement.EntitlementInternalApi;
+import com.ning.billing.util.svcapi.junction.BillingEvent;
+import com.ning.billing.util.svcapi.junction.BillingEventSet;
+import com.ning.billing.util.svcapi.junction.BillingInternalApi;
+import com.ning.billing.util.svcapi.junction.BillingModeType;
+import com.ning.billing.util.svcsapi.bus.BusService;
+
+import com.google.common.base.Function;
+import com.google.common.collect.Collections2;
+import com.google.common.collect.ImmutableList;
+import com.google.common.collect.ImmutableMap;
+
+public class TestInvoiceUtil {
+
+
+ public static final Currency accountCurrency = Currency.USD;
+
+ public static final int NUMBER_OF_DECIMALS = InvoicingConfiguration.getNumberOfDecimals();
+ public static final int ROUNDING_METHOD = InvoicingConfiguration.getRoundingMode();
+
+ public static final BigDecimal ZERO = new BigDecimal("0.0").setScale(NUMBER_OF_DECIMALS);
+ public static final BigDecimal ONE_HALF = new BigDecimal("0.5").setScale(NUMBER_OF_DECIMALS);
+ public static final BigDecimal ONE = new BigDecimal("1.0").setScale(NUMBER_OF_DECIMALS);
+ public static final BigDecimal ONE_AND_A_HALF = new BigDecimal("1.5").setScale(NUMBER_OF_DECIMALS);
+ public static final BigDecimal TWO = new BigDecimal("2.0").setScale(NUMBER_OF_DECIMALS);
+ public static final BigDecimal THREE = new BigDecimal("3.0").setScale(NUMBER_OF_DECIMALS);
+ public static final BigDecimal FOUR = new BigDecimal("4.0").setScale(NUMBER_OF_DECIMALS);
+ public static final BigDecimal FIVE = new BigDecimal("5.0").setScale(NUMBER_OF_DECIMALS);
+ public static final BigDecimal SIX = new BigDecimal("6.0").setScale(NUMBER_OF_DECIMALS);
+ public static final BigDecimal SEVEN = new BigDecimal("7.0").setScale(NUMBER_OF_DECIMALS);
+ public static final BigDecimal EIGHT = new BigDecimal("8.0").setScale(NUMBER_OF_DECIMALS);
+
+ public static final BigDecimal TEN = new BigDecimal("10.0").setScale(NUMBER_OF_DECIMALS);
+ public static final BigDecimal ELEVEN = new BigDecimal("11.0").setScale(NUMBER_OF_DECIMALS);
+ public static final BigDecimal TWELVE = new BigDecimal("12.0").setScale(NUMBER_OF_DECIMALS);
+ public static final BigDecimal THIRTEEN = new BigDecimal("13.0").setScale(NUMBER_OF_DECIMALS);
+ public static final BigDecimal FOURTEEN = new BigDecimal("14.0").setScale(NUMBER_OF_DECIMALS);
+ public static final BigDecimal FIFTEEN = new BigDecimal("15.0").setScale(NUMBER_OF_DECIMALS);
+
+ public static final BigDecimal NINETEEN = new BigDecimal("19.0").setScale(NUMBER_OF_DECIMALS);
+ public static final BigDecimal TWENTY = new BigDecimal("20.0").setScale(NUMBER_OF_DECIMALS);
+
+ public static final BigDecimal TWENTY_FOUR = new BigDecimal("24.0").setScale(NUMBER_OF_DECIMALS);
+ public static final BigDecimal TWENTY_FIVE = new BigDecimal("25.0").setScale(NUMBER_OF_DECIMALS);
+
+ public static final BigDecimal TWENTY_SEVEN = new BigDecimal("27.0").setScale(NUMBER_OF_DECIMALS);
+ public static final BigDecimal TWENTY_EIGHT = new BigDecimal("28.0").setScale(NUMBER_OF_DECIMALS);
+ public static final BigDecimal TWENTY_NINE = new BigDecimal("29.0").setScale(NUMBER_OF_DECIMALS);
+ public static final BigDecimal THIRTY = new BigDecimal("30.0").setScale(NUMBER_OF_DECIMALS);
+ public static final BigDecimal THIRTY_ONE = new BigDecimal("31.0").setScale(NUMBER_OF_DECIMALS);
+
+ public static final BigDecimal FORTY = new BigDecimal("40.0").setScale(NUMBER_OF_DECIMALS);
+
+ public static final BigDecimal EIGHTY_NINE = new BigDecimal("89.0").setScale(NUMBER_OF_DECIMALS);
+ public static final BigDecimal NINETY = new BigDecimal("90.0").setScale(NUMBER_OF_DECIMALS);
+ public static final BigDecimal NINETY_ONE = new BigDecimal("91.0").setScale(NUMBER_OF_DECIMALS);
+ public static final BigDecimal NINETY_TWO = new BigDecimal("92.0").setScale(NUMBER_OF_DECIMALS);
+
+ public static final BigDecimal ONE_HUNDRED = new BigDecimal("100.0").setScale(NUMBER_OF_DECIMALS);
+
+ public static final BigDecimal THREE_HUNDRED_AND_SIXTY_FIVE = new BigDecimal("365.0").setScale(NUMBER_OF_DECIMALS);
+ public static final BigDecimal THREE_HUNDRED_AND_SIXTY_SIX = new BigDecimal("366.0").setScale(NUMBER_OF_DECIMALS);
+
+
+ private final InvoiceGenerator generator;
+ private final BillingInternalApi billingApi;
+ private final AccountInternalApi accountApi;
+ private final EntitlementInternalApi entitlementApi;
+ private final BusService busService;
+ private final InvoiceDao invoiceDao;
+ private final GlobalLocker locker;
+ private final Clock clock;
+ private final InternalCallContext internalCallContext;
+
+ // Low level SqlDao used by the tests to directly insert rows
+ private final InvoicePaymentSqlDao invoicePaymentSqlDao;
+ private final InvoiceItemSqlDao invoiceItemSqlDao;
+
+
+
+ @Inject
+ public TestInvoiceUtil(final InvoiceGenerator generator, final IDBI dbi,
+ final BillingInternalApi billingApi, final AccountInternalApi accountApi, final EntitlementInternalApi entitlementApi, final BusService busService,
+ final InvoiceDao invoiceDao, final GlobalLocker locker, final Clock clock, final InternalCallContext internalCallContext) {
+ this.generator = generator;
+ this.billingApi = billingApi;
+ this.accountApi = accountApi;
+ this.entitlementApi = entitlementApi;
+ this.busService = busService;
+ this.invoiceDao = invoiceDao;
+ this.locker = locker;
+ this.clock = clock;
+ this.internalCallContext = internalCallContext;
+ this.invoiceItemSqlDao = dbi.onDemand(InvoiceItemSqlDao.class);
+ this.invoicePaymentSqlDao = dbi.onDemand(InvoicePaymentSqlDao.class);
+ }
+
+ public UUID generateRegularInvoice(final Account account, final DateTime targetDate) throws Exception {
+ final Subscription subscription = Mockito.mock(Subscription.class);
+ Mockito.when(subscription.getId()).thenReturn(UUID.randomUUID());
+ Mockito.when(subscription.getBundleId()).thenReturn(new UUID(0L, 0L));
+ final BillingEventSet events = new MockBillingEventSet();
+ final Plan plan = MockPlan.createBicycleNoTrialEvergreen1USD();
+ final PlanPhase planPhase = MockPlanPhase.create1USDMonthlyEvergreen();
+ final DateTime effectiveDate = new DateTime().minusDays(1);
+ final Currency currency = Currency.USD;
+ final BigDecimal fixedPrice = null;
+ events.add(createMockBillingEvent(account, subscription, effectiveDate, plan, planPhase,
+ fixedPrice, BigDecimal.ONE, currency, BillingPeriod.MONTHLY, 1,
+ BillingModeType.IN_ADVANCE, "", 1L, SubscriptionTransitionType.CREATE));
+
+ Mockito.when(billingApi.getBillingEventsForAccountAndUpdateAccountBCD(Mockito.<UUID>any(), Mockito.<InternalCallContext>any())).thenReturn(events);
+
+ final InvoiceNotifier invoiceNotifier = new NullInvoiceNotifier();
+ final InvoiceDispatcher dispatcher = new InvoiceDispatcher(generator, accountApi, billingApi, entitlementApi,
+ invoiceDao, invoiceNotifier, locker, busService.getBus(),
+ clock);
+
+ Invoice invoice = dispatcher.processAccount(account.getId(), targetDate, true, internalCallContext);
+ Assert.assertNotNull(invoice);
+
+ List<InvoiceModelDao> invoices = invoiceDao.getInvoicesByAccount(account.getId(), internalCallContext);
+ Assert.assertEquals(invoices.size(), 0);
+
+ invoice = dispatcher.processAccount(account.getId(), targetDate, false, internalCallContext);
+ Assert.assertNotNull(invoice);
+
+ invoices = invoiceDao.getInvoicesByAccount(account.getId(), internalCallContext);
+ Assert.assertEquals(invoices.size(), 1);
+
+ return invoice.getId();
+ }
+
+ public Subscription createSubscription() throws EntitlementUserApiException {
+ UUID uuid = UUID.randomUUID();
+ final Subscription subscription = Mockito.mock(Subscription.class);
+ Mockito.when(subscription.getId()).thenReturn(uuid);
+ Mockito.when(entitlementApi.getSubscriptionFromId(Mockito.<UUID>any(), Mockito.<InternalTenantContext>any())).thenReturn(subscription);
+ return subscription;
+ }
+
+ public Account createAccount() throws AccountApiException {
+ final UUID accountId = UUID.randomUUID();
+ final Account account = Mockito.mock(Account.class);
+ Mockito.when(accountApi.getAccountById(Mockito.<UUID>any(), Mockito.<InternalCallContext>any())).thenReturn(account);
+ Mockito.when(account.getCurrency()).thenReturn(accountCurrency);
+ Mockito.when(account.getId()).thenReturn(accountId);
+ Mockito.when(account.isNotifiedForInvoices()).thenReturn(true);
+ Mockito.when(account.getBillCycleDay()).thenReturn(new MockBillCycleDay(31));
+ // The timezone is required to compute the date of the next invoice notification
+ Mockito.when(account.getTimeZone()).thenReturn(DateTimeZone.UTC);
+
+ return account;
+ }
+
+ public void createInvoiceItem(final InvoiceItem invoiceItem, final InternalCallContext internalCallContext) throws EntityPersistenceException {
+ invoiceItemSqlDao.create(new InvoiceItemModelDao(invoiceItem), internalCallContext);
+ }
+
+ public InvoiceItemModelDao getInvoiceItemById(final UUID invoiceItemId, final InternalCallContext internalCallContext) {
+ return invoiceItemSqlDao.getById(invoiceItemId.toString(), internalCallContext);
+ }
+
+ public List<InvoiceItemModelDao> getInvoiceItemBySubscriptionId(final UUID subscriptionId, final InternalCallContext internalCallContext) {
+ return invoiceItemSqlDao.getInvoiceItemsBySubscription(subscriptionId.toString(), internalCallContext);
+ }
+
+ public List<InvoiceItemModelDao> getInvoiceItemByAccountId(final UUID accountId, final InternalCallContext internalCallContext) {
+ return invoiceItemSqlDao.getInvoiceItemsByAccount(accountId.toString(), internalCallContext);
+ }
+
+ public List<InvoiceItemModelDao> getInvoiceItemByInvoiceId(final UUID invoiceId, final InternalCallContext internalCallContext) {
+ return invoiceItemSqlDao.getInvoiceItemsByInvoice(invoiceId.toString(), internalCallContext);
+ }
+
+ public void createInvoice(final Invoice invoice, final boolean isRealInvoiceWithItems, final InternalCallContext internalCallContext) {
+ final InvoiceModelDao invoiceModelDao = new InvoiceModelDao(invoice);
+ final List<InvoiceItemModelDao> invoiceItemModelDaos = ImmutableList.<InvoiceItemModelDao>copyOf(Collections2.transform(invoice.getInvoiceItems(),
+ new Function<InvoiceItem, InvoiceItemModelDao>() {
+ @Override
+ public InvoiceItemModelDao apply(final InvoiceItem input) {
+ return new InvoiceItemModelDao(input);
+ }
+ }));
+ // Not really needed, there shouldn't be any payment at this stage
+ final List<InvoicePaymentModelDao> invoicePaymentModelDaos = ImmutableList.<InvoicePaymentModelDao>copyOf(Collections2.transform(invoice.getPayments(),
+ new Function<InvoicePayment, InvoicePaymentModelDao>() {
+ @Override
+ public InvoicePaymentModelDao apply(final InvoicePayment input) {
+ return new InvoicePaymentModelDao(input);
+ }
+ }));
+
+ // The test does not use the invoice callback notifier hence the empty map
+ invoiceDao.createInvoice(invoiceModelDao, invoiceItemModelDaos, invoicePaymentModelDaos, isRealInvoiceWithItems, ImmutableMap.<UUID, DateTime>of(), internalCallContext);
+ }
+
+ public void createPayment(final InvoicePayment invoicePayment, final InternalCallContext internalCallContext) {
+ try {
+ invoicePaymentSqlDao.create(new InvoicePaymentModelDao(invoicePayment), internalCallContext);
+ } catch (EntityPersistenceException e) {
+ Assert.fail(e.getMessage());
+ }
+ }
+
+ public void verifyInvoice(final UUID invoiceId, final double balance, final double cbaAmount) throws InvoiceApiException {
+ final InvoiceModelDao invoice = invoiceDao.getById(invoiceId, internalCallContext);
+ Assert.assertEquals(InvoiceModelDaoHelper.getBalance(invoice).doubleValue(), balance);
+ Assert.assertEquals(InvoiceModelDaoHelper.getCBAAmount(invoice).doubleValue(), cbaAmount);
+ }
+
+ public void checkInvoicesEqual(final InvoiceModelDao retrievedInvoice, final Invoice invoice) {
+ Assert.assertEquals(retrievedInvoice.getId(), invoice.getId());
+ Assert.assertEquals(retrievedInvoice.getAccountId(), invoice.getAccountId());
+ Assert.assertEquals(retrievedInvoice.getCurrency(), invoice.getCurrency());
+ Assert.assertEquals(retrievedInvoice.getInvoiceDate(), invoice.getInvoiceDate());
+ Assert.assertEquals(retrievedInvoice.getTargetDate(), invoice.getTargetDate());
+ Assert.assertEquals(retrievedInvoice.getInvoiceItems().size(), invoice.getInvoiceItems().size());
+ Assert.assertEquals(retrievedInvoice.getInvoicePayments().size(), invoice.getPayments().size());
+ }
+
+ public LocalDate buildDate(final int year, final int month, final int day) {
+ return new LocalDate(year, month, day);
+ }
+
+ public BillingEvent createMockBillingEvent(@Nullable final Account account, final Subscription subscription,
+ final DateTime effectiveDate,
+ final Plan plan, final PlanPhase planPhase,
+ @Nullable final BigDecimal fixedPrice, @Nullable final BigDecimal recurringPrice,
+ final Currency currency, final BillingPeriod billingPeriod, final int billCycleDayUTC,
+ final BillingModeType billingModeType, final String description,
+ final long totalOrdering,
+ final SubscriptionTransitionType type) {
+ return createMockBillingEvent(account, subscription, effectiveDate, plan, planPhase, fixedPrice, recurringPrice,
+ currency, billingPeriod, billCycleDayUTC, billCycleDayUTC, billingModeType, description,
+ totalOrdering, type);
+ }
+
+ public BillingEvent createMockBillingEvent(@Nullable final Account account, final Subscription subscription,
+ final DateTime effectiveDate,
+ final Plan plan, final PlanPhase planPhase,
+ @Nullable final BigDecimal fixedPrice, @Nullable final BigDecimal recurringPrice,
+ final Currency currency, final BillingPeriod billingPeriod,
+ final int billCycleDayUTC, final int billCycleDayLocal,
+ final BillingModeType billingModeType, final String description,
+ final long totalOrdering,
+ final SubscriptionTransitionType type) {
+ return new BillingEvent() {
+ @Override
+ public Account getAccount() {
+ return account;
+ }
+
+ @Override
+ public BillCycleDay getBillCycleDay() {
+ return new BillCycleDay() {
+ @Override
+ public int getDayOfMonthUTC() {
+ return billCycleDayUTC;
+ }
+
+ @Override
+ public int getDayOfMonthLocal() {
+ return billCycleDayLocal;
+ }
+ };
+ }
+
+ @Override
+ public Subscription getSubscription() {
+ return subscription;
+ }
+
+ @Override
+ public DateTime getEffectiveDate() {
+ return effectiveDate;
+ }
+
+ @Override
+ public PlanPhase getPlanPhase() {
+ return planPhase;
+ }
+
+ @Override
+ public Plan getPlan() {
+ return plan;
+ }
+
+ @Override
+ public BillingPeriod getBillingPeriod() {
+ return billingPeriod;
+ }
+
+ @Override
+ public BillingModeType getBillingMode() {
+ return billingModeType;
+ }
+
+ @Override
+ public String getDescription() {
+ return description;
+ }
+
+ @Override
+ public BigDecimal getFixedPrice() {
+ return fixedPrice;
+ }
+
+ @Override
+ public BigDecimal getRecurringPrice() {
+ return recurringPrice;
+ }
+
+ @Override
+ public Currency getCurrency() {
+ return currency;
+ }
+
+ @Override
+ public SubscriptionTransitionType getTransitionType() {
+ return type;
+ }
+
+ @Override
+ public Long getTotalOrdering() {
+ return totalOrdering;
+ }
+
+ @Override
+ public DateTimeZone getTimeZone() {
+ return DateTimeZone.UTC;
+ }
+
+ @Override
+ public int compareTo(final BillingEvent e1) {
+ if (!getSubscription().getId().equals(e1.getSubscription().getId())) { // First order by subscription
+ return getSubscription().getId().compareTo(e1.getSubscription().getId());
+ } else { // subscriptions are the same
+ if (!getEffectiveDate().equals(e1.getEffectiveDate())) { // Secondly order by date
+ return getEffectiveDate().compareTo(e1.getEffectiveDate());
+ } else { // dates and subscriptions are the same
+ return getTotalOrdering().compareTo(e1.getTotalOrdering());
+ }
+ }
+ }
+ };
+ }
+}
diff --git a/invoice/src/test/java/com/ning/billing/invoice/tests/inAdvance/annual/GenericProRationTests.java b/invoice/src/test/java/com/ning/billing/invoice/tests/inAdvance/annual/GenericProRationTests.java
index b1c5ab6..b345775 100644
--- a/invoice/src/test/java/com/ning/billing/invoice/tests/inAdvance/annual/GenericProRationTests.java
+++ b/invoice/src/test/java/com/ning/billing/invoice/tests/inAdvance/annual/GenericProRationTests.java
@@ -16,6 +16,8 @@
package com.ning.billing.invoice.tests.inAdvance.annual;
+import static com.ning.billing.invoice.TestInvoiceUtil.*;
+
import java.math.BigDecimal;
import com.ning.billing.catalog.api.BillingPeriod;
diff --git a/invoice/src/test/java/com/ning/billing/invoice/tests/inAdvance/annual/TestDoubleProRation.java b/invoice/src/test/java/com/ning/billing/invoice/tests/inAdvance/annual/TestDoubleProRation.java
index e2e8e55..9c48331 100644
--- a/invoice/src/test/java/com/ning/billing/invoice/tests/inAdvance/annual/TestDoubleProRation.java
+++ b/invoice/src/test/java/com/ning/billing/invoice/tests/inAdvance/annual/TestDoubleProRation.java
@@ -16,6 +16,8 @@
package com.ning.billing.invoice.tests.inAdvance.annual;
+import static com.ning.billing.invoice.TestInvoiceUtil.*;
+
import java.math.BigDecimal;
import org.joda.time.LocalDate;
@@ -34,9 +36,9 @@ public class TestDoubleProRation extends ProRationInAdvanceTestBase {
@Test(groups = "fast")
public void testDoubleProRation_TargetDateOnStartDate() throws InvalidDateSequenceException {
- final LocalDate startDate = buildDate(2011, 1, 1);
- final LocalDate targetDate = buildDate(2011, 1, 1);
- final LocalDate endDate = buildDate(2012, 1, 27);
+ final LocalDate startDate = invoiceUtil.buildDate(2011, 1, 1);
+ final LocalDate targetDate = invoiceUtil.buildDate(2011, 1, 1);
+ final LocalDate endDate = invoiceUtil.buildDate(2012, 1, 27);
final BigDecimal expectedValue = FOURTEEN.divide(THREE_HUNDRED_AND_SIXTY_FIVE, NUMBER_OF_DECIMALS, ROUNDING_METHOD);
testCalculateNumberOfBillingCycles(startDate, endDate, targetDate, 15, expectedValue);
@@ -44,9 +46,9 @@ public class TestDoubleProRation extends ProRationInAdvanceTestBase {
@Test(groups = "fast")
public void testDoubleProRation_TargetDateInFirstProRationPeriod() throws InvalidDateSequenceException {
- final LocalDate startDate = buildDate(2011, 1, 1);
- final LocalDate targetDate = buildDate(2011, 1, 7);
- final LocalDate endDate = buildDate(2012, 1, 27);
+ final LocalDate startDate = invoiceUtil.buildDate(2011, 1, 1);
+ final LocalDate targetDate = invoiceUtil.buildDate(2011, 1, 7);
+ final LocalDate endDate = invoiceUtil.buildDate(2012, 1, 27);
final BigDecimal expectedValue = FOURTEEN.divide(THREE_HUNDRED_AND_SIXTY_FIVE, NUMBER_OF_DECIMALS, ROUNDING_METHOD);
testCalculateNumberOfBillingCycles(startDate, endDate, targetDate, 15, expectedValue);
@@ -54,9 +56,9 @@ public class TestDoubleProRation extends ProRationInAdvanceTestBase {
@Test(groups = "fast")
public void testDoubleProRation_TargetDateOnFirstBillingCycleDate() throws InvalidDateSequenceException {
- final LocalDate startDate = buildDate(2011, 1, 1);
- final LocalDate targetDate = buildDate(2011, 1, 15);
- final LocalDate endDate = buildDate(2012, 1, 27);
+ final LocalDate startDate = invoiceUtil.buildDate(2011, 1, 1);
+ final LocalDate targetDate = invoiceUtil.buildDate(2011, 1, 15);
+ final LocalDate endDate = invoiceUtil.buildDate(2012, 1, 27);
final BigDecimal expectedValue = ONE.add(FOURTEEN.divide(THREE_HUNDRED_AND_SIXTY_FIVE, NUMBER_OF_DECIMALS, ROUNDING_METHOD));
testCalculateNumberOfBillingCycles(startDate, endDate, targetDate, 15, expectedValue);
@@ -64,9 +66,9 @@ public class TestDoubleProRation extends ProRationInAdvanceTestBase {
@Test(groups = "fast")
public void testDoubleProRation_TargetDateInFullBillingPeriod() throws InvalidDateSequenceException {
- final LocalDate startDate = buildDate(2011, 1, 1);
- final LocalDate targetDate = buildDate(2011, 1, 22);
- final LocalDate endDate = buildDate(2012, 1, 27);
+ final LocalDate startDate = invoiceUtil.buildDate(2011, 1, 1);
+ final LocalDate targetDate = invoiceUtil.buildDate(2011, 1, 22);
+ final LocalDate endDate = invoiceUtil.buildDate(2012, 1, 27);
BigDecimal expectedValue;
expectedValue = FOURTEEN.divide(THREE_HUNDRED_AND_SIXTY_FIVE, NUMBER_OF_DECIMALS, ROUNDING_METHOD);
@@ -77,9 +79,9 @@ public class TestDoubleProRation extends ProRationInAdvanceTestBase {
@Test(groups = "fast")
public void testDoubleProRation_TargetDateOnSecondBillingCycleDate() throws InvalidDateSequenceException {
- final LocalDate startDate = buildDate(2011, 1, 1);
- final LocalDate targetDate = buildDate(2012, 1, 15);
- final LocalDate endDate = buildDate(2012, 1, 27);
+ final LocalDate startDate = invoiceUtil.buildDate(2011, 1, 1);
+ final LocalDate targetDate = invoiceUtil.buildDate(2012, 1, 15);
+ final LocalDate endDate = invoiceUtil.buildDate(2012, 1, 27);
BigDecimal expectedValue;
expectedValue = FOURTEEN.divide(THREE_HUNDRED_AND_SIXTY_FIVE, 2 * NUMBER_OF_DECIMALS, ROUNDING_METHOD);
@@ -92,9 +94,9 @@ public class TestDoubleProRation extends ProRationInAdvanceTestBase {
@Test(groups = "fast")
public void testDoubleProRation_TargetDateInSecondProRationPeriod() throws InvalidDateSequenceException {
- final LocalDate startDate = buildDate(2011, 1, 1);
- final LocalDate targetDate = buildDate(2012, 1, 17);
- final LocalDate endDate = buildDate(2012, 1, 27);
+ final LocalDate startDate = invoiceUtil.buildDate(2011, 1, 1);
+ final LocalDate targetDate = invoiceUtil.buildDate(2012, 1, 17);
+ final LocalDate endDate = invoiceUtil.buildDate(2012, 1, 27);
BigDecimal expectedValue;
expectedValue = FOURTEEN.divide(THREE_HUNDRED_AND_SIXTY_FIVE, 2 * NUMBER_OF_DECIMALS, ROUNDING_METHOD);
@@ -107,9 +109,9 @@ public class TestDoubleProRation extends ProRationInAdvanceTestBase {
@Test(groups = "fast")
public void testDoubleProRation_TargetDateOnEndDate() throws InvalidDateSequenceException {
- final LocalDate startDate = buildDate(2011, 1, 1);
- final LocalDate targetDate = buildDate(2012, 1, 27);
- final LocalDate endDate = buildDate(2012, 1, 27);
+ final LocalDate startDate = invoiceUtil.buildDate(2011, 1, 1);
+ final LocalDate targetDate = invoiceUtil.buildDate(2012, 1, 27);
+ final LocalDate endDate = invoiceUtil.buildDate(2012, 1, 27);
BigDecimal expectedValue;
expectedValue = FOURTEEN.divide(THREE_HUNDRED_AND_SIXTY_FIVE, 2 * NUMBER_OF_DECIMALS, ROUNDING_METHOD);
@@ -122,9 +124,9 @@ public class TestDoubleProRation extends ProRationInAdvanceTestBase {
@Test(groups = "fast")
public void testDoubleProRation_TargetDateAfterEndDate() throws InvalidDateSequenceException {
- final LocalDate startDate = buildDate(2011, 1, 1);
- final LocalDate targetDate = buildDate(2012, 3, 7);
- final LocalDate endDate = buildDate(2012, 1, 27);
+ final LocalDate startDate = invoiceUtil.buildDate(2011, 1, 1);
+ final LocalDate targetDate = invoiceUtil.buildDate(2012, 3, 7);
+ final LocalDate endDate = invoiceUtil.buildDate(2012, 1, 27);
BigDecimal expectedValue;
expectedValue = FOURTEEN.divide(THREE_HUNDRED_AND_SIXTY_FIVE, 2 * NUMBER_OF_DECIMALS, ROUNDING_METHOD);
@@ -137,9 +139,9 @@ public class TestDoubleProRation extends ProRationInAdvanceTestBase {
@Test(groups = "fast")
public void testDoubleProRationWithMultiplePeriods_TargetDateInSecondFullBillingPeriod() throws InvalidDateSequenceException {
- final LocalDate startDate = buildDate(2011, 1, 1);
- final LocalDate targetDate = buildDate(2012, 2, 26);
- final LocalDate endDate = buildDate(2013, 4, 27);
+ final LocalDate startDate = invoiceUtil.buildDate(2011, 1, 1);
+ final LocalDate targetDate = invoiceUtil.buildDate(2012, 2, 26);
+ final LocalDate endDate = invoiceUtil.buildDate(2013, 4, 27);
BigDecimal expectedValue;
expectedValue = FOURTEEN.divide(THREE_HUNDRED_AND_SIXTY_FIVE, NUMBER_OF_DECIMALS, ROUNDING_METHOD);
diff --git a/invoice/src/test/java/com/ning/billing/invoice/tests/inAdvance/annual/TestLeadingProRation.java b/invoice/src/test/java/com/ning/billing/invoice/tests/inAdvance/annual/TestLeadingProRation.java
index 3ac8120..462529a 100644
--- a/invoice/src/test/java/com/ning/billing/invoice/tests/inAdvance/annual/TestLeadingProRation.java
+++ b/invoice/src/test/java/com/ning/billing/invoice/tests/inAdvance/annual/TestLeadingProRation.java
@@ -16,6 +16,8 @@
package com.ning.billing.invoice.tests.inAdvance.annual;
+import static com.ning.billing.invoice.TestInvoiceUtil.*;
+
import java.math.BigDecimal;
import org.joda.time.LocalDate;
@@ -34,8 +36,8 @@ public class TestLeadingProRation extends ProRationInAdvanceTestBase {
@Test(groups = "fast")
public void testLeadingProRation_Evergreen_TargetDateOnStartDate() throws InvalidDateSequenceException {
- final LocalDate startDate = buildDate(2011, 2, 1);
- final LocalDate targetDate = buildDate(2011, 2, 1);
+ final LocalDate startDate = invoiceUtil.buildDate(2011, 2, 1);
+ final LocalDate targetDate = invoiceUtil.buildDate(2011, 2, 1);
final BigDecimal expectedValue;
expectedValue = TWELVE.divide(THREE_HUNDRED_AND_SIXTY_FIVE, NUMBER_OF_DECIMALS, ROUNDING_METHOD);
@@ -45,8 +47,8 @@ public class TestLeadingProRation extends ProRationInAdvanceTestBase {
@Test(groups = "fast")
public void testLeadingProRation_Evergreen_TargetDateInProRationPeriod() throws InvalidDateSequenceException {
- final LocalDate startDate = buildDate(2011, 2, 1);
- final LocalDate targetDate = buildDate(2011, 2, 4);
+ final LocalDate startDate = invoiceUtil.buildDate(2011, 2, 1);
+ final LocalDate targetDate = invoiceUtil.buildDate(2011, 2, 4);
final BigDecimal expectedValue;
expectedValue = TWELVE.divide(THREE_HUNDRED_AND_SIXTY_FIVE, NUMBER_OF_DECIMALS, ROUNDING_METHOD);
@@ -56,8 +58,8 @@ public class TestLeadingProRation extends ProRationInAdvanceTestBase {
@Test(groups = "fast")
public void testLeadingProRation_Evergreen_TargetDateOnFirstBillingDate() throws InvalidDateSequenceException {
- final LocalDate startDate = buildDate(2011, 2, 1);
- final LocalDate targetDate = buildDate(2011, 2, 13);
+ final LocalDate startDate = invoiceUtil.buildDate(2011, 2, 1);
+ final LocalDate targetDate = invoiceUtil.buildDate(2011, 2, 13);
final BigDecimal expectedValue;
expectedValue = TWELVE.divide(THREE_HUNDRED_AND_SIXTY_FIVE, NUMBER_OF_DECIMALS, ROUNDING_METHOD).add(ONE);
@@ -67,8 +69,8 @@ public class TestLeadingProRation extends ProRationInAdvanceTestBase {
@Test(groups = "fast")
public void testLeadingProRation_Evergreen_TargetDateAfterFirstBillingPeriod() throws InvalidDateSequenceException {
- final LocalDate startDate = buildDate(2011, 2, 1);
- final LocalDate targetDate = buildDate(2011, 4, 13);
+ final LocalDate startDate = invoiceUtil.buildDate(2011, 2, 1);
+ final LocalDate targetDate = invoiceUtil.buildDate(2011, 4, 13);
final BigDecimal expectedValue;
expectedValue = TWELVE.divide(THREE_HUNDRED_AND_SIXTY_FIVE, NUMBER_OF_DECIMALS, ROUNDING_METHOD).add(ONE);
@@ -78,9 +80,9 @@ public class TestLeadingProRation extends ProRationInAdvanceTestBase {
@Test(groups = "fast")
public void testLeadingProRation_WithEndDate_TargetDateOnStartDate() throws InvalidDateSequenceException {
- final LocalDate startDate = buildDate(2011, 2, 1);
- final LocalDate targetDate = buildDate(2011, 2, 1);
- final LocalDate endDate = buildDate(2012, 2, 13);
+ final LocalDate startDate = invoiceUtil.buildDate(2011, 2, 1);
+ final LocalDate targetDate = invoiceUtil.buildDate(2011, 2, 1);
+ final LocalDate endDate = invoiceUtil.buildDate(2012, 2, 13);
final BigDecimal expectedValue;
expectedValue = TWELVE.divide(THREE_HUNDRED_AND_SIXTY_FIVE, NUMBER_OF_DECIMALS, ROUNDING_METHOD);
@@ -90,9 +92,9 @@ public class TestLeadingProRation extends ProRationInAdvanceTestBase {
@Test(groups = "fast")
public void testLeadingProRation_WithEndDate_TargetDateInProRationPeriod() throws InvalidDateSequenceException {
- final LocalDate startDate = buildDate(2011, 2, 1);
- final LocalDate targetDate = buildDate(2011, 2, 4);
- final LocalDate endDate = buildDate(2012, 2, 13);
+ final LocalDate startDate = invoiceUtil.buildDate(2011, 2, 1);
+ final LocalDate targetDate = invoiceUtil.buildDate(2011, 2, 4);
+ final LocalDate endDate = invoiceUtil.buildDate(2012, 2, 13);
final BigDecimal expectedValue;
expectedValue = TWELVE.divide(THREE_HUNDRED_AND_SIXTY_FIVE, NUMBER_OF_DECIMALS, ROUNDING_METHOD);
@@ -102,9 +104,9 @@ public class TestLeadingProRation extends ProRationInAdvanceTestBase {
@Test(groups = "fast")
public void testLeadingProRation_WithEndDate_TargetDateOnFirstBillingDate() throws InvalidDateSequenceException {
- final LocalDate startDate = buildDate(2011, 2, 1);
- final LocalDate targetDate = buildDate(2011, 2, 13);
- final LocalDate endDate = buildDate(2012, 2, 13);
+ final LocalDate startDate = invoiceUtil.buildDate(2011, 2, 1);
+ final LocalDate targetDate = invoiceUtil.buildDate(2011, 2, 13);
+ final LocalDate endDate = invoiceUtil.buildDate(2012, 2, 13);
final BigDecimal expectedValue;
expectedValue = TWELVE.divide(THREE_HUNDRED_AND_SIXTY_FIVE, NUMBER_OF_DECIMALS, ROUNDING_METHOD).add(ONE);
@@ -114,9 +116,9 @@ public class TestLeadingProRation extends ProRationInAdvanceTestBase {
@Test(groups = "fast")
public void testLeadingProRation_WithEndDate_TargetDateInFinalBillingPeriod() throws InvalidDateSequenceException {
- final LocalDate startDate = buildDate(2011, 2, 1);
- final LocalDate targetDate = buildDate(2011, 4, 10);
- final LocalDate endDate = buildDate(2012, 2, 13);
+ final LocalDate startDate = invoiceUtil.buildDate(2011, 2, 1);
+ final LocalDate targetDate = invoiceUtil.buildDate(2011, 4, 10);
+ final LocalDate endDate = invoiceUtil.buildDate(2012, 2, 13);
final BigDecimal expectedValue;
expectedValue = TWELVE.divide(THREE_HUNDRED_AND_SIXTY_FIVE, NUMBER_OF_DECIMALS, ROUNDING_METHOD).add(ONE);
@@ -126,9 +128,9 @@ public class TestLeadingProRation extends ProRationInAdvanceTestBase {
@Test(groups = "fast")
public void testLeadingProRation_WithEndDate_TargetDateOnEndDate() throws InvalidDateSequenceException {
- final LocalDate startDate = buildDate(2011, 2, 1);
- final LocalDate targetDate = buildDate(2012, 2, 13);
- final LocalDate endDate = buildDate(2012, 2, 13);
+ final LocalDate startDate = invoiceUtil.buildDate(2011, 2, 1);
+ final LocalDate targetDate = invoiceUtil.buildDate(2012, 2, 13);
+ final LocalDate endDate = invoiceUtil.buildDate(2012, 2, 13);
final BigDecimal expectedValue;
expectedValue = TWELVE.divide(THREE_HUNDRED_AND_SIXTY_FIVE, NUMBER_OF_DECIMALS, ROUNDING_METHOD).add(ONE);
@@ -138,9 +140,9 @@ public class TestLeadingProRation extends ProRationInAdvanceTestBase {
@Test(groups = "fast")
public void testLeadingProRation_WithEndDate_TargetDateAfterEndDate() throws InvalidDateSequenceException {
- final LocalDate startDate = buildDate(2011, 2, 1);
- final LocalDate targetDate = buildDate(2012, 4, 10);
- final LocalDate endDate = buildDate(2012, 2, 13);
+ final LocalDate startDate = invoiceUtil.buildDate(2011, 2, 1);
+ final LocalDate targetDate = invoiceUtil.buildDate(2012, 4, 10);
+ final LocalDate endDate = invoiceUtil.buildDate(2012, 2, 13);
final BigDecimal expectedValue;
expectedValue = TWELVE.divide(THREE_HUNDRED_AND_SIXTY_FIVE, NUMBER_OF_DECIMALS, ROUNDING_METHOD).add(ONE);
diff --git a/invoice/src/test/java/com/ning/billing/invoice/tests/inAdvance/annual/TestProRation.java b/invoice/src/test/java/com/ning/billing/invoice/tests/inAdvance/annual/TestProRation.java
index 16e1407..b15e144 100644
--- a/invoice/src/test/java/com/ning/billing/invoice/tests/inAdvance/annual/TestProRation.java
+++ b/invoice/src/test/java/com/ning/billing/invoice/tests/inAdvance/annual/TestProRation.java
@@ -16,6 +16,8 @@
package com.ning.billing.invoice.tests.inAdvance.annual;
+import static com.ning.billing.invoice.TestInvoiceUtil.*;
+
import java.math.BigDecimal;
import org.joda.time.LocalDate;
@@ -34,8 +36,8 @@ public class TestProRation extends ProRationInAdvanceTestBase {
@Test(groups = "fast")
public void testSinglePlan_PrecedingProRation() throws InvalidDateSequenceException {
- final LocalDate startDate = buildDate(2011, 1, 31);
- final LocalDate targetDate = buildDate(2011, 2, 24);
+ final LocalDate startDate = invoiceUtil.buildDate(2011, 1, 31);
+ final LocalDate targetDate = invoiceUtil.buildDate(2011, 2, 24);
final BigDecimal expectedValue = ONE.add(FIFTEEN.divide(THREE_HUNDRED_AND_SIXTY_FIVE, NUMBER_OF_DECIMALS, ROUNDING_METHOD));
testCalculateNumberOfBillingCycles(startDate, targetDate, 15, expectedValue);
@@ -43,8 +45,8 @@ public class TestProRation extends ProRationInAdvanceTestBase {
@Test(groups = "fast")
public void testSinglePlan_PrecedingProRation_CrossingYearBoundary() throws InvalidDateSequenceException {
- final LocalDate startDate = buildDate(2010, 12, 15);
- final LocalDate targetDate = buildDate(2011, 1, 13);
+ final LocalDate startDate = invoiceUtil.buildDate(2010, 12, 15);
+ final LocalDate targetDate = invoiceUtil.buildDate(2011, 1, 13);
final BigDecimal expectedValue = ONE.add(TWENTY.divide(THREE_HUNDRED_AND_SIXTY_FIVE, NUMBER_OF_DECIMALS, ROUNDING_METHOD));
testCalculateNumberOfBillingCycles(startDate, targetDate, 4, expectedValue);
@@ -53,9 +55,9 @@ public class TestProRation extends ProRationInAdvanceTestBase {
// TODO Test fails, needs to be investigated
@Test(groups = "fast", enabled = false)
public void testSinglePlanDoubleProRation() throws InvalidDateSequenceException {
- final LocalDate startDate = buildDate(2011, 1, 10);
- final LocalDate endDate = buildDate(2012, 3, 4);
- final LocalDate targetDate = buildDate(2012, 4, 5);
+ final LocalDate startDate = invoiceUtil.buildDate(2011, 1, 10);
+ final LocalDate endDate = invoiceUtil.buildDate(2012, 3, 4);
+ final LocalDate targetDate = invoiceUtil.buildDate(2012, 4, 5);
final BigDecimal expectedValue = BigDecimal.ZERO;
testCalculateNumberOfBillingCycles(startDate, endDate, targetDate, 17, expectedValue);
diff --git a/invoice/src/test/java/com/ning/billing/invoice/tests/inAdvance/annual/TestTrailingProRation.java b/invoice/src/test/java/com/ning/billing/invoice/tests/inAdvance/annual/TestTrailingProRation.java
index d6f38ac..860fe92 100644
--- a/invoice/src/test/java/com/ning/billing/invoice/tests/inAdvance/annual/TestTrailingProRation.java
+++ b/invoice/src/test/java/com/ning/billing/invoice/tests/inAdvance/annual/TestTrailingProRation.java
@@ -16,6 +16,8 @@
package com.ning.billing.invoice.tests.inAdvance.annual;
+import static com.ning.billing.invoice.TestInvoiceUtil.*;
+
import java.math.BigDecimal;
import org.joda.time.LocalDate;
@@ -34,27 +36,27 @@ public class TestTrailingProRation extends ProRationInAdvanceTestBase {
@Test(groups = "fast")
public void testTargetDateOnStartDate() throws InvalidDateSequenceException {
- final LocalDate startDate = buildDate(2010, 6, 17);
- final LocalDate endDate = buildDate(2012, 6, 25);
- final LocalDate targetDate = buildDate(2010, 6, 17);
+ final LocalDate startDate = invoiceUtil.buildDate(2010, 6, 17);
+ final LocalDate endDate = invoiceUtil.buildDate(2012, 6, 25);
+ final LocalDate targetDate = invoiceUtil.buildDate(2010, 6, 17);
testCalculateNumberOfBillingCycles(startDate, endDate, targetDate, 17, ONE);
}
@Test(groups = "fast")
public void testTargetDateInFirstBillingPeriod() throws InvalidDateSequenceException {
- final LocalDate startDate = buildDate(2010, 6, 17);
- final LocalDate endDate = buildDate(2011, 6, 25);
- final LocalDate targetDate = buildDate(2010, 6, 20);
+ final LocalDate startDate = invoiceUtil.buildDate(2010, 6, 17);
+ final LocalDate endDate = invoiceUtil.buildDate(2011, 6, 25);
+ final LocalDate targetDate = invoiceUtil.buildDate(2010, 6, 20);
testCalculateNumberOfBillingCycles(startDate, endDate, targetDate, 17, ONE);
}
@Test(groups = "fast")
public void testTargetDateAtEndOfFirstBillingCycle() throws InvalidDateSequenceException {
- final LocalDate startDate = buildDate(2010, 6, 17);
- final LocalDate endDate = buildDate(2011, 6, 25);
- final LocalDate targetDate = buildDate(2011, 6, 17);
+ final LocalDate startDate = invoiceUtil.buildDate(2010, 6, 17);
+ final LocalDate endDate = invoiceUtil.buildDate(2011, 6, 25);
+ final LocalDate targetDate = invoiceUtil.buildDate(2011, 6, 17);
final BigDecimal expectedValue = ONE.add(EIGHT.divide(THREE_HUNDRED_AND_SIXTY_FIVE, NUMBER_OF_DECIMALS, ROUNDING_METHOD));
testCalculateNumberOfBillingCycles(startDate, endDate, targetDate, 17, expectedValue);
@@ -62,9 +64,9 @@ public class TestTrailingProRation extends ProRationInAdvanceTestBase {
@Test(groups = "fast")
public void testTargetDateInProRationPeriod() throws InvalidDateSequenceException {
- final LocalDate startDate = buildDate(2010, 6, 17);
- final LocalDate endDate = buildDate(2011, 6, 25);
- final LocalDate targetDate = buildDate(2011, 6, 18);
+ final LocalDate startDate = invoiceUtil.buildDate(2010, 6, 17);
+ final LocalDate endDate = invoiceUtil.buildDate(2011, 6, 25);
+ final LocalDate targetDate = invoiceUtil.buildDate(2011, 6, 18);
final BigDecimal expectedValue = ONE.add(EIGHT.divide(THREE_HUNDRED_AND_SIXTY_SIX, NUMBER_OF_DECIMALS, ROUNDING_METHOD));
testCalculateNumberOfBillingCycles(startDate, endDate, targetDate, 17, expectedValue);
@@ -72,8 +74,8 @@ public class TestTrailingProRation extends ProRationInAdvanceTestBase {
@Test(groups = "fast")
public void testTargetDateOnEndDate() throws InvalidDateSequenceException {
- final LocalDate startDate = buildDate(2010, 6, 17);
- final LocalDate endDate = buildDate(2011, 6, 25);
+ final LocalDate startDate = invoiceUtil.buildDate(2010, 6, 17);
+ final LocalDate endDate = invoiceUtil.buildDate(2011, 6, 25);
final BigDecimal expectedValue = ONE.add(EIGHT.divide(THREE_HUNDRED_AND_SIXTY_SIX, NUMBER_OF_DECIMALS, ROUNDING_METHOD));
testCalculateNumberOfBillingCycles(startDate, endDate, endDate, 17, expectedValue);
@@ -81,9 +83,9 @@ public class TestTrailingProRation extends ProRationInAdvanceTestBase {
@Test(groups = "fast")
public void testTargetDateAfterEndDate() throws InvalidDateSequenceException {
- final LocalDate startDate = buildDate(2010, 6, 17);
- final LocalDate endDate = buildDate(2011, 6, 25);
- final LocalDate targetDate = buildDate(2011, 7, 30);
+ final LocalDate startDate = invoiceUtil.buildDate(2010, 6, 17);
+ final LocalDate endDate = invoiceUtil.buildDate(2011, 6, 25);
+ final LocalDate targetDate = invoiceUtil.buildDate(2011, 7, 30);
final BigDecimal expectedValue = ONE.add(EIGHT.divide(THREE_HUNDRED_AND_SIXTY_SIX, NUMBER_OF_DECIMALS, ROUNDING_METHOD));
testCalculateNumberOfBillingCycles(startDate, endDate, targetDate, 17, expectedValue);
diff --git a/invoice/src/test/java/com/ning/billing/invoice/tests/inAdvance/GenericProRationTestBase.java b/invoice/src/test/java/com/ning/billing/invoice/tests/inAdvance/GenericProRationTestBase.java
index a23a534..6794f6b 100644
--- a/invoice/src/test/java/com/ning/billing/invoice/tests/inAdvance/GenericProRationTestBase.java
+++ b/invoice/src/test/java/com/ning/billing/invoice/tests/inAdvance/GenericProRationTestBase.java
@@ -16,6 +16,8 @@
package com.ning.billing.invoice.tests.inAdvance;
+import static com.ning.billing.invoice.TestInvoiceUtil.*;
+
import java.math.BigDecimal;
import org.joda.time.LocalDate;
@@ -34,22 +36,22 @@ public abstract class GenericProRationTestBase extends ProRationInAdvanceTestBas
@Test(groups = "fast")
public void testSinglePlan_OnStartDate() throws InvalidDateSequenceException {
- final LocalDate startDate = buildDate(2011, 2, 15);
+ final LocalDate startDate = invoiceUtil.buildDate(2011, 2, 15);
testCalculateNumberOfBillingCycles(startDate, startDate, 15, ONE);
}
@Test(groups = "fast")
public void testSinglePlan_LessThanOnePeriod() throws InvalidDateSequenceException {
- final LocalDate startDate = buildDate(2011, 2, 15);
- final LocalDate targetDate = buildDate(2011, 3, 1);
+ final LocalDate startDate = invoiceUtil.buildDate(2011, 2, 15);
+ final LocalDate targetDate = invoiceUtil.buildDate(2011, 3, 1);
testCalculateNumberOfBillingCycles(startDate, targetDate, 15, ONE);
}
@Test(groups = "fast")
public void testSinglePlan_OnePeriodLessADayAfterStart() throws InvalidDateSequenceException {
- final LocalDate startDate = buildDate(2011, 2, 15);
+ final LocalDate startDate = invoiceUtil.buildDate(2011, 2, 15);
final LocalDate targetDate = startDate.plusMonths(getBillingPeriod().getNumberOfMonths()).plusDays(-1);
testCalculateNumberOfBillingCycles(startDate, targetDate, 15, ONE);
@@ -57,7 +59,7 @@ public abstract class GenericProRationTestBase extends ProRationInAdvanceTestBas
@Test(groups = "fast")
public void testSinglePlan_ExactlyOnePeriodAfterStart() throws InvalidDateSequenceException {
- final LocalDate startDate = buildDate(2011, 2, 15);
+ final LocalDate startDate = invoiceUtil.buildDate(2011, 2, 15);
final LocalDate targetDate = startDate.plusMonths(getBillingPeriod().getNumberOfMonths());
testCalculateNumberOfBillingCycles(startDate, targetDate, 15, TWO);
@@ -65,7 +67,7 @@ public abstract class GenericProRationTestBase extends ProRationInAdvanceTestBas
@Test(groups = "fast")
public void testSinglePlan_SlightlyMoreThanOnePeriodAfterStart() throws InvalidDateSequenceException {
- final LocalDate startDate = buildDate(2011, 2, 15);
+ final LocalDate startDate = invoiceUtil.buildDate(2011, 2, 15);
final LocalDate targetDate = startDate.plusMonths(getBillingPeriod().getNumberOfMonths()).plusDays(1);
testCalculateNumberOfBillingCycles(startDate, targetDate, 15, TWO);
@@ -73,7 +75,7 @@ public abstract class GenericProRationTestBase extends ProRationInAdvanceTestBas
@Test(groups = "fast")
public void testSinglePlan_CrossingYearBoundary() throws InvalidDateSequenceException {
- final LocalDate startDate = buildDate(2011, 12, 15);
+ final LocalDate startDate = invoiceUtil.buildDate(2011, 12, 15);
final LocalDate oneCycleLater = startDate.plusMonths(getBillingPeriod().getNumberOfMonths());
// test just before the billing cycle day
@@ -88,7 +90,7 @@ public abstract class GenericProRationTestBase extends ProRationInAdvanceTestBas
@Test(groups = "fast")
public void testSinglePlan_StartingMidFebruary() throws InvalidDateSequenceException {
- final LocalDate startDate = buildDate(2011, 2, 15);
+ final LocalDate startDate = invoiceUtil.buildDate(2011, 2, 15);
final LocalDate targetDate = startDate.plusMonths(getBillingPeriod().getNumberOfMonths());
testCalculateNumberOfBillingCycles(startDate, targetDate, 15, TWO);
@@ -96,7 +98,7 @@ public abstract class GenericProRationTestBase extends ProRationInAdvanceTestBas
@Test(groups = "fast")
public void testSinglePlan_StartingMidFebruaryOfLeapYear() throws InvalidDateSequenceException {
- final LocalDate startDate = buildDate(2012, 2, 15);
+ final LocalDate startDate = invoiceUtil.buildDate(2012, 2, 15);
final LocalDate targetDate = startDate.plusMonths(getBillingPeriod().getNumberOfMonths());
testCalculateNumberOfBillingCycles(startDate, targetDate, 15, TWO);
@@ -104,7 +106,7 @@ public abstract class GenericProRationTestBase extends ProRationInAdvanceTestBas
@Test(groups = "fast")
public void testSinglePlan_MovingForwardThroughTime() throws InvalidDateSequenceException {
- final LocalDate startDate = buildDate(2011, 1, 31);
+ final LocalDate startDate = invoiceUtil.buildDate(2011, 1, 31);
BigDecimal expectedValue = ONE;
for (int i = 1; i <= 12; i++) {
@@ -125,9 +127,9 @@ public abstract class GenericProRationTestBase extends ProRationInAdvanceTestBas
// tests for cancellation in less than one period, beginning Jan 1
@Test(groups = "fast")
public void testCancelledBeforeOnePeriod_TargetDateInStartDate() throws InvalidDateSequenceException {
- final LocalDate startDate = buildDate(2011, 1, 1);
- final LocalDate targetDate = buildDate(2011, 1, 1);
- final LocalDate endDate = buildDate(2011, 1, 15);
+ final LocalDate startDate = invoiceUtil.buildDate(2011, 1, 1);
+ final LocalDate targetDate = invoiceUtil.buildDate(2011, 1, 1);
+ final LocalDate endDate = invoiceUtil.buildDate(2011, 1, 15);
final BigDecimal expectedValue = FOURTEEN.divide(getDaysInTestPeriod(), NUMBER_OF_DECIMALS, ROUNDING_METHOD);
testCalculateNumberOfBillingCycles(startDate, endDate, targetDate, 1, expectedValue);
@@ -135,9 +137,9 @@ public abstract class GenericProRationTestBase extends ProRationInAdvanceTestBas
@Test(groups = "fast")
public void testCancelledBeforeOnePeriod_TargetDateInSubscriptionPeriod() throws InvalidDateSequenceException {
- final LocalDate startDate = buildDate(2011, 1, 1);
- final LocalDate targetDate = buildDate(2011, 1, 7);
- final LocalDate endDate = buildDate(2011, 1, 15);
+ final LocalDate startDate = invoiceUtil.buildDate(2011, 1, 1);
+ final LocalDate targetDate = invoiceUtil.buildDate(2011, 1, 7);
+ final LocalDate endDate = invoiceUtil.buildDate(2011, 1, 15);
final BigDecimal expectedValue = FOURTEEN.divide(getDaysInTestPeriod(), NUMBER_OF_DECIMALS, ROUNDING_METHOD);
testCalculateNumberOfBillingCycles(startDate, endDate, targetDate, 1, expectedValue);
@@ -145,9 +147,9 @@ public abstract class GenericProRationTestBase extends ProRationInAdvanceTestBas
@Test(groups = "fast")
public void testCancelledBeforeOnePeriod_TargetDateOnEndDate() throws InvalidDateSequenceException {
- final LocalDate startDate = buildDate(2011, 1, 1);
- final LocalDate targetDate = buildDate(2011, 1, 15);
- final LocalDate endDate = buildDate(2011, 1, 15);
+ final LocalDate startDate = invoiceUtil.buildDate(2011, 1, 1);
+ final LocalDate targetDate = invoiceUtil.buildDate(2011, 1, 15);
+ final LocalDate endDate = invoiceUtil.buildDate(2011, 1, 15);
final BigDecimal expectedValue = FOURTEEN.divide(getDaysInTestPeriod(), NUMBER_OF_DECIMALS, ROUNDING_METHOD);
testCalculateNumberOfBillingCycles(startDate, endDate, targetDate, 1, expectedValue);
@@ -155,9 +157,9 @@ public abstract class GenericProRationTestBase extends ProRationInAdvanceTestBas
@Test(groups = "fast")
public void testCancelledBeforeOnePeriod_TargetDateAfterEndDateButInFirstBillingPeriod() throws InvalidDateSequenceException {
- final LocalDate startDate = buildDate(2011, 1, 1);
- final LocalDate targetDate = buildDate(2011, 1, 17);
- final LocalDate endDate = buildDate(2011, 1, 15);
+ final LocalDate startDate = invoiceUtil.buildDate(2011, 1, 1);
+ final LocalDate targetDate = invoiceUtil.buildDate(2011, 1, 17);
+ final LocalDate endDate = invoiceUtil.buildDate(2011, 1, 15);
final BigDecimal expectedValue = FOURTEEN.divide(getDaysInTestPeriod(), NUMBER_OF_DECIMALS, ROUNDING_METHOD);
testCalculateNumberOfBillingCycles(startDate, endDate, targetDate, 1, expectedValue);
@@ -165,9 +167,9 @@ public abstract class GenericProRationTestBase extends ProRationInAdvanceTestBas
@Test(groups = "fast")
public void testCancelledBeforeOnePeriod_TargetDateAtEndOfFirstBillingPeriod() throws InvalidDateSequenceException {
- final LocalDate startDate = buildDate(2011, 1, 1);
- final LocalDate targetDate = buildDate(2011, 2, 1);
- final LocalDate endDate = buildDate(2011, 1, 15);
+ final LocalDate startDate = invoiceUtil.buildDate(2011, 1, 1);
+ final LocalDate targetDate = invoiceUtil.buildDate(2011, 2, 1);
+ final LocalDate endDate = invoiceUtil.buildDate(2011, 1, 15);
final BigDecimal expectedValue = FOURTEEN.divide(getDaysInTestPeriod(), NUMBER_OF_DECIMALS, ROUNDING_METHOD);
testCalculateNumberOfBillingCycles(startDate, endDate, targetDate, 1, expectedValue);
@@ -175,9 +177,9 @@ public abstract class GenericProRationTestBase extends ProRationInAdvanceTestBas
@Test(groups = "fast")
public void testCancelledBeforeOnePeriod_TargetDateAfterFirstBillingPeriod() throws InvalidDateSequenceException {
- final LocalDate startDate = buildDate(2011, 1, 1);
- final LocalDate targetDate = buildDate(2011, 4, 5);
- final LocalDate endDate = buildDate(2011, 1, 15);
+ final LocalDate startDate = invoiceUtil.buildDate(2011, 1, 1);
+ final LocalDate targetDate = invoiceUtil.buildDate(2011, 4, 5);
+ final LocalDate endDate = invoiceUtil.buildDate(2011, 1, 15);
final BigDecimal expectedValue = FOURTEEN.divide(getDaysInTestPeriod(), NUMBER_OF_DECIMALS, ROUNDING_METHOD);
testCalculateNumberOfBillingCycles(startDate, endDate, targetDate, 1, expectedValue);
diff --git a/invoice/src/test/java/com/ning/billing/invoice/tests/inAdvance/monthly/GenericProRationTests.java b/invoice/src/test/java/com/ning/billing/invoice/tests/inAdvance/monthly/GenericProRationTests.java
index 42f4c62..f79e158 100644
--- a/invoice/src/test/java/com/ning/billing/invoice/tests/inAdvance/monthly/GenericProRationTests.java
+++ b/invoice/src/test/java/com/ning/billing/invoice/tests/inAdvance/monthly/GenericProRationTests.java
@@ -16,6 +16,8 @@
package com.ning.billing.invoice.tests.inAdvance.monthly;
+import static com.ning.billing.invoice.TestInvoiceUtil.*;
+
import java.math.BigDecimal;
import com.ning.billing.catalog.api.BillingPeriod;
diff --git a/invoice/src/test/java/com/ning/billing/invoice/tests/inAdvance/monthly/TestDoubleProRation.java b/invoice/src/test/java/com/ning/billing/invoice/tests/inAdvance/monthly/TestDoubleProRation.java
index cbf4ce1..e009506 100644
--- a/invoice/src/test/java/com/ning/billing/invoice/tests/inAdvance/monthly/TestDoubleProRation.java
+++ b/invoice/src/test/java/com/ning/billing/invoice/tests/inAdvance/monthly/TestDoubleProRation.java
@@ -16,6 +16,8 @@
package com.ning.billing.invoice.tests.inAdvance.monthly;
+import static com.ning.billing.invoice.TestInvoiceUtil.*;
+
import java.math.BigDecimal;
import org.joda.time.LocalDate;
@@ -34,9 +36,9 @@ public class TestDoubleProRation extends ProRationInAdvanceTestBase {
@Test(groups = "fast")
public void testDoubleProRation_TargetDateOnStartDate() throws InvalidDateSequenceException {
- final LocalDate startDate = buildDate(2011, 1, 1);
- final LocalDate targetDate = buildDate(2011, 1, 1);
- final LocalDate endDate = buildDate(2011, 2, 27);
+ final LocalDate startDate = invoiceUtil.buildDate(2011, 1, 1);
+ final LocalDate targetDate = invoiceUtil.buildDate(2011, 1, 1);
+ final LocalDate endDate = invoiceUtil.buildDate(2011, 2, 27);
final BigDecimal expectedValue = FOURTEEN.divide(THIRTY_ONE, NUMBER_OF_DECIMALS, ROUNDING_METHOD);
testCalculateNumberOfBillingCycles(startDate, endDate, targetDate, 15, expectedValue);
@@ -44,9 +46,9 @@ public class TestDoubleProRation extends ProRationInAdvanceTestBase {
@Test(groups = "fast")
public void testDoubleProRation_TargetDateInFirstProRationPeriod() throws InvalidDateSequenceException {
- final LocalDate startDate = buildDate(2011, 1, 1);
- final LocalDate targetDate = buildDate(2011, 1, 7);
- final LocalDate endDate = buildDate(2011, 2, 27);
+ final LocalDate startDate = invoiceUtil.buildDate(2011, 1, 1);
+ final LocalDate targetDate = invoiceUtil.buildDate(2011, 1, 7);
+ final LocalDate endDate = invoiceUtil.buildDate(2011, 2, 27);
final BigDecimal expectedValue = FOURTEEN.divide(THIRTY_ONE, NUMBER_OF_DECIMALS, ROUNDING_METHOD);
testCalculateNumberOfBillingCycles(startDate, endDate, targetDate, 15, expectedValue);
@@ -54,9 +56,9 @@ public class TestDoubleProRation extends ProRationInAdvanceTestBase {
@Test(groups = "fast")
public void testDoubleProRation_TargetDateOnFirstBillingCycleDate() throws InvalidDateSequenceException {
- final LocalDate startDate = buildDate(2011, 1, 1);
- final LocalDate targetDate = buildDate(2011, 1, 15);
- final LocalDate endDate = buildDate(2011, 2, 27);
+ final LocalDate startDate = invoiceUtil.buildDate(2011, 1, 1);
+ final LocalDate targetDate = invoiceUtil.buildDate(2011, 1, 15);
+ final LocalDate endDate = invoiceUtil.buildDate(2011, 2, 27);
final BigDecimal expectedValue = ONE.add(FOURTEEN.divide(THIRTY_ONE, NUMBER_OF_DECIMALS, ROUNDING_METHOD));
testCalculateNumberOfBillingCycles(startDate, endDate, targetDate, 15, expectedValue);
@@ -64,9 +66,9 @@ public class TestDoubleProRation extends ProRationInAdvanceTestBase {
@Test(groups = "fast")
public void testDoubleProRation_TargetDateInFullBillingPeriod() throws InvalidDateSequenceException {
- final LocalDate startDate = buildDate(2011, 1, 1);
- final LocalDate targetDate = buildDate(2011, 1, 22);
- final LocalDate endDate = buildDate(2011, 2, 27);
+ final LocalDate startDate = invoiceUtil.buildDate(2011, 1, 1);
+ final LocalDate targetDate = invoiceUtil.buildDate(2011, 1, 22);
+ final LocalDate endDate = invoiceUtil.buildDate(2011, 2, 27);
BigDecimal expectedValue;
expectedValue = FOURTEEN.divide(THIRTY_ONE, NUMBER_OF_DECIMALS, ROUNDING_METHOD);
@@ -77,9 +79,9 @@ public class TestDoubleProRation extends ProRationInAdvanceTestBase {
@Test(groups = "fast")
public void testDoubleProRation_TargetDateOnSecondBillingCycleDate() throws InvalidDateSequenceException {
- final LocalDate startDate = buildDate(2011, 1, 1);
- final LocalDate targetDate = buildDate(2011, 2, 27);
- final LocalDate endDate = buildDate(2011, 2, 27);
+ final LocalDate startDate = invoiceUtil.buildDate(2011, 1, 1);
+ final LocalDate targetDate = invoiceUtil.buildDate(2011, 2, 27);
+ final LocalDate endDate = invoiceUtil.buildDate(2011, 2, 27);
BigDecimal expectedValue;
expectedValue = FOURTEEN.divide(THIRTY_ONE, NUMBER_OF_DECIMALS, ROUNDING_METHOD);
@@ -91,9 +93,9 @@ public class TestDoubleProRation extends ProRationInAdvanceTestBase {
@Test(groups = "fast")
public void testDoubleProRation_TargetDateInSecondProRationPeriod() throws InvalidDateSequenceException {
- final LocalDate startDate = buildDate(2011, 1, 1);
- final LocalDate targetDate = buildDate(2011, 2, 26);
- final LocalDate endDate = buildDate(2011, 2, 27);
+ final LocalDate startDate = invoiceUtil.buildDate(2011, 1, 1);
+ final LocalDate targetDate = invoiceUtil.buildDate(2011, 2, 26);
+ final LocalDate endDate = invoiceUtil.buildDate(2011, 2, 27);
BigDecimal expectedValue;
expectedValue = FOURTEEN.divide(THIRTY_ONE, NUMBER_OF_DECIMALS, ROUNDING_METHOD);
@@ -105,9 +107,9 @@ public class TestDoubleProRation extends ProRationInAdvanceTestBase {
@Test(groups = "fast")
public void testDoubleProRation_TargetDateOnEndDate() throws InvalidDateSequenceException {
- final LocalDate startDate = buildDate(2011, 1, 1);
- final LocalDate targetDate = buildDate(2011, 2, 27);
- final LocalDate endDate = buildDate(2011, 2, 27);
+ final LocalDate startDate = invoiceUtil.buildDate(2011, 1, 1);
+ final LocalDate targetDate = invoiceUtil.buildDate(2011, 2, 27);
+ final LocalDate endDate = invoiceUtil.buildDate(2011, 2, 27);
BigDecimal expectedValue;
expectedValue = FOURTEEN.divide(THIRTY_ONE, NUMBER_OF_DECIMALS, ROUNDING_METHOD);
@@ -119,9 +121,9 @@ public class TestDoubleProRation extends ProRationInAdvanceTestBase {
@Test(groups = "fast")
public void testDoubleProRation_TargetDateAfterEndDate() throws InvalidDateSequenceException {
- final LocalDate startDate = buildDate(2011, 1, 1);
- final LocalDate targetDate = buildDate(2011, 3, 7);
- final LocalDate endDate = buildDate(2011, 2, 27);
+ final LocalDate startDate = invoiceUtil.buildDate(2011, 1, 1);
+ final LocalDate targetDate = invoiceUtil.buildDate(2011, 3, 7);
+ final LocalDate endDate = invoiceUtil.buildDate(2011, 2, 27);
BigDecimal expectedValue;
expectedValue = FOURTEEN.divide(THIRTY_ONE, NUMBER_OF_DECIMALS, ROUNDING_METHOD);
@@ -133,9 +135,9 @@ public class TestDoubleProRation extends ProRationInAdvanceTestBase {
@Test(groups = "fast")
public void testDoubleProRationWithMultiplePeriods_TargetDateInSecondFullBillingPeriod() throws InvalidDateSequenceException {
- final LocalDate startDate = buildDate(2011, 1, 1);
- final LocalDate targetDate = buildDate(2011, 2, 26);
- final LocalDate endDate = buildDate(2011, 4, 27);
+ final LocalDate startDate = invoiceUtil.buildDate(2011, 1, 1);
+ final LocalDate targetDate = invoiceUtil.buildDate(2011, 2, 26);
+ final LocalDate endDate = invoiceUtil.buildDate(2011, 4, 27);
BigDecimal expectedValue;
expectedValue = FOURTEEN.divide(THIRTY_ONE, NUMBER_OF_DECIMALS, ROUNDING_METHOD);
diff --git a/invoice/src/test/java/com/ning/billing/invoice/tests/inAdvance/monthly/TestLeadingProRation.java b/invoice/src/test/java/com/ning/billing/invoice/tests/inAdvance/monthly/TestLeadingProRation.java
index 34de837..ff60c31 100644
--- a/invoice/src/test/java/com/ning/billing/invoice/tests/inAdvance/monthly/TestLeadingProRation.java
+++ b/invoice/src/test/java/com/ning/billing/invoice/tests/inAdvance/monthly/TestLeadingProRation.java
@@ -16,6 +16,8 @@
package com.ning.billing.invoice.tests.inAdvance.monthly;
+import static com.ning.billing.invoice.TestInvoiceUtil.*;
+
import java.math.BigDecimal;
import org.joda.time.LocalDate;
@@ -34,8 +36,8 @@ public class TestLeadingProRation extends ProRationInAdvanceTestBase {
@Test(groups = "fast")
public void testLeadingProRation_Evergreen_TargetDateOnStartDate() throws InvalidDateSequenceException {
- final LocalDate startDate = buildDate(2011, 2, 1);
- final LocalDate targetDate = buildDate(2011, 2, 1);
+ final LocalDate startDate = invoiceUtil.buildDate(2011, 2, 1);
+ final LocalDate targetDate = invoiceUtil.buildDate(2011, 2, 1);
final BigDecimal expectedValue;
expectedValue = TWELVE.divide(THIRTY_ONE, NUMBER_OF_DECIMALS, ROUNDING_METHOD);
@@ -45,8 +47,8 @@ public class TestLeadingProRation extends ProRationInAdvanceTestBase {
@Test(groups = "fast")
public void testLeadingProRation_Evergreen_TargetDateInProRationPeriod() throws InvalidDateSequenceException {
- final LocalDate startDate = buildDate(2011, 2, 1);
- final LocalDate targetDate = buildDate(2011, 2, 4);
+ final LocalDate startDate = invoiceUtil.buildDate(2011, 2, 1);
+ final LocalDate targetDate = invoiceUtil.buildDate(2011, 2, 4);
final BigDecimal expectedValue;
expectedValue = TWELVE.divide(THIRTY_ONE, NUMBER_OF_DECIMALS, ROUNDING_METHOD);
@@ -56,8 +58,8 @@ public class TestLeadingProRation extends ProRationInAdvanceTestBase {
@Test(groups = "fast")
public void testLeadingProRation_Evergreen_TargetDateOnFirstBillingDate() throws InvalidDateSequenceException {
- final LocalDate startDate = buildDate(2011, 2, 1);
- final LocalDate targetDate = buildDate(2011, 2, 13);
+ final LocalDate startDate = invoiceUtil.buildDate(2011, 2, 1);
+ final LocalDate targetDate = invoiceUtil.buildDate(2011, 2, 13);
final BigDecimal expectedValue;
expectedValue = TWELVE.divide(THIRTY_ONE, NUMBER_OF_DECIMALS, ROUNDING_METHOD).add(ONE);
@@ -67,8 +69,8 @@ public class TestLeadingProRation extends ProRationInAdvanceTestBase {
@Test(groups = "fast")
public void testLeadingProRation_Evergreen_TargetDateAfterFirstBillingPeriod() throws InvalidDateSequenceException {
- final LocalDate startDate = buildDate(2011, 2, 1);
- final LocalDate targetDate = buildDate(2011, 4, 13);
+ final LocalDate startDate = invoiceUtil.buildDate(2011, 2, 1);
+ final LocalDate targetDate = invoiceUtil.buildDate(2011, 4, 13);
final BigDecimal expectedValue;
expectedValue = TWELVE.divide(THIRTY_ONE, NUMBER_OF_DECIMALS, ROUNDING_METHOD).add(THREE);
@@ -78,9 +80,9 @@ public class TestLeadingProRation extends ProRationInAdvanceTestBase {
@Test(groups = "fast")
public void testLeadingProRation_WithEndDate_TargetDateOnStartDate() throws InvalidDateSequenceException {
- final LocalDate startDate = buildDate(2011, 2, 1);
- final LocalDate targetDate = buildDate(2011, 2, 1);
- final LocalDate endDate = buildDate(2011, 4, 13);
+ final LocalDate startDate = invoiceUtil.buildDate(2011, 2, 1);
+ final LocalDate targetDate = invoiceUtil.buildDate(2011, 2, 1);
+ final LocalDate endDate = invoiceUtil.buildDate(2011, 4, 13);
final BigDecimal expectedValue;
expectedValue = TWELVE.divide(THIRTY_ONE, NUMBER_OF_DECIMALS, ROUNDING_METHOD);
@@ -90,9 +92,9 @@ public class TestLeadingProRation extends ProRationInAdvanceTestBase {
@Test(groups = "fast")
public void testLeadingProRation_WithEndDate_TargetDateInProRationPeriod() throws InvalidDateSequenceException {
- final LocalDate startDate = buildDate(2011, 2, 1);
- final LocalDate targetDate = buildDate(2011, 2, 4);
- final LocalDate endDate = buildDate(2011, 4, 13);
+ final LocalDate startDate = invoiceUtil.buildDate(2011, 2, 1);
+ final LocalDate targetDate = invoiceUtil.buildDate(2011, 2, 4);
+ final LocalDate endDate = invoiceUtil.buildDate(2011, 4, 13);
final BigDecimal expectedValue;
expectedValue = TWELVE.divide(THIRTY_ONE, NUMBER_OF_DECIMALS, ROUNDING_METHOD);
@@ -102,9 +104,9 @@ public class TestLeadingProRation extends ProRationInAdvanceTestBase {
@Test(groups = "fast")
public void testLeadingProRation_WithEndDate_TargetDateOnFirstBillingDate() throws InvalidDateSequenceException {
- final LocalDate startDate = buildDate(2011, 2, 1);
- final LocalDate targetDate = buildDate(2011, 2, 13);
- final LocalDate endDate = buildDate(2011, 4, 13);
+ final LocalDate startDate = invoiceUtil.buildDate(2011, 2, 1);
+ final LocalDate targetDate = invoiceUtil.buildDate(2011, 2, 13);
+ final LocalDate endDate = invoiceUtil.buildDate(2011, 4, 13);
final BigDecimal expectedValue;
expectedValue = TWELVE.divide(THIRTY_ONE, NUMBER_OF_DECIMALS, ROUNDING_METHOD).add(ONE);
@@ -114,9 +116,9 @@ public class TestLeadingProRation extends ProRationInAdvanceTestBase {
@Test(groups = "fast")
public void testLeadingProRation_WithEndDate_TargetDateInFinalBillingPeriod() throws InvalidDateSequenceException {
- final LocalDate startDate = buildDate(2011, 2, 1);
- final LocalDate targetDate = buildDate(2011, 4, 10);
- final LocalDate endDate = buildDate(2011, 4, 13);
+ final LocalDate startDate = invoiceUtil.buildDate(2011, 2, 1);
+ final LocalDate targetDate = invoiceUtil.buildDate(2011, 4, 10);
+ final LocalDate endDate = invoiceUtil.buildDate(2011, 4, 13);
final BigDecimal expectedValue;
expectedValue = TWELVE.divide(THIRTY_ONE, NUMBER_OF_DECIMALS, ROUNDING_METHOD).add(TWO);
@@ -126,9 +128,9 @@ public class TestLeadingProRation extends ProRationInAdvanceTestBase {
@Test(groups = "fast")
public void testLeadingProRation_WithEndDate_TargetDateOnEndDate() throws InvalidDateSequenceException {
- final LocalDate startDate = buildDate(2011, 2, 1);
- final LocalDate targetDate = buildDate(2011, 4, 13);
- final LocalDate endDate = buildDate(2011, 4, 13);
+ final LocalDate startDate = invoiceUtil.buildDate(2011, 2, 1);
+ final LocalDate targetDate = invoiceUtil.buildDate(2011, 4, 13);
+ final LocalDate endDate = invoiceUtil.buildDate(2011, 4, 13);
final BigDecimal expectedValue;
expectedValue = TWELVE.divide(THIRTY_ONE, NUMBER_OF_DECIMALS, ROUNDING_METHOD).add(TWO);
@@ -138,9 +140,9 @@ public class TestLeadingProRation extends ProRationInAdvanceTestBase {
@Test(groups = "fast")
public void testLeadingProRation_WithEndDate_TargetDateAfterEndDate() throws InvalidDateSequenceException {
- final LocalDate startDate = buildDate(2011, 2, 1);
- final LocalDate targetDate = buildDate(2011, 4, 10);
- final LocalDate endDate = buildDate(2011, 4, 13);
+ final LocalDate startDate = invoiceUtil.buildDate(2011, 2, 1);
+ final LocalDate targetDate = invoiceUtil.buildDate(2011, 4, 10);
+ final LocalDate endDate = invoiceUtil.buildDate(2011, 4, 13);
final BigDecimal expectedValue;
expectedValue = TWELVE.divide(THIRTY_ONE, NUMBER_OF_DECIMALS, ROUNDING_METHOD).add(TWO);
diff --git a/invoice/src/test/java/com/ning/billing/invoice/tests/inAdvance/monthly/TestProRation.java b/invoice/src/test/java/com/ning/billing/invoice/tests/inAdvance/monthly/TestProRation.java
index 0206b88..375b92a 100644
--- a/invoice/src/test/java/com/ning/billing/invoice/tests/inAdvance/monthly/TestProRation.java
+++ b/invoice/src/test/java/com/ning/billing/invoice/tests/inAdvance/monthly/TestProRation.java
@@ -16,6 +16,8 @@
package com.ning.billing.invoice.tests.inAdvance.monthly;
+import static com.ning.billing.invoice.TestInvoiceUtil.*;
+
import java.math.BigDecimal;
import org.joda.time.LocalDate;
@@ -34,9 +36,9 @@ public class TestProRation extends ProRationInAdvanceTestBase {
@Test(groups = "fast")
public void testSinglePlan_WithPhaseChange() throws InvalidDateSequenceException {
- final LocalDate startDate = buildDate(2011, 2, 10);
- final LocalDate phaseChangeDate = buildDate(2011, 2, 24);
- final LocalDate targetDate = buildDate(2011, 3, 6);
+ final LocalDate startDate = invoiceUtil.buildDate(2011, 2, 10);
+ final LocalDate phaseChangeDate = invoiceUtil.buildDate(2011, 2, 24);
+ final LocalDate targetDate = invoiceUtil.buildDate(2011, 3, 6);
testCalculateNumberOfBillingCycles(startDate, phaseChangeDate, targetDate, 10, ONE_HALF);
testCalculateNumberOfBillingCycles(phaseChangeDate, targetDate, 10, ONE_HALF);
@@ -44,9 +46,9 @@ public class TestProRation extends ProRationInAdvanceTestBase {
@Test(groups = "fast")
public void testSinglePlan_WithPhaseChange_BeforeBillCycleDay() throws InvalidDateSequenceException {
- final LocalDate startDate = buildDate(2011, 2, 3);
- final LocalDate phaseChangeDate = buildDate(2011, 2, 17);
- final LocalDate targetDate = buildDate(2011, 3, 1);
+ final LocalDate startDate = invoiceUtil.buildDate(2011, 2, 3);
+ final LocalDate phaseChangeDate = invoiceUtil.buildDate(2011, 2, 17);
+ final LocalDate targetDate = invoiceUtil.buildDate(2011, 3, 1);
testCalculateNumberOfBillingCycles(startDate, phaseChangeDate, targetDate, 3, ONE_HALF);
testCalculateNumberOfBillingCycles(phaseChangeDate, targetDate, 3, ONE_HALF);
@@ -54,9 +56,9 @@ public class TestProRation extends ProRationInAdvanceTestBase {
@Test(groups = "fast")
public void testSinglePlan_WithPhaseChange_OnBillCycleDay() throws InvalidDateSequenceException {
- final LocalDate startDate = buildDate(2011, 2, 3);
- final LocalDate phaseChangeDate = buildDate(2011, 2, 17);
- final LocalDate targetDate = buildDate(2011, 3, 3);
+ final LocalDate startDate = invoiceUtil.buildDate(2011, 2, 3);
+ final LocalDate phaseChangeDate = invoiceUtil.buildDate(2011, 2, 17);
+ final LocalDate targetDate = invoiceUtil.buildDate(2011, 3, 3);
testCalculateNumberOfBillingCycles(startDate, phaseChangeDate, targetDate, 3, ONE_HALF);
testCalculateNumberOfBillingCycles(phaseChangeDate, targetDate, 3, ONE_AND_A_HALF);
@@ -64,9 +66,9 @@ public class TestProRation extends ProRationInAdvanceTestBase {
@Test(groups = "fast")
public void testSinglePlan_WithPhaseChange_AfterBillCycleDay() throws InvalidDateSequenceException {
- final LocalDate startDate = buildDate(2011, 2, 3);
- final LocalDate phaseChangeDate = buildDate(2011, 2, 17);
- final LocalDate targetDate = buildDate(2011, 3, 4);
+ final LocalDate startDate = invoiceUtil.buildDate(2011, 2, 3);
+ final LocalDate phaseChangeDate = invoiceUtil.buildDate(2011, 2, 17);
+ final LocalDate targetDate = invoiceUtil.buildDate(2011, 3, 4);
testCalculateNumberOfBillingCycles(startDate, phaseChangeDate, targetDate, 3, ONE_HALF);
testCalculateNumberOfBillingCycles(phaseChangeDate, targetDate, 3, ONE_AND_A_HALF);
@@ -74,9 +76,9 @@ public class TestProRation extends ProRationInAdvanceTestBase {
@Test(groups = "fast")
public void testPlanChange_WithChangeOfBillCycleDayToLaterDay() throws InvalidDateSequenceException {
- final LocalDate startDate = buildDate(2011, 2, 1);
- final LocalDate planChangeDate = buildDate(2011, 2, 15);
- final LocalDate targetDate = buildDate(2011, 3, 1);
+ final LocalDate startDate = invoiceUtil.buildDate(2011, 2, 1);
+ final LocalDate planChangeDate = invoiceUtil.buildDate(2011, 2, 15);
+ final LocalDate targetDate = invoiceUtil.buildDate(2011, 3, 1);
testCalculateNumberOfBillingCycles(startDate, planChangeDate, targetDate, 1, ONE_HALF);
testCalculateNumberOfBillingCycles(planChangeDate, targetDate, 15, ONE);
@@ -84,9 +86,9 @@ public class TestProRation extends ProRationInAdvanceTestBase {
@Test(groups = "fast")
public void testPlanChange_WithChangeOfBillCycleDayToEarlierDay() throws InvalidDateSequenceException {
- final LocalDate startDate = buildDate(2011, 2, 20);
- final LocalDate planChangeDate = buildDate(2011, 3, 6);
- final LocalDate targetDate = buildDate(2011, 3, 9);
+ final LocalDate startDate = invoiceUtil.buildDate(2011, 2, 20);
+ final LocalDate planChangeDate = invoiceUtil.buildDate(2011, 3, 6);
+ final LocalDate targetDate = invoiceUtil.buildDate(2011, 3, 9);
testCalculateNumberOfBillingCycles(startDate, planChangeDate, targetDate, 20, ONE_HALF);
testCalculateNumberOfBillingCycles(planChangeDate, targetDate, 6, ONE);
@@ -94,41 +96,41 @@ public class TestProRation extends ProRationInAdvanceTestBase {
@Test(groups = "fast")
public void testSinglePlan_CrossingYearBoundary() throws InvalidDateSequenceException {
- final LocalDate startDate = buildDate(2010, 12, 15);
- final LocalDate targetDate = buildDate(2011, 1, 16);
+ final LocalDate startDate = invoiceUtil.buildDate(2010, 12, 15);
+ final LocalDate targetDate = invoiceUtil.buildDate(2011, 1, 16);
testCalculateNumberOfBillingCycles(startDate, targetDate, 15, TWO);
}
@Test(groups = "fast")
public void testSinglePlan_LeapYear_StartingMidFebruary() throws InvalidDateSequenceException {
- final LocalDate startDate = buildDate(2012, 2, 15);
- final LocalDate targetDate = buildDate(2012, 3, 15);
+ final LocalDate startDate = invoiceUtil.buildDate(2012, 2, 15);
+ final LocalDate targetDate = invoiceUtil.buildDate(2012, 3, 15);
testCalculateNumberOfBillingCycles(startDate, targetDate, 15, TWO);
}
@Test(groups = "fast")
public void testSinglePlan_LeapYear_StartingBeforeFebruary() throws InvalidDateSequenceException {
- final LocalDate startDate = buildDate(2012, 1, 15);
- final LocalDate targetDate = buildDate(2012, 2, 3);
+ final LocalDate startDate = invoiceUtil.buildDate(2012, 1, 15);
+ final LocalDate targetDate = invoiceUtil.buildDate(2012, 2, 3);
testCalculateNumberOfBillingCycles(startDate, targetDate, 15, ONE);
}
@Test(groups = "fast")
public void testSinglePlan_LeapYear_IncludingAllOfFebruary() throws InvalidDateSequenceException {
- final LocalDate startDate = buildDate(2012, 1, 30);
- final LocalDate targetDate = buildDate(2012, 3, 1);
+ final LocalDate startDate = invoiceUtil.buildDate(2012, 1, 30);
+ final LocalDate targetDate = invoiceUtil.buildDate(2012, 3, 1);
testCalculateNumberOfBillingCycles(startDate, targetDate, 30, TWO);
}
@Test(groups = "fast")
public void testSinglePlan_ChangeBCDTo31() throws InvalidDateSequenceException {
- final LocalDate startDate = buildDate(2011, 2, 1);
- final LocalDate planChangeDate = buildDate(2011, 2, 14);
- final LocalDate targetDate = buildDate(2011, 3, 1);
+ final LocalDate startDate = invoiceUtil.buildDate(2011, 2, 1);
+ final LocalDate planChangeDate = invoiceUtil.buildDate(2011, 2, 14);
+ final LocalDate targetDate = invoiceUtil.buildDate(2011, 3, 1);
BigDecimal expectedValue;
@@ -141,9 +143,9 @@ public class TestProRation extends ProRationInAdvanceTestBase {
@Test(groups = "fast")
public void testSinglePlan_ChangeBCD() throws InvalidDateSequenceException {
- final LocalDate startDate = buildDate(2011, 2, 1);
- final LocalDate planChangeDate = buildDate(2011, 2, 14);
- final LocalDate targetDate = buildDate(2011, 3, 1);
+ final LocalDate startDate = invoiceUtil.buildDate(2011, 2, 1);
+ final LocalDate planChangeDate = invoiceUtil.buildDate(2011, 2, 14);
+ final LocalDate targetDate = invoiceUtil.buildDate(2011, 3, 1);
BigDecimal expectedValue;
@@ -156,9 +158,9 @@ public class TestProRation extends ProRationInAdvanceTestBase {
@Test(groups = "fast")
public void testSinglePlan_LeapYearFebruaryProRation() throws InvalidDateSequenceException {
- final LocalDate startDate = buildDate(2012, 2, 1);
- final LocalDate endDate = buildDate(2012, 2, 15);
- final LocalDate targetDate = buildDate(2012, 2, 19);
+ final LocalDate startDate = invoiceUtil.buildDate(2012, 2, 1);
+ final LocalDate endDate = invoiceUtil.buildDate(2012, 2, 15);
+ final LocalDate targetDate = invoiceUtil.buildDate(2012, 2, 19);
final BigDecimal expectedValue;
expectedValue = FOURTEEN.divide(TWENTY_NINE, NUMBER_OF_DECIMALS, ROUNDING_METHOD);
@@ -168,9 +170,9 @@ public class TestProRation extends ProRationInAdvanceTestBase {
@Test(groups = "fast")
public void testPlanChange_BeforeBillingDay() throws InvalidDateSequenceException {
- final LocalDate startDate = buildDate(2011, 2, 7);
- final LocalDate changeDate = buildDate(2011, 2, 15);
- final LocalDate targetDate = buildDate(2011, 4, 21);
+ final LocalDate startDate = invoiceUtil.buildDate(2011, 2, 7);
+ final LocalDate changeDate = invoiceUtil.buildDate(2011, 2, 15);
+ final LocalDate targetDate = invoiceUtil.buildDate(2011, 4, 21);
final BigDecimal expectedValue;
@@ -182,9 +184,9 @@ public class TestProRation extends ProRationInAdvanceTestBase {
@Test(groups = "fast")
public void testPlanChange_OnBillingDay() throws InvalidDateSequenceException {
- final LocalDate startDate = buildDate(2011, 2, 7);
- final LocalDate changeDate = buildDate(2011, 3, 7);
- final LocalDate targetDate = buildDate(2011, 4, 21);
+ final LocalDate startDate = invoiceUtil.buildDate(2011, 2, 7);
+ final LocalDate changeDate = invoiceUtil.buildDate(2011, 3, 7);
+ final LocalDate targetDate = invoiceUtil.buildDate(2011, 4, 21);
testCalculateNumberOfBillingCycles(startDate, changeDate, targetDate, 7, ONE);
@@ -195,9 +197,9 @@ public class TestProRation extends ProRationInAdvanceTestBase {
@Test(groups = "fast")
public void testPlanChange_AfterBillingDay() throws InvalidDateSequenceException {
- final LocalDate startDate = buildDate(2011, 2, 7);
- final LocalDate changeDate = buildDate(2011, 3, 10);
- final LocalDate targetDate = buildDate(2011, 4, 21);
+ final LocalDate startDate = invoiceUtil.buildDate(2011, 2, 7);
+ final LocalDate changeDate = invoiceUtil.buildDate(2011, 3, 10);
+ final LocalDate targetDate = invoiceUtil.buildDate(2011, 4, 21);
BigDecimal expectedValue;
@@ -210,9 +212,9 @@ public class TestProRation extends ProRationInAdvanceTestBase {
@Test(groups = "fast")
public void testPlanChange_DoubleProRation() throws InvalidDateSequenceException {
- final LocalDate startDate = buildDate(2011, 1, 31);
- final LocalDate planChangeDate = buildDate(2011, 3, 10);
- final LocalDate targetDate = buildDate(2011, 4, 21);
+ final LocalDate startDate = invoiceUtil.buildDate(2011, 1, 31);
+ final LocalDate planChangeDate = invoiceUtil.buildDate(2011, 3, 10);
+ final LocalDate targetDate = invoiceUtil.buildDate(2011, 4, 21);
BigDecimal expectedValue;
expectedValue = SEVEN.divide(THIRTY_ONE, 2 * NUMBER_OF_DECIMALS, ROUNDING_METHOD);
@@ -227,9 +229,9 @@ public class TestProRation extends ProRationInAdvanceTestBase {
@Test(groups = "fast")
public void testStartTargetEnd() throws InvalidDateSequenceException {
- final LocalDate startDate = buildDate(2010, 12, 15);
- final LocalDate targetDate = buildDate(2011, 3, 15);
- final LocalDate endDate = buildDate(2011, 3, 17);
+ final LocalDate startDate = invoiceUtil.buildDate(2010, 12, 15);
+ final LocalDate targetDate = invoiceUtil.buildDate(2011, 3, 15);
+ final LocalDate endDate = invoiceUtil.buildDate(2011, 3, 17);
final BigDecimal expectedValue = THREE.add(TWO.divide(THIRTY_ONE, NUMBER_OF_DECIMALS, ROUNDING_METHOD));
testCalculateNumberOfBillingCycles(startDate, endDate, targetDate, 15, expectedValue);
diff --git a/invoice/src/test/java/com/ning/billing/invoice/tests/inAdvance/monthly/TestTrailingProRation.java b/invoice/src/test/java/com/ning/billing/invoice/tests/inAdvance/monthly/TestTrailingProRation.java
index 1eaa8a6..205e075 100644
--- a/invoice/src/test/java/com/ning/billing/invoice/tests/inAdvance/monthly/TestTrailingProRation.java
+++ b/invoice/src/test/java/com/ning/billing/invoice/tests/inAdvance/monthly/TestTrailingProRation.java
@@ -16,6 +16,8 @@
package com.ning.billing.invoice.tests.inAdvance.monthly;
+import static com.ning.billing.invoice.TestInvoiceUtil.*;
+
import java.math.BigDecimal;
import org.joda.time.LocalDate;
@@ -34,27 +36,27 @@ public class TestTrailingProRation extends ProRationInAdvanceTestBase {
@Test(groups = "fast")
public void testTargetDateOnStartDate() throws InvalidDateSequenceException {
- final LocalDate startDate = buildDate(2010, 6, 17);
- final LocalDate endDate = buildDate(2010, 7, 25);
- final LocalDate targetDate = buildDate(2010, 6, 17);
+ final LocalDate startDate = invoiceUtil.buildDate(2010, 6, 17);
+ final LocalDate endDate = invoiceUtil.buildDate(2010, 7, 25);
+ final LocalDate targetDate = invoiceUtil.buildDate(2010, 6, 17);
testCalculateNumberOfBillingCycles(startDate, endDate, targetDate, 17, ONE);
}
@Test(groups = "fast")
public void testTargetDateInFirstBillingPeriod() throws InvalidDateSequenceException {
- final LocalDate startDate = buildDate(2010, 6, 17);
- final LocalDate endDate = buildDate(2010, 7, 25);
- final LocalDate targetDate = buildDate(2010, 6, 20);
+ final LocalDate startDate = invoiceUtil.buildDate(2010, 6, 17);
+ final LocalDate endDate = invoiceUtil.buildDate(2010, 7, 25);
+ final LocalDate targetDate = invoiceUtil.buildDate(2010, 6, 20);
testCalculateNumberOfBillingCycles(startDate, endDate, targetDate, 17, ONE);
}
@Test(groups = "fast")
public void testTargetDateAtEndOfFirstBillingCycle() throws InvalidDateSequenceException {
- final LocalDate startDate = buildDate(2010, 6, 17);
- final LocalDate endDate = buildDate(2010, 7, 25);
- final LocalDate targetDate = buildDate(2010, 7, 17);
+ final LocalDate startDate = invoiceUtil.buildDate(2010, 6, 17);
+ final LocalDate endDate = invoiceUtil.buildDate(2010, 7, 25);
+ final LocalDate targetDate = invoiceUtil.buildDate(2010, 7, 17);
final BigDecimal expectedValue = ONE.add(EIGHT.divide(THIRTY_ONE, NUMBER_OF_DECIMALS, ROUNDING_METHOD));
testCalculateNumberOfBillingCycles(startDate, endDate, targetDate, 17, expectedValue);
@@ -62,9 +64,9 @@ public class TestTrailingProRation extends ProRationInAdvanceTestBase {
@Test(groups = "fast")
public void testTargetDateInProRationPeriod() throws InvalidDateSequenceException {
- final LocalDate startDate = buildDate(2010, 6, 17);
- final LocalDate endDate = buildDate(2010, 7, 25);
- final LocalDate targetDate = buildDate(2010, 7, 18);
+ final LocalDate startDate = invoiceUtil.buildDate(2010, 6, 17);
+ final LocalDate endDate = invoiceUtil.buildDate(2010, 7, 25);
+ final LocalDate targetDate = invoiceUtil.buildDate(2010, 7, 18);
final BigDecimal expectedValue = ONE.add(EIGHT.divide(THIRTY_ONE, NUMBER_OF_DECIMALS, ROUNDING_METHOD));
testCalculateNumberOfBillingCycles(startDate, endDate, targetDate, 17, expectedValue);
@@ -72,8 +74,8 @@ public class TestTrailingProRation extends ProRationInAdvanceTestBase {
@Test(groups = "fast")
public void testTargetDateOnEndDate() throws InvalidDateSequenceException {
- final LocalDate startDate = buildDate(2010, 6, 17);
- final LocalDate endDate = buildDate(2010, 7, 25);
+ final LocalDate startDate = invoiceUtil.buildDate(2010, 6, 17);
+ final LocalDate endDate = invoiceUtil.buildDate(2010, 7, 25);
final BigDecimal expectedValue = ONE.add(EIGHT.divide(THIRTY_ONE, NUMBER_OF_DECIMALS, ROUNDING_METHOD));
testCalculateNumberOfBillingCycles(startDate, endDate, endDate, 17, expectedValue);
@@ -81,9 +83,9 @@ public class TestTrailingProRation extends ProRationInAdvanceTestBase {
@Test(groups = "fast")
public void testTargetDateAfterEndDate() throws InvalidDateSequenceException {
- final LocalDate startDate = buildDate(2010, 6, 17);
- final LocalDate endDate = buildDate(2010, 7, 25);
- final LocalDate targetDate = buildDate(2010, 7, 30);
+ final LocalDate startDate = invoiceUtil.buildDate(2010, 6, 17);
+ final LocalDate endDate = invoiceUtil.buildDate(2010, 7, 25);
+ final LocalDate targetDate = invoiceUtil.buildDate(2010, 7, 30);
final BigDecimal expectedValue = ONE.add(EIGHT.divide(THIRTY_ONE, NUMBER_OF_DECIMALS, ROUNDING_METHOD));
testCalculateNumberOfBillingCycles(startDate, endDate, targetDate, 17, expectedValue);
diff --git a/invoice/src/test/java/com/ning/billing/invoice/tests/inAdvance/ProRationInAdvanceTestBase.java b/invoice/src/test/java/com/ning/billing/invoice/tests/inAdvance/ProRationInAdvanceTestBase.java
index 9652fea..31e3e56 100644
--- a/invoice/src/test/java/com/ning/billing/invoice/tests/inAdvance/ProRationInAdvanceTestBase.java
+++ b/invoice/src/test/java/com/ning/billing/invoice/tests/inAdvance/ProRationInAdvanceTestBase.java
@@ -16,6 +16,8 @@
package com.ning.billing.invoice.tests.inAdvance;
+import static com.ning.billing.invoice.TestInvoiceUtil.*;
+
import com.ning.billing.invoice.model.BillingMode;
import com.ning.billing.invoice.model.InAdvanceBillingMode;
import com.ning.billing.invoice.tests.ProRationTestBase;
diff --git a/invoice/src/test/java/com/ning/billing/invoice/tests/inAdvance/quarterly/GenericProRationTests.java b/invoice/src/test/java/com/ning/billing/invoice/tests/inAdvance/quarterly/GenericProRationTests.java
index e2342cd..51f6408 100644
--- a/invoice/src/test/java/com/ning/billing/invoice/tests/inAdvance/quarterly/GenericProRationTests.java
+++ b/invoice/src/test/java/com/ning/billing/invoice/tests/inAdvance/quarterly/GenericProRationTests.java
@@ -16,6 +16,8 @@
package com.ning.billing.invoice.tests.inAdvance.quarterly;
+import static com.ning.billing.invoice.TestInvoiceUtil.*;
+
import java.math.BigDecimal;
import com.ning.billing.catalog.api.BillingPeriod;
diff --git a/invoice/src/test/java/com/ning/billing/invoice/tests/inAdvance/quarterly/TestDoubleProRation.java b/invoice/src/test/java/com/ning/billing/invoice/tests/inAdvance/quarterly/TestDoubleProRation.java
index df71741..7e624a8 100644
--- a/invoice/src/test/java/com/ning/billing/invoice/tests/inAdvance/quarterly/TestDoubleProRation.java
+++ b/invoice/src/test/java/com/ning/billing/invoice/tests/inAdvance/quarterly/TestDoubleProRation.java
@@ -16,6 +16,8 @@
package com.ning.billing.invoice.tests.inAdvance.quarterly;
+import static com.ning.billing.invoice.TestInvoiceUtil.*;
+
import java.math.BigDecimal;
import org.joda.time.LocalDate;
@@ -34,9 +36,9 @@ public class TestDoubleProRation extends ProRationInAdvanceTestBase {
@Test(groups = "fast")
public void testDoubleProRation_TargetDateOnStartDate() throws InvalidDateSequenceException {
- final LocalDate startDate = buildDate(2011, 1, 1);
- final LocalDate targetDate = buildDate(2011, 1, 1);
- final LocalDate endDate = buildDate(2011, 4, 27);
+ final LocalDate startDate = invoiceUtil.buildDate(2011, 1, 1);
+ final LocalDate targetDate = invoiceUtil.buildDate(2011, 1, 1);
+ final LocalDate endDate = invoiceUtil.buildDate(2011, 4, 27);
BigDecimal expectedValue = FOURTEEN.divide(NINETY_TWO, 2 * NUMBER_OF_DECIMALS, ROUNDING_METHOD);
expectedValue = expectedValue.setScale(NUMBER_OF_DECIMALS, ROUNDING_METHOD);
@@ -45,9 +47,9 @@ public class TestDoubleProRation extends ProRationInAdvanceTestBase {
@Test(groups = "fast")
public void testDoubleProRation_TargetDateInFirstProRationPeriod() throws InvalidDateSequenceException {
- final LocalDate startDate = buildDate(2011, 1, 1);
- final LocalDate targetDate = buildDate(2011, 1, 7);
- final LocalDate endDate = buildDate(2011, 4, 27);
+ final LocalDate startDate = invoiceUtil.buildDate(2011, 1, 1);
+ final LocalDate targetDate = invoiceUtil.buildDate(2011, 1, 7);
+ final LocalDate endDate = invoiceUtil.buildDate(2011, 4, 27);
BigDecimal expectedValue = FOURTEEN.divide(NINETY_TWO, 2 * NUMBER_OF_DECIMALS, ROUNDING_METHOD);
expectedValue = expectedValue.setScale(NUMBER_OF_DECIMALS, ROUNDING_METHOD);
@@ -56,9 +58,9 @@ public class TestDoubleProRation extends ProRationInAdvanceTestBase {
@Test(groups = "fast")
public void testDoubleProRation_TargetDateOnFirstBillingCycleDate() throws InvalidDateSequenceException {
- final LocalDate startDate = buildDate(2011, 1, 1);
- final LocalDate targetDate = buildDate(2011, 1, 15);
- final LocalDate endDate = buildDate(2011, 4, 27);
+ final LocalDate startDate = invoiceUtil.buildDate(2011, 1, 1);
+ final LocalDate targetDate = invoiceUtil.buildDate(2011, 1, 15);
+ final LocalDate endDate = invoiceUtil.buildDate(2011, 4, 27);
BigDecimal expectedValue = ONE.add(FOURTEEN.divide(NINETY_TWO, 2 * NUMBER_OF_DECIMALS, ROUNDING_METHOD));
expectedValue = expectedValue.setScale(NUMBER_OF_DECIMALS, ROUNDING_METHOD);
@@ -67,9 +69,9 @@ public class TestDoubleProRation extends ProRationInAdvanceTestBase {
@Test(groups = "fast")
public void testDoubleProRation_TargetDateInFullBillingPeriod() throws InvalidDateSequenceException {
- final LocalDate startDate = buildDate(2011, 1, 1);
- final LocalDate targetDate = buildDate(2011, 1, 22);
- final LocalDate endDate = buildDate(2011, 4, 27);
+ final LocalDate startDate = invoiceUtil.buildDate(2011, 1, 1);
+ final LocalDate targetDate = invoiceUtil.buildDate(2011, 1, 22);
+ final LocalDate endDate = invoiceUtil.buildDate(2011, 4, 27);
BigDecimal expectedValue;
expectedValue = FOURTEEN.divide(NINETY_TWO, 2 * NUMBER_OF_DECIMALS, ROUNDING_METHOD);
@@ -81,9 +83,9 @@ public class TestDoubleProRation extends ProRationInAdvanceTestBase {
@Test(groups = "fast")
public void testDoubleProRation_TargetDateOnSecondBillingCycleDate() throws InvalidDateSequenceException {
- final LocalDate startDate = buildDate(2011, 1, 1);
- final LocalDate targetDate = buildDate(2011, 4, 15);
- final LocalDate endDate = buildDate(2011, 4, 27);
+ final LocalDate startDate = invoiceUtil.buildDate(2011, 1, 1);
+ final LocalDate targetDate = invoiceUtil.buildDate(2011, 4, 15);
+ final LocalDate endDate = invoiceUtil.buildDate(2011, 4, 27);
BigDecimal expectedValue;
expectedValue = FOURTEEN.divide(NINETY_TWO, 2 * NUMBER_OF_DECIMALS, ROUNDING_METHOD);
@@ -96,9 +98,9 @@ public class TestDoubleProRation extends ProRationInAdvanceTestBase {
@Test(groups = "fast")
public void testDoubleProRation_TargetDateInSecondProRationPeriod() throws InvalidDateSequenceException {
- final LocalDate startDate = buildDate(2011, 1, 1);
- final LocalDate targetDate = buildDate(2011, 4, 26);
- final LocalDate endDate = buildDate(2011, 4, 27);
+ final LocalDate startDate = invoiceUtil.buildDate(2011, 1, 1);
+ final LocalDate targetDate = invoiceUtil.buildDate(2011, 4, 26);
+ final LocalDate endDate = invoiceUtil.buildDate(2011, 4, 27);
BigDecimal expectedValue;
expectedValue = FOURTEEN.divide(NINETY_TWO, 2 * NUMBER_OF_DECIMALS, ROUNDING_METHOD);
@@ -111,9 +113,9 @@ public class TestDoubleProRation extends ProRationInAdvanceTestBase {
@Test(groups = "fast")
public void testDoubleProRation_TargetDateOnEndDate() throws InvalidDateSequenceException {
- final LocalDate startDate = buildDate(2011, 1, 1);
- final LocalDate targetDate = buildDate(2011, 4, 27);
- final LocalDate endDate = buildDate(2011, 4, 27);
+ final LocalDate startDate = invoiceUtil.buildDate(2011, 1, 1);
+ final LocalDate targetDate = invoiceUtil.buildDate(2011, 4, 27);
+ final LocalDate endDate = invoiceUtil.buildDate(2011, 4, 27);
BigDecimal expectedValue;
expectedValue = FOURTEEN.divide(NINETY_TWO, 2 * NUMBER_OF_DECIMALS, ROUNDING_METHOD);
@@ -126,9 +128,9 @@ public class TestDoubleProRation extends ProRationInAdvanceTestBase {
@Test(groups = "fast")
public void testDoubleProRation_TargetDateAfterEndDate() throws InvalidDateSequenceException {
- final LocalDate startDate = buildDate(2011, 1, 1);
- final LocalDate targetDate = buildDate(2011, 5, 7);
- final LocalDate endDate = buildDate(2011, 4, 27);
+ final LocalDate startDate = invoiceUtil.buildDate(2011, 1, 1);
+ final LocalDate targetDate = invoiceUtil.buildDate(2011, 5, 7);
+ final LocalDate endDate = invoiceUtil.buildDate(2011, 4, 27);
BigDecimal expectedValue;
expectedValue = FOURTEEN.divide(NINETY_TWO, 2 * NUMBER_OF_DECIMALS, ROUNDING_METHOD);
@@ -141,9 +143,9 @@ public class TestDoubleProRation extends ProRationInAdvanceTestBase {
@Test(groups = "fast")
public void testDoubleProRationWithMultiplePeriods_TargetDateInSecondFullBillingPeriod() throws InvalidDateSequenceException {
- final LocalDate startDate = buildDate(2011, 1, 1);
- final LocalDate targetDate = buildDate(2011, 6, 26);
- final LocalDate endDate = buildDate(2011, 8, 27);
+ final LocalDate startDate = invoiceUtil.buildDate(2011, 1, 1);
+ final LocalDate targetDate = invoiceUtil.buildDate(2011, 6, 26);
+ final LocalDate endDate = invoiceUtil.buildDate(2011, 8, 27);
BigDecimal expectedValue;
expectedValue = FOURTEEN.divide(NINETY_TWO, 2 * NUMBER_OF_DECIMALS, ROUNDING_METHOD);
diff --git a/invoice/src/test/java/com/ning/billing/invoice/tests/inAdvance/quarterly/TestLeadingProRation.java b/invoice/src/test/java/com/ning/billing/invoice/tests/inAdvance/quarterly/TestLeadingProRation.java
index cd13b01..131cf25 100644
--- a/invoice/src/test/java/com/ning/billing/invoice/tests/inAdvance/quarterly/TestLeadingProRation.java
+++ b/invoice/src/test/java/com/ning/billing/invoice/tests/inAdvance/quarterly/TestLeadingProRation.java
@@ -16,6 +16,8 @@
package com.ning.billing.invoice.tests.inAdvance.quarterly;
+import static com.ning.billing.invoice.TestInvoiceUtil.*;
+
import java.math.BigDecimal;
import org.joda.time.LocalDate;
@@ -34,8 +36,8 @@ public class TestLeadingProRation extends ProRationInAdvanceTestBase {
@Test(groups = "fast")
public void testLeadingProRation_Evergreen_TargetDateOnStartDate() throws InvalidDateSequenceException {
- final LocalDate startDate = buildDate(2011, 2, 1);
- final LocalDate targetDate = buildDate(2011, 2, 1);
+ final LocalDate startDate = invoiceUtil.buildDate(2011, 2, 1);
+ final LocalDate targetDate = invoiceUtil.buildDate(2011, 2, 1);
final BigDecimal expectedValue;
expectedValue = TWELVE.divide(NINETY_TWO, NUMBER_OF_DECIMALS, ROUNDING_METHOD);
@@ -45,8 +47,8 @@ public class TestLeadingProRation extends ProRationInAdvanceTestBase {
@Test(groups = "fast")
public void testLeadingProRation_Evergreen_TargetDateInProRationPeriod() throws InvalidDateSequenceException {
- final LocalDate startDate = buildDate(2011, 2, 1);
- final LocalDate targetDate = buildDate(2011, 2, 4);
+ final LocalDate startDate = invoiceUtil.buildDate(2011, 2, 1);
+ final LocalDate targetDate = invoiceUtil.buildDate(2011, 2, 4);
final BigDecimal expectedValue;
expectedValue = TWELVE.divide(NINETY_TWO, NUMBER_OF_DECIMALS, ROUNDING_METHOD);
@@ -56,8 +58,8 @@ public class TestLeadingProRation extends ProRationInAdvanceTestBase {
@Test(groups = "fast")
public void testLeadingProRation_Evergreen_TargetDateOnFirstBillingDate() throws InvalidDateSequenceException {
- final LocalDate startDate = buildDate(2011, 2, 1);
- final LocalDate targetDate = buildDate(2011, 2, 13);
+ final LocalDate startDate = invoiceUtil.buildDate(2011, 2, 1);
+ final LocalDate targetDate = invoiceUtil.buildDate(2011, 2, 13);
final BigDecimal expectedValue;
expectedValue = TWELVE.divide(NINETY_TWO, NUMBER_OF_DECIMALS, ROUNDING_METHOD).add(ONE);
@@ -67,8 +69,8 @@ public class TestLeadingProRation extends ProRationInAdvanceTestBase {
@Test(groups = "fast")
public void testLeadingProRation_Evergreen_TargetDateAfterFirstBillingPeriod() throws InvalidDateSequenceException {
- final LocalDate startDate = buildDate(2011, 2, 1);
- final LocalDate targetDate = buildDate(2011, 6, 13);
+ final LocalDate startDate = invoiceUtil.buildDate(2011, 2, 1);
+ final LocalDate targetDate = invoiceUtil.buildDate(2011, 6, 13);
final BigDecimal expectedValue;
expectedValue = TWELVE.divide(NINETY_TWO, NUMBER_OF_DECIMALS, ROUNDING_METHOD).add(TWO);
@@ -78,9 +80,9 @@ public class TestLeadingProRation extends ProRationInAdvanceTestBase {
@Test(groups = "fast")
public void testLeadingProRation_WithEndDate_TargetDateOnStartDate() throws InvalidDateSequenceException {
- final LocalDate startDate = buildDate(2011, 2, 1);
- final LocalDate targetDate = buildDate(2011, 2, 1);
- final LocalDate endDate = buildDate(2011, 8, 13);
+ final LocalDate startDate = invoiceUtil.buildDate(2011, 2, 1);
+ final LocalDate targetDate = invoiceUtil.buildDate(2011, 2, 1);
+ final LocalDate endDate = invoiceUtil.buildDate(2011, 8, 13);
final BigDecimal expectedValue;
expectedValue = TWELVE.divide(NINETY_TWO, NUMBER_OF_DECIMALS, ROUNDING_METHOD);
@@ -90,9 +92,9 @@ public class TestLeadingProRation extends ProRationInAdvanceTestBase {
@Test(groups = "fast")
public void testLeadingProRation_WithEndDate_TargetDateInProRationPeriod() throws InvalidDateSequenceException {
- final LocalDate startDate = buildDate(2011, 2, 1);
- final LocalDate targetDate = buildDate(2011, 2, 4);
- final LocalDate endDate = buildDate(2011, 8, 13);
+ final LocalDate startDate = invoiceUtil.buildDate(2011, 2, 1);
+ final LocalDate targetDate = invoiceUtil.buildDate(2011, 2, 4);
+ final LocalDate endDate = invoiceUtil.buildDate(2011, 8, 13);
final BigDecimal expectedValue;
expectedValue = TWELVE.divide(NINETY_TWO, NUMBER_OF_DECIMALS, ROUNDING_METHOD);
@@ -102,9 +104,9 @@ public class TestLeadingProRation extends ProRationInAdvanceTestBase {
@Test(groups = "fast")
public void testLeadingProRation_WithEndDate_TargetDateOnFirstBillingDate() throws InvalidDateSequenceException {
- final LocalDate startDate = buildDate(2011, 2, 1);
- final LocalDate targetDate = buildDate(2011, 2, 13);
- final LocalDate endDate = buildDate(2011, 8, 13);
+ final LocalDate startDate = invoiceUtil.buildDate(2011, 2, 1);
+ final LocalDate targetDate = invoiceUtil.buildDate(2011, 2, 13);
+ final LocalDate endDate = invoiceUtil.buildDate(2011, 8, 13);
final BigDecimal expectedValue;
expectedValue = TWELVE.divide(NINETY_TWO, NUMBER_OF_DECIMALS, ROUNDING_METHOD).add(ONE);
@@ -114,9 +116,9 @@ public class TestLeadingProRation extends ProRationInAdvanceTestBase {
@Test(groups = "fast")
public void testLeadingProRation_WithEndDate_TargetDateInFinalBillingPeriod() throws InvalidDateSequenceException {
- final LocalDate startDate = buildDate(2011, 2, 1);
- final LocalDate targetDate = buildDate(2011, 8, 10);
- final LocalDate endDate = buildDate(2011, 8, 13);
+ final LocalDate startDate = invoiceUtil.buildDate(2011, 2, 1);
+ final LocalDate targetDate = invoiceUtil.buildDate(2011, 8, 10);
+ final LocalDate endDate = invoiceUtil.buildDate(2011, 8, 13);
final BigDecimal expectedValue;
expectedValue = TWELVE.divide(NINETY_TWO, NUMBER_OF_DECIMALS, ROUNDING_METHOD).add(TWO);
@@ -126,9 +128,9 @@ public class TestLeadingProRation extends ProRationInAdvanceTestBase {
@Test(groups = "fast")
public void testLeadingProRation_WithEndDate_TargetDateOnEndDate() throws InvalidDateSequenceException {
- final LocalDate startDate = buildDate(2011, 2, 1);
- final LocalDate targetDate = buildDate(2011, 8, 13);
- final LocalDate endDate = buildDate(2011, 8, 13);
+ final LocalDate startDate = invoiceUtil.buildDate(2011, 2, 1);
+ final LocalDate targetDate = invoiceUtil.buildDate(2011, 8, 13);
+ final LocalDate endDate = invoiceUtil.buildDate(2011, 8, 13);
final BigDecimal expectedValue;
expectedValue = TWELVE.divide(NINETY_TWO, NUMBER_OF_DECIMALS, ROUNDING_METHOD).add(TWO);
@@ -138,9 +140,9 @@ public class TestLeadingProRation extends ProRationInAdvanceTestBase {
@Test(groups = "fast")
public void testLeadingProRation_WithEndDate_TargetDateAfterEndDate() throws InvalidDateSequenceException {
- final LocalDate startDate = buildDate(2011, 2, 1);
- final LocalDate targetDate = buildDate(2011, 9, 10);
- final LocalDate endDate = buildDate(2011, 8, 13);
+ final LocalDate startDate = invoiceUtil.buildDate(2011, 2, 1);
+ final LocalDate targetDate = invoiceUtil.buildDate(2011, 9, 10);
+ final LocalDate endDate = invoiceUtil.buildDate(2011, 8, 13);
final BigDecimal expectedValue;
expectedValue = TWELVE.divide(NINETY_TWO, NUMBER_OF_DECIMALS, ROUNDING_METHOD).add(TWO);
diff --git a/invoice/src/test/java/com/ning/billing/invoice/tests/inAdvance/quarterly/TestProRation.java b/invoice/src/test/java/com/ning/billing/invoice/tests/inAdvance/quarterly/TestProRation.java
index a46c7a8..67db47e 100644
--- a/invoice/src/test/java/com/ning/billing/invoice/tests/inAdvance/quarterly/TestProRation.java
+++ b/invoice/src/test/java/com/ning/billing/invoice/tests/inAdvance/quarterly/TestProRation.java
@@ -16,6 +16,8 @@
package com.ning.billing.invoice.tests.inAdvance.quarterly;
+import static com.ning.billing.invoice.TestInvoiceUtil.*;
+
import java.math.BigDecimal;
import org.joda.time.LocalDate;
@@ -34,9 +36,9 @@ public class TestProRation extends ProRationInAdvanceTestBase {
@Test(groups = "fast")
public void testSinglePlan_WithPhaseChange() throws InvalidDateSequenceException {
- final LocalDate startDate = buildDate(2011, 2, 10);
- final LocalDate phaseChangeDate = buildDate(2011, 2, 24);
- final LocalDate targetDate = buildDate(2011, 3, 6);
+ final LocalDate startDate = invoiceUtil.buildDate(2011, 2, 10);
+ final LocalDate phaseChangeDate = invoiceUtil.buildDate(2011, 2, 24);
+ final LocalDate targetDate = invoiceUtil.buildDate(2011, 3, 6);
BigDecimal expectedValue;
expectedValue = FOURTEEN.divide(EIGHTY_NINE, NUMBER_OF_DECIMALS, ROUNDING_METHOD);
@@ -48,9 +50,9 @@ public class TestProRation extends ProRationInAdvanceTestBase {
@Test(groups = "fast")
public void testSinglePlan_WithPhaseChange_BeforeBillCycleDay() throws InvalidDateSequenceException {
- final LocalDate startDate = buildDate(2011, 2, 3);
- final LocalDate phaseChangeDate = buildDate(2011, 2, 17);
- final LocalDate targetDate = buildDate(2011, 3, 1);
+ final LocalDate startDate = invoiceUtil.buildDate(2011, 2, 3);
+ final LocalDate phaseChangeDate = invoiceUtil.buildDate(2011, 2, 17);
+ final LocalDate targetDate = invoiceUtil.buildDate(2011, 3, 1);
BigDecimal expectedValue;
expectedValue = FOURTEEN.divide(EIGHTY_NINE, NUMBER_OF_DECIMALS, ROUNDING_METHOD);
@@ -62,9 +64,9 @@ public class TestProRation extends ProRationInAdvanceTestBase {
@Test(groups = "fast")
public void testSinglePlan_WithPhaseChange_OnBillCycleDay() throws InvalidDateSequenceException {
- final LocalDate startDate = buildDate(2011, 2, 3);
- final LocalDate phaseChangeDate = buildDate(2011, 2, 17);
- final LocalDate targetDate = buildDate(2011, 3, 3);
+ final LocalDate startDate = invoiceUtil.buildDate(2011, 2, 3);
+ final LocalDate phaseChangeDate = invoiceUtil.buildDate(2011, 2, 17);
+ final LocalDate targetDate = invoiceUtil.buildDate(2011, 3, 3);
BigDecimal expectedValue;
expectedValue = FOURTEEN.divide(EIGHTY_NINE, NUMBER_OF_DECIMALS, ROUNDING_METHOD);
@@ -76,9 +78,9 @@ public class TestProRation extends ProRationInAdvanceTestBase {
@Test(groups = "fast")
public void testSinglePlan_WithPhaseChange_AfterBillCycleDay() throws InvalidDateSequenceException {
- final LocalDate startDate = buildDate(2011, 2, 3);
- final LocalDate phaseChangeDate = buildDate(2011, 2, 17);
- final LocalDate targetDate = buildDate(2011, 3, 4);
+ final LocalDate startDate = invoiceUtil.buildDate(2011, 2, 3);
+ final LocalDate phaseChangeDate = invoiceUtil.buildDate(2011, 2, 17);
+ final LocalDate targetDate = invoiceUtil.buildDate(2011, 3, 4);
BigDecimal expectedValue;
expectedValue = FOURTEEN.divide(EIGHTY_NINE, NUMBER_OF_DECIMALS, ROUNDING_METHOD);
@@ -90,9 +92,9 @@ public class TestProRation extends ProRationInAdvanceTestBase {
@Test(groups = "fast")
public void testPlanChange_WithChangeOfBillCycleDayToLaterDay() throws InvalidDateSequenceException {
- final LocalDate startDate = buildDate(2011, 2, 1);
- final LocalDate planChangeDate = buildDate(2011, 2, 15);
- final LocalDate targetDate = buildDate(2011, 3, 1);
+ final LocalDate startDate = invoiceUtil.buildDate(2011, 2, 1);
+ final LocalDate planChangeDate = invoiceUtil.buildDate(2011, 2, 15);
+ final LocalDate targetDate = invoiceUtil.buildDate(2011, 3, 1);
final BigDecimal expectedValue = FOURTEEN.divide(EIGHTY_NINE, NUMBER_OF_DECIMALS, ROUNDING_METHOD);
testCalculateNumberOfBillingCycles(startDate, planChangeDate, targetDate, 1, expectedValue);
@@ -101,9 +103,9 @@ public class TestProRation extends ProRationInAdvanceTestBase {
@Test(groups = "fast")
public void testPlanChange_WithChangeOfBillCycleDayToEarlierDay() throws InvalidDateSequenceException {
- final LocalDate startDate = buildDate(2011, 2, 20);
- final LocalDate planChangeDate = buildDate(2011, 3, 6);
- final LocalDate targetDate = buildDate(2011, 3, 9);
+ final LocalDate startDate = invoiceUtil.buildDate(2011, 2, 20);
+ final LocalDate planChangeDate = invoiceUtil.buildDate(2011, 3, 6);
+ final LocalDate targetDate = invoiceUtil.buildDate(2011, 3, 9);
final BigDecimal expectedValue = FOURTEEN.divide(EIGHTY_NINE, NUMBER_OF_DECIMALS, ROUNDING_METHOD);
testCalculateNumberOfBillingCycles(startDate, planChangeDate, targetDate, 20, expectedValue);
@@ -112,41 +114,41 @@ public class TestProRation extends ProRationInAdvanceTestBase {
@Test(groups = "fast")
public void testSinglePlan_CrossingYearBoundary() throws InvalidDateSequenceException {
- final LocalDate startDate = buildDate(2010, 12, 15);
- final LocalDate targetDate = buildDate(2011, 1, 16);
+ final LocalDate startDate = invoiceUtil.buildDate(2010, 12, 15);
+ final LocalDate targetDate = invoiceUtil.buildDate(2011, 1, 16);
testCalculateNumberOfBillingCycles(startDate, targetDate, 15, ONE);
}
@Test(groups = "fast")
public void testSinglePlan_LeapYear_StartingMidFebruary() throws InvalidDateSequenceException {
- final LocalDate startDate = buildDate(2012, 2, 15);
- final LocalDate targetDate = buildDate(2012, 3, 15);
+ final LocalDate startDate = invoiceUtil.buildDate(2012, 2, 15);
+ final LocalDate targetDate = invoiceUtil.buildDate(2012, 3, 15);
testCalculateNumberOfBillingCycles(startDate, targetDate, 15, ONE);
}
@Test(groups = "fast")
public void testSinglePlan_LeapYear_StartingBeforeFebruary() throws InvalidDateSequenceException {
- final LocalDate startDate = buildDate(2012, 1, 15);
- final LocalDate targetDate = buildDate(2012, 2, 3);
+ final LocalDate startDate = invoiceUtil.buildDate(2012, 1, 15);
+ final LocalDate targetDate = invoiceUtil.buildDate(2012, 2, 3);
testCalculateNumberOfBillingCycles(startDate, targetDate, 15, ONE);
}
@Test(groups = "fast")
public void testSinglePlan_LeapYear_IncludingAllOfFebruary() throws InvalidDateSequenceException {
- final LocalDate startDate = buildDate(2012, 1, 30);
- final LocalDate targetDate = buildDate(2012, 3, 1);
+ final LocalDate startDate = invoiceUtil.buildDate(2012, 1, 30);
+ final LocalDate targetDate = invoiceUtil.buildDate(2012, 3, 1);
testCalculateNumberOfBillingCycles(startDate, targetDate, 30, ONE);
}
@Test(groups = "fast")
public void testSinglePlan_ChangeBCDTo31() throws InvalidDateSequenceException {
- final LocalDate startDate = buildDate(2011, 2, 1);
- final LocalDate planChangeDate = buildDate(2011, 2, 14);
- final LocalDate targetDate = buildDate(2011, 3, 1);
+ final LocalDate startDate = invoiceUtil.buildDate(2011, 2, 1);
+ final LocalDate planChangeDate = invoiceUtil.buildDate(2011, 2, 14);
+ final LocalDate targetDate = invoiceUtil.buildDate(2011, 3, 1);
BigDecimal expectedValue;
@@ -159,9 +161,9 @@ public class TestProRation extends ProRationInAdvanceTestBase {
@Test(groups = "fast")
public void testSinglePlan_ChangeBCD() throws InvalidDateSequenceException {
- final LocalDate startDate = buildDate(2011, 2, 1);
- final LocalDate planChangeDate = buildDate(2011, 2, 14);
- final LocalDate targetDate = buildDate(2011, 5, 1);
+ final LocalDate startDate = invoiceUtil.buildDate(2011, 2, 1);
+ final LocalDate planChangeDate = invoiceUtil.buildDate(2011, 2, 14);
+ final LocalDate targetDate = invoiceUtil.buildDate(2011, 5, 1);
BigDecimal expectedValue;
@@ -174,9 +176,9 @@ public class TestProRation extends ProRationInAdvanceTestBase {
@Test(groups = "fast")
public void testSinglePlan_LeapYearFebruaryProRation() throws InvalidDateSequenceException {
- final LocalDate startDate = buildDate(2012, 2, 1);
- final LocalDate endDate = buildDate(2012, 2, 15);
- final LocalDate targetDate = buildDate(2012, 2, 19);
+ final LocalDate startDate = invoiceUtil.buildDate(2012, 2, 1);
+ final LocalDate endDate = invoiceUtil.buildDate(2012, 2, 15);
+ final LocalDate targetDate = invoiceUtil.buildDate(2012, 2, 19);
final BigDecimal expectedValue;
expectedValue = FOURTEEN.divide(NINETY, NUMBER_OF_DECIMALS, ROUNDING_METHOD);
@@ -186,9 +188,9 @@ public class TestProRation extends ProRationInAdvanceTestBase {
@Test(groups = "fast")
public void testPlanChange_BeforeBillingDay() throws InvalidDateSequenceException {
- final LocalDate startDate = buildDate(2011, 2, 7);
- final LocalDate changeDate = buildDate(2011, 2, 15);
- final LocalDate targetDate = buildDate(2011, 9, 21);
+ final LocalDate startDate = invoiceUtil.buildDate(2011, 2, 7);
+ final LocalDate changeDate = invoiceUtil.buildDate(2011, 2, 15);
+ final LocalDate targetDate = invoiceUtil.buildDate(2011, 9, 21);
final BigDecimal expectedValue;
@@ -200,9 +202,9 @@ public class TestProRation extends ProRationInAdvanceTestBase {
@Test(groups = "fast")
public void testPlanChange_OnBillingDay() throws InvalidDateSequenceException {
- final LocalDate startDate = buildDate(2011, 2, 7);
- final LocalDate changeDate = buildDate(2011, 5, 7);
- final LocalDate targetDate = buildDate(2011, 7, 21);
+ final LocalDate startDate = invoiceUtil.buildDate(2011, 2, 7);
+ final LocalDate changeDate = invoiceUtil.buildDate(2011, 5, 7);
+ final LocalDate targetDate = invoiceUtil.buildDate(2011, 7, 21);
testCalculateNumberOfBillingCycles(startDate, changeDate, targetDate, 7, ONE);
@@ -213,9 +215,9 @@ public class TestProRation extends ProRationInAdvanceTestBase {
@Test(groups = "fast")
public void testPlanChange_AfterBillingDay() throws InvalidDateSequenceException {
- final LocalDate startDate = buildDate(2011, 2, 7);
- final LocalDate changeDate = buildDate(2011, 5, 10);
- final LocalDate targetDate = buildDate(2011, 9, 21);
+ final LocalDate startDate = invoiceUtil.buildDate(2011, 2, 7);
+ final LocalDate changeDate = invoiceUtil.buildDate(2011, 5, 10);
+ final LocalDate targetDate = invoiceUtil.buildDate(2011, 9, 21);
BigDecimal expectedValue;
@@ -228,9 +230,9 @@ public class TestProRation extends ProRationInAdvanceTestBase {
@Test(groups = "fast")
public void testPlanChange_DoubleProRation() throws InvalidDateSequenceException {
- final LocalDate startDate = buildDate(2011, 1, 31);
- final LocalDate planChangeDate = buildDate(2011, 5, 10);
- final LocalDate targetDate = buildDate(2011, 5, 21);
+ final LocalDate startDate = invoiceUtil.buildDate(2011, 1, 31);
+ final LocalDate planChangeDate = invoiceUtil.buildDate(2011, 5, 10);
+ final LocalDate targetDate = invoiceUtil.buildDate(2011, 5, 21);
BigDecimal expectedValue;
expectedValue = SEVEN.divide(NINETY_TWO, NUMBER_OF_DECIMALS, ROUNDING_METHOD);
@@ -244,9 +246,9 @@ public class TestProRation extends ProRationInAdvanceTestBase {
@Test(groups = "fast")
public void testStartTargetEnd() throws InvalidDateSequenceException {
- final LocalDate startDate = buildDate(2010, 12, 15);
- final LocalDate targetDate = buildDate(2011, 6, 15);
- final LocalDate endDate = buildDate(2011, 6, 17);
+ final LocalDate startDate = invoiceUtil.buildDate(2010, 12, 15);
+ final LocalDate targetDate = invoiceUtil.buildDate(2011, 6, 15);
+ final LocalDate endDate = invoiceUtil.buildDate(2011, 6, 17);
final BigDecimal expectedValue = TWO.add(TWO.divide(NINETY_TWO, NUMBER_OF_DECIMALS, ROUNDING_METHOD));
testCalculateNumberOfBillingCycles(startDate, endDate, targetDate, 15, expectedValue);
diff --git a/invoice/src/test/java/com/ning/billing/invoice/tests/inAdvance/quarterly/TestTrailingProRation.java b/invoice/src/test/java/com/ning/billing/invoice/tests/inAdvance/quarterly/TestTrailingProRation.java
index 15a9b4c..31151bf 100644
--- a/invoice/src/test/java/com/ning/billing/invoice/tests/inAdvance/quarterly/TestTrailingProRation.java
+++ b/invoice/src/test/java/com/ning/billing/invoice/tests/inAdvance/quarterly/TestTrailingProRation.java
@@ -16,6 +16,8 @@
package com.ning.billing.invoice.tests.inAdvance.quarterly;
+import static com.ning.billing.invoice.TestInvoiceUtil.*;
+
import java.math.BigDecimal;
import org.joda.time.LocalDate;
@@ -34,27 +36,27 @@ public class TestTrailingProRation extends ProRationInAdvanceTestBase {
@Test(groups = "fast")
public void testTargetDateOnStartDate() throws InvalidDateSequenceException {
- final LocalDate startDate = buildDate(2010, 6, 17);
- final LocalDate endDate = buildDate(2010, 9, 25);
- final LocalDate targetDate = buildDate(2010, 6, 17);
+ final LocalDate startDate = invoiceUtil.buildDate(2010, 6, 17);
+ final LocalDate endDate = invoiceUtil.buildDate(2010, 9, 25);
+ final LocalDate targetDate = invoiceUtil.buildDate(2010, 6, 17);
testCalculateNumberOfBillingCycles(startDate, endDate, targetDate, 17, ONE);
}
@Test(groups = "fast")
public void testTargetDateInFirstBillingPeriod() throws InvalidDateSequenceException {
- final LocalDate startDate = buildDate(2010, 6, 17);
- final LocalDate endDate = buildDate(2010, 9, 25);
- final LocalDate targetDate = buildDate(2010, 6, 20);
+ final LocalDate startDate = invoiceUtil.buildDate(2010, 6, 17);
+ final LocalDate endDate = invoiceUtil.buildDate(2010, 9, 25);
+ final LocalDate targetDate = invoiceUtil.buildDate(2010, 6, 20);
testCalculateNumberOfBillingCycles(startDate, endDate, targetDate, 17, ONE);
}
@Test(groups = "fast")
public void testTargetDateAtEndOfFirstBillingCycle() throws InvalidDateSequenceException {
- final LocalDate startDate = buildDate(2010, 6, 17);
- final LocalDate endDate = buildDate(2010, 9, 25);
- final LocalDate targetDate = buildDate(2010, 9, 17);
+ final LocalDate startDate = invoiceUtil.buildDate(2010, 6, 17);
+ final LocalDate endDate = invoiceUtil.buildDate(2010, 9, 25);
+ final LocalDate targetDate = invoiceUtil.buildDate(2010, 9, 17);
final BigDecimal expectedValue = ONE.add(EIGHT.divide(NINETY_ONE, NUMBER_OF_DECIMALS, ROUNDING_METHOD));
testCalculateNumberOfBillingCycles(startDate, endDate, targetDate, 17, expectedValue);
@@ -62,9 +64,9 @@ public class TestTrailingProRation extends ProRationInAdvanceTestBase {
@Test(groups = "fast")
public void testTargetDateInProRationPeriod() throws InvalidDateSequenceException {
- final LocalDate startDate = buildDate(2010, 6, 17);
- final LocalDate endDate = buildDate(2010, 9, 25);
- final LocalDate targetDate = buildDate(2010, 9, 18);
+ final LocalDate startDate = invoiceUtil.buildDate(2010, 6, 17);
+ final LocalDate endDate = invoiceUtil.buildDate(2010, 9, 25);
+ final LocalDate targetDate = invoiceUtil.buildDate(2010, 9, 18);
final BigDecimal expectedValue = ONE.add(EIGHT.divide(NINETY_ONE, NUMBER_OF_DECIMALS, ROUNDING_METHOD));
testCalculateNumberOfBillingCycles(startDate, endDate, targetDate, 17, expectedValue);
@@ -72,8 +74,8 @@ public class TestTrailingProRation extends ProRationInAdvanceTestBase {
@Test(groups = "fast")
public void testTargetDateOnEndDate() throws InvalidDateSequenceException {
- final LocalDate startDate = buildDate(2010, 6, 17);
- final LocalDate endDate = buildDate(2010, 9, 25);
+ final LocalDate startDate = invoiceUtil.buildDate(2010, 6, 17);
+ final LocalDate endDate = invoiceUtil.buildDate(2010, 9, 25);
final BigDecimal expectedValue = ONE.add(EIGHT.divide(NINETY_ONE, NUMBER_OF_DECIMALS, ROUNDING_METHOD));
testCalculateNumberOfBillingCycles(startDate, endDate, endDate, 17, expectedValue);
@@ -81,9 +83,9 @@ public class TestTrailingProRation extends ProRationInAdvanceTestBase {
@Test(groups = "fast")
public void testTargetDateAfterEndDate() throws InvalidDateSequenceException {
- final LocalDate startDate = buildDate(2010, 6, 17);
- final LocalDate endDate = buildDate(2010, 9, 25);
- final LocalDate targetDate = buildDate(2010, 9, 30);
+ final LocalDate startDate = invoiceUtil.buildDate(2010, 6, 17);
+ final LocalDate endDate = invoiceUtil.buildDate(2010, 9, 25);
+ final LocalDate targetDate = invoiceUtil.buildDate(2010, 9, 30);
final BigDecimal expectedValue = ONE.add(EIGHT.divide(NINETY_ONE, NUMBER_OF_DECIMALS, ROUNDING_METHOD));
testCalculateNumberOfBillingCycles(startDate, endDate, targetDate, 17, expectedValue);
diff --git a/invoice/src/test/java/com/ning/billing/invoice/tests/inAdvance/TestValidationProRation.java b/invoice/src/test/java/com/ning/billing/invoice/tests/inAdvance/TestValidationProRation.java
index e6fb631..cc75729 100644
--- a/invoice/src/test/java/com/ning/billing/invoice/tests/inAdvance/TestValidationProRation.java
+++ b/invoice/src/test/java/com/ning/billing/invoice/tests/inAdvance/TestValidationProRation.java
@@ -16,6 +16,8 @@
package com.ning.billing.invoice.tests.inAdvance;
+import static com.ning.billing.invoice.TestInvoiceUtil.*;
+
import java.math.BigDecimal;
import org.joda.time.LocalDate;
@@ -43,44 +45,44 @@ public class TestValidationProRation extends ProRationTestBase {
@Test(groups = "fast", expectedExceptions = InvalidDateSequenceException.class)
public void testTargetStartEnd() throws InvalidDateSequenceException {
- final LocalDate startDate = buildDate(2011, 1, 30);
- final LocalDate endDate = buildDate(2011, 3, 15);
- final LocalDate targetDate = buildDate(2011, 1, 15);
+ final LocalDate startDate = invoiceUtil.buildDate(2011, 1, 30);
+ final LocalDate endDate = invoiceUtil.buildDate(2011, 3, 15);
+ final LocalDate targetDate = invoiceUtil.buildDate(2011, 1, 15);
calculateNumberOfBillingCycles(startDate, endDate, targetDate, 15);
}
@Test(groups = "fast", expectedExceptions = InvalidDateSequenceException.class)
public void testTargetEndStart() throws InvalidDateSequenceException {
- final LocalDate startDate = buildDate(2011, 4, 30);
- final LocalDate endDate = buildDate(2011, 3, 15);
- final LocalDate targetDate = buildDate(2011, 2, 15);
+ final LocalDate startDate = invoiceUtil.buildDate(2011, 4, 30);
+ final LocalDate endDate = invoiceUtil.buildDate(2011, 3, 15);
+ final LocalDate targetDate = invoiceUtil.buildDate(2011, 2, 15);
calculateNumberOfBillingCycles(startDate, endDate, targetDate, 15);
}
@Test(groups = "fast", expectedExceptions = InvalidDateSequenceException.class)
public void testEndTargetStart() throws InvalidDateSequenceException {
- final LocalDate startDate = buildDate(2011, 3, 30);
- final LocalDate endDate = buildDate(2011, 1, 15);
- final LocalDate targetDate = buildDate(2011, 2, 15);
+ final LocalDate startDate = invoiceUtil.buildDate(2011, 3, 30);
+ final LocalDate endDate = invoiceUtil.buildDate(2011, 1, 15);
+ final LocalDate targetDate = invoiceUtil.buildDate(2011, 2, 15);
calculateNumberOfBillingCycles(startDate, endDate, targetDate, 15);
}
@Test(groups = "fast", expectedExceptions = InvalidDateSequenceException.class)
public void testEndStartTarget() throws InvalidDateSequenceException {
- final LocalDate startDate = buildDate(2011, 1, 30);
- final LocalDate endDate = buildDate(2011, 1, 15);
- final LocalDate targetDate = buildDate(2011, 2, 15);
+ final LocalDate startDate = invoiceUtil.buildDate(2011, 1, 30);
+ final LocalDate endDate = invoiceUtil.buildDate(2011, 1, 15);
+ final LocalDate targetDate = invoiceUtil.buildDate(2011, 2, 15);
calculateNumberOfBillingCycles(startDate, endDate, targetDate, 15);
}
@Test(groups = "fast", expectedExceptions = InvalidDateSequenceException.class)
public void testTargetStart() throws InvalidDateSequenceException {
- final LocalDate startDate = buildDate(2011, 4, 30);
- final LocalDate targetDate = buildDate(2011, 2, 15);
+ final LocalDate startDate = invoiceUtil.buildDate(2011, 4, 30);
+ final LocalDate targetDate = invoiceUtil.buildDate(2011, 2, 15);
calculateNumberOfBillingCycles(startDate, targetDate, 15);
}
diff --git a/invoice/src/test/java/com/ning/billing/invoice/tests/ProRationTestBase.java b/invoice/src/test/java/com/ning/billing/invoice/tests/ProRationTestBase.java
index 676b612..dd270d8 100644
--- a/invoice/src/test/java/com/ning/billing/invoice/tests/ProRationTestBase.java
+++ b/invoice/src/test/java/com/ning/billing/invoice/tests/ProRationTestBase.java
@@ -16,12 +16,15 @@
package com.ning.billing.invoice.tests;
+import static com.ning.billing.invoice.TestInvoiceUtil.*;
+
import java.math.BigDecimal;
import java.util.List;
import org.joda.time.LocalDate;
import com.ning.billing.catalog.api.BillingPeriod;
+import com.ning.billing.invoice.InvoiceTestSuiteNoDB;
import com.ning.billing.invoice.model.BillingMode;
import com.ning.billing.invoice.model.InvalidDateSequenceException;
import com.ning.billing.invoice.model.RecurringInvoiceItemData;
@@ -29,7 +32,7 @@ import com.ning.billing.invoice.model.RecurringInvoiceItemData;
import static org.testng.Assert.assertEquals;
import static org.testng.Assert.fail;
-public abstract class ProRationTestBase extends InvoicingTestBase {
+public abstract class ProRationTestBase extends InvoiceTestSuiteNoDB {
protected abstract BillingMode getBillingMode();
diff --git a/invoice/src/test/java/com/ning/billing/invoice/tests/TestChargeBacks.java b/invoice/src/test/java/com/ning/billing/invoice/tests/TestChargeBacks.java
index 461a8d8..9fb553e 100644
--- a/invoice/src/test/java/com/ning/billing/invoice/tests/TestChargeBacks.java
+++ b/invoice/src/test/java/com/ning/billing/invoice/tests/TestChargeBacks.java
@@ -16,16 +16,11 @@
package com.ning.billing.invoice.tests;
-import java.io.IOException;
import java.math.BigDecimal;
-import java.net.URL;
import java.util.List;
import java.util.UUID;
-import org.mockito.Mockito;
-import org.skife.jdbi.v2.IDBI;
import org.skife.jdbi.v2.exceptions.TransactionFailedException;
-import org.testng.annotations.BeforeSuite;
import org.testng.annotations.Test;
import com.ning.billing.ErrorCode;
@@ -34,23 +29,6 @@ import com.ning.billing.invoice.InvoiceTestSuiteWithEmbeddedDB;
import com.ning.billing.invoice.api.Invoice;
import com.ning.billing.invoice.api.InvoiceApiException;
import com.ning.billing.invoice.api.InvoicePayment;
-import com.ning.billing.invoice.api.InvoicePaymentApi;
-import com.ning.billing.invoice.api.invoice.DefaultInvoicePaymentApi;
-import com.ning.billing.invoice.api.svcs.DefaultInvoiceInternalApi;
-import com.ning.billing.invoice.dao.DefaultInvoiceDao;
-import com.ning.billing.invoice.dao.InvoiceDao;
-import com.ning.billing.invoice.dao.InvoiceItemSqlDao;
-import com.ning.billing.invoice.glue.InvoiceModuleWithEmbeddedDb;
-import com.ning.billing.invoice.notification.MockNextBillingDatePoster;
-import com.ning.billing.invoice.notification.NextBillingDatePoster;
-import com.ning.billing.util.cache.CacheControllerDispatcher;
-import com.ning.billing.util.callcontext.InternalCallContextFactory;
-import com.ning.billing.util.clock.Clock;
-import com.ning.billing.util.clock.ClockMock;
-import com.ning.billing.util.dao.DefaultNonEntityDao;
-import com.ning.billing.util.dao.NonEntityDao;
-import com.ning.billing.util.svcapi.invoice.InvoiceInternalApi;
-import com.ning.billing.util.svcsapi.bus.InternalBus;
import static com.ning.billing.invoice.tests.InvoiceTestUtils.createAndPersistInvoice;
import static com.ning.billing.invoice.tests.InvoiceTestUtils.createAndPersistPayment;
@@ -64,48 +42,13 @@ public class TestChargeBacks extends InvoiceTestSuiteWithEmbeddedDB {
private static final BigDecimal FIFTEEN = new BigDecimal("15.00");
private static final BigDecimal THIRTY = new BigDecimal("30.00");
private static final BigDecimal ONE_MILLION = new BigDecimal("1000000.00");
- private InvoiceItemSqlDao invoiceItemSqlDao;
- private InvoicePaymentApi invoicePaymentApi;
- private InvoiceInternalApi invoiceApi;
- private InternalCallContextFactory internalCallContextFactory;
-
- private final Clock clock = new ClockMock();
- private final CacheControllerDispatcher controllerDispatcher = new CacheControllerDispatcher();
private static final Currency CURRENCY = Currency.EUR;
- @BeforeSuite(groups = "slow")
- public void setup() throws IOException {
- loadSystemPropertiesFromClasspath("/resource.properties");
-
- final IDBI dbi = getDBI();
-
- invoiceDao.test(internalCallContext);
-
- final NonEntityDao nonEntityDao = new DefaultNonEntityDao(dbi);
- invoiceItemSqlDao = dbi.onDemand(InvoiceItemSqlDao.class);
- invoiceItemSqlDao.test(internalCallContext);
- final NextBillingDatePoster nextBillingDatePoster = new MockNextBillingDatePoster();
- internalCallContextFactory = new InternalCallContextFactory(clock, nonEntityDao, controllerDispatcher);
- final InvoiceDao invoiceDao = new DefaultInvoiceDao(dbi, nextBillingDatePoster, Mockito.mock(InternalBus.class), clock, controllerDispatcher, nonEntityDao);
- invoicePaymentApi = new DefaultInvoicePaymentApi(invoiceDao, internalCallContextFactory);
- invoiceApi = new DefaultInvoiceInternalApi(invoiceDao);
- }
-
- private static void loadSystemPropertiesFromClasspath(final String resource) {
- final URL url = InvoiceModuleWithEmbeddedDb.class.getResource(resource);
- assertNotNull(url);
- try {
- System.getProperties().load(url.openStream());
- } catch (IOException e) {
- throw new RuntimeException(e);
- }
- }
-
@Test(groups = "slow")
public void testCompleteChargeBack() throws InvoiceApiException {
- final Invoice invoice = createAndPersistInvoice(invoiceDao, clock, THIRTY, CURRENCY, internalCallContext);
- final InvoicePayment payment = createAndPersistPayment(invoiceApi, clock, invoice.getId(), THIRTY, CURRENCY, internalCallContext);
+ final Invoice invoice = createAndPersistInvoice(invoiceDao, clock, THIRTY, CURRENCY, internalCallContext);
+ final InvoicePayment payment = createAndPersistPayment(invoiceInternalApi, clock, invoice.getId(), THIRTY, CURRENCY, internalCallContext);
// create a full charge back
invoicePaymentApi.createChargeback(payment.getId(), THIRTY, callContext);
@@ -117,8 +60,8 @@ public class TestChargeBacks extends InvoiceTestSuiteWithEmbeddedDB {
@Test(groups = "slow")
public void testPartialChargeBack() throws InvoiceApiException {
- final Invoice invoice = createAndPersistInvoice(invoiceDao, clock, THIRTY, CURRENCY, internalCallContext);
- final InvoicePayment payment = createAndPersistPayment(invoiceApi, clock, invoice.getId(), THIRTY, CURRENCY, internalCallContext);
+ final Invoice invoice = createAndPersistInvoice(invoiceDao, clock, THIRTY, CURRENCY, internalCallContext);
+ final InvoicePayment payment = createAndPersistPayment(invoiceInternalApi, clock, invoice.getId(), THIRTY, CURRENCY, internalCallContext);
// create a partial charge back
invoicePaymentApi.createChargeback(payment.getId(), FIFTEEN, callContext);
@@ -131,8 +74,8 @@ public class TestChargeBacks extends InvoiceTestSuiteWithEmbeddedDB {
@Test(groups = "slow", expectedExceptions = InvoiceApiException.class)
public void testChargeBackLargerThanPaymentAmount() throws InvoiceApiException {
try {
- final Invoice invoice = createAndPersistInvoice(invoiceDao, clock, THIRTY, CURRENCY, internalCallContext);
- final InvoicePayment payment = createAndPersistPayment(invoiceApi, clock, invoice.getId(), THIRTY, CURRENCY, internalCallContext);
+ final Invoice invoice = createAndPersistInvoice(invoiceDao, clock, THIRTY, CURRENCY, internalCallContext);
+ final InvoicePayment payment = createAndPersistPayment(invoiceInternalApi, clock, invoice.getId(), THIRTY, CURRENCY, internalCallContext);
// create a large charge back
invoicePaymentApi.createChargeback(payment.getId(), ONE_MILLION, callContext);
@@ -145,8 +88,8 @@ public class TestChargeBacks extends InvoiceTestSuiteWithEmbeddedDB {
@Test(groups = "slow", expectedExceptions = InvoiceApiException.class)
public void testNegativeChargeBackAmount() throws InvoiceApiException {
try {
- final Invoice invoice = createAndPersistInvoice(invoiceDao, clock, THIRTY, CURRENCY, internalCallContext);
- final InvoicePayment payment = createAndPersistPayment(invoiceApi, clock, invoice.getId(), THIRTY, CURRENCY, internalCallContext);
+ final Invoice invoice = createAndPersistInvoice(invoiceDao, clock, THIRTY, CURRENCY, internalCallContext);
+ final InvoicePayment payment = createAndPersistPayment(invoiceInternalApi, clock, invoice.getId(), THIRTY, CURRENCY, internalCallContext);
// create a partial charge back
invoicePaymentApi.createChargeback(payment.getId(), BigDecimal.ONE.negate(), callContext);
@@ -157,8 +100,8 @@ public class TestChargeBacks extends InvoiceTestSuiteWithEmbeddedDB {
@Test(groups = "slow")
public void testGetAccountIdFromPaymentIdHappyPath() throws InvoiceApiException {
- final Invoice invoice = createAndPersistInvoice(invoiceDao, clock, THIRTY, CURRENCY, internalCallContext);
- final InvoicePayment payment = createAndPersistPayment(invoiceApi, clock, invoice.getId(), THIRTY, CURRENCY, internalCallContext);
+ final Invoice invoice = createAndPersistInvoice(invoiceDao, clock, THIRTY, CURRENCY, internalCallContext);
+ final InvoicePayment payment = createAndPersistPayment(invoiceInternalApi, clock, invoice.getId(), THIRTY, CURRENCY, internalCallContext);
final UUID accountId = invoicePaymentApi.getAccountIdFromInvoicePaymentId(payment.getId(), callContext);
assertEquals(accountId, invoice.getAccountId());
}
@@ -183,8 +126,8 @@ public class TestChargeBacks extends InvoiceTestSuiteWithEmbeddedDB {
@Test(groups = "slow")
public void testGetChargeBacksByAccountIdHappyPath() throws InvoiceApiException {
- final Invoice invoice = createAndPersistInvoice(invoiceDao, clock, THIRTY, CURRENCY, internalCallContext);
- final InvoicePayment payment = createAndPersistPayment(invoiceApi, clock, invoice.getId(), THIRTY, CURRENCY, internalCallContext);
+ final Invoice invoice = createAndPersistInvoice(invoiceDao, clock, THIRTY, CURRENCY, internalCallContext);
+ final InvoicePayment payment = createAndPersistPayment(invoiceInternalApi, clock, invoice.getId(), THIRTY, CURRENCY, internalCallContext);
// create a partial charge back
invoicePaymentApi.createChargeback(payment.getId(), FIFTEEN, callContext);
@@ -204,8 +147,8 @@ public class TestChargeBacks extends InvoiceTestSuiteWithEmbeddedDB {
@Test(groups = "slow")
public void testGetChargeBacksByInvoicePaymentIdHappyPath() throws InvoiceApiException {
- final Invoice invoice = createAndPersistInvoice(invoiceDao, clock, THIRTY, CURRENCY, internalCallContext);
- final InvoicePayment payment = createAndPersistPayment(invoiceApi, clock, invoice.getId(), THIRTY, CURRENCY, internalCallContext);
+ final Invoice invoice = createAndPersistInvoice(invoiceDao, clock, THIRTY, CURRENCY, internalCallContext);
+ final InvoicePayment payment = createAndPersistPayment(invoiceInternalApi, clock, invoice.getId(), THIRTY, CURRENCY, internalCallContext);
// create a partial charge back
invoicePaymentApi.createChargeback(payment.getId(), FIFTEEN, callContext);