killbill-uncached
Changes
invoice/src/test/java/com/ning/billing/invoice/generator/TestDefaultInvoiceGenerator.java 40(+38 -2)
junction/src/main/java/com/ning/billing/junction/plumbing/billing/DefaultBillingEvent.java 13(+7 -6)
Details
diff --git a/api/src/main/java/com/ning/billing/entitlement/api/billing/BillingEvent.java b/api/src/main/java/com/ning/billing/entitlement/api/billing/BillingEvent.java
index 3c8e9d9..0b368c6 100644
--- a/api/src/main/java/com/ning/billing/entitlement/api/billing/BillingEvent.java
+++ b/api/src/main/java/com/ning/billing/entitlement/api/billing/BillingEvent.java
@@ -22,6 +22,7 @@ import org.joda.time.DateTime;
import org.joda.time.DateTimeZone;
import com.ning.billing.account.api.Account;
+import com.ning.billing.account.api.BillCycleDay;
import com.ning.billing.catalog.api.BillingPeriod;
import com.ning.billing.catalog.api.Currency;
import com.ning.billing.catalog.api.Plan;
@@ -41,7 +42,7 @@ public interface BillingEvent extends Comparable<BillingEvent> {
* <p/>
* Note: The billCycleDay may come from the Account, or the bundle or the subscription itself
*/
- public int getBillCycleDay();
+ public BillCycleDay getBillCycleDay();
/**
* @return the subscription
diff --git a/invoice/src/main/java/com/ning/billing/invoice/generator/DefaultInvoiceGenerator.java b/invoice/src/main/java/com/ning/billing/invoice/generator/DefaultInvoiceGenerator.java
index ae23bd9..26239bf 100644
--- a/invoice/src/main/java/com/ning/billing/invoice/generator/DefaultInvoiceGenerator.java
+++ b/invoice/src/main/java/com/ning/billing/invoice/generator/DefaultInvoiceGenerator.java
@@ -323,11 +323,11 @@ public class DefaultInvoiceGenerator implements InvoiceGenerator {
if (!startDate.isAfter(targetDate)) {
final LocalDate endDate = (nextEvent == null) ? null : new LocalDate(nextEvent.getEffectiveDate(), nextEvent.getTimeZone());
- final int billCycleDay = thisEvent.getBillCycleDay();
+ final int billCycleDayLocal = thisEvent.getBillCycleDay().getDayOfMonthLocal();
final List<RecurringInvoiceItemData> itemData;
try {
- itemData = billingMode.calculateInvoiceItemData(startDate, endDate, targetDate, accountTimeZone, billCycleDay, billingPeriod);
+ itemData = billingMode.calculateInvoiceItemData(startDate, endDate, targetDate, accountTimeZone, billCycleDayLocal, billingPeriod);
} catch (InvalidDateSequenceException e) {
throw new InvoiceApiException(ErrorCode.INVOICE_INVALID_DATE_SEQUENCE, startDate, endDate, targetDate);
}
diff --git a/invoice/src/main/java/com/ning/billing/invoice/model/InAdvanceBillingMode.java b/invoice/src/main/java/com/ning/billing/invoice/model/InAdvanceBillingMode.java
index dd5061b..3d773a8 100644
--- a/invoice/src/main/java/com/ning/billing/invoice/model/InAdvanceBillingMode.java
+++ b/invoice/src/main/java/com/ning/billing/invoice/model/InAdvanceBillingMode.java
@@ -37,9 +37,9 @@ public class InAdvanceBillingMode implements BillingMode {
@Override
public List<RecurringInvoiceItemData> calculateInvoiceItemData(final LocalDate startDate, final LocalDate endDate,
final LocalDate targetDate, final DateTimeZone accountTimeZone,
- final int billingCycleDay, final BillingPeriod billingPeriod) throws InvalidDateSequenceException {
+ final int billingCycleDayLocal, final BillingPeriod billingPeriod) throws InvalidDateSequenceException {
if (endDate == null) {
- return calculateInvoiceItemData(startDate, targetDate, accountTimeZone, billingCycleDay, billingPeriod);
+ return calculateInvoiceItemData(startDate, targetDate, accountTimeZone, billingCycleDayLocal, billingPeriod);
}
if (endDate.isBefore(startDate)) {
@@ -52,7 +52,7 @@ public class InAdvanceBillingMode implements BillingMode {
final List<RecurringInvoiceItemData> results = new ArrayList<RecurringInvoiceItemData>();
// beginning from the start date, find the first billing date
- final LocalDate firstBillingCycleDate = calculateBillingCycleDateOnOrAfter(startDate, accountTimeZone, billingCycleDay);
+ final LocalDate firstBillingCycleDate = calculateBillingCycleDateOnOrAfter(startDate, accountTimeZone, billingCycleDayLocal);
// add pro-ration item if needed
if (firstBillingCycleDate.isAfter(startDate)) {
@@ -64,7 +64,7 @@ public class InAdvanceBillingMode implements BillingMode {
// add one item per billing period
final LocalDate effectiveEndDate = calculateEffectiveEndDate(firstBillingCycleDate, targetDate, endDate, billingPeriod);
- final LocalDate lastBillingCycleDate = calculateLastBillingCycleDateBefore(effectiveEndDate, firstBillingCycleDate, billingCycleDay, billingPeriod);
+ final LocalDate lastBillingCycleDate = calculateLastBillingCycleDateBefore(effectiveEndDate, firstBillingCycleDate, billingCycleDayLocal, billingPeriod);
final int numberOfWholeBillingPeriods = calculateNumberOfWholeBillingPeriods(firstBillingCycleDate, lastBillingCycleDate, billingPeriod);
final int numberOfMonthsPerBillingPeriod = billingPeriod.getNumberOfMonths();
@@ -87,7 +87,7 @@ public class InAdvanceBillingMode implements BillingMode {
public List<RecurringInvoiceItemData> calculateInvoiceItemData(final LocalDate startDate,
final LocalDate targetDate,
final DateTimeZone accountTimeZone,
- final int billingCycleDay,
+ final int billingCycleDayLocal,
final BillingPeriod billingPeriod) throws InvalidDateSequenceException {
final List<RecurringInvoiceItemData> results = new ArrayList<RecurringInvoiceItemData>();
@@ -97,7 +97,7 @@ public class InAdvanceBillingMode implements BillingMode {
}
// beginning from the start date, find the first billing date
- final LocalDate firstBillingCycleDate = calculateBillingCycleDateOnOrAfter(startDate, accountTimeZone, billingCycleDay);
+ final LocalDate firstBillingCycleDate = calculateBillingCycleDateOnOrAfter(startDate, accountTimeZone, billingCycleDayLocal);
// add pro-ration item if needed
if (firstBillingCycleDate.isAfter(startDate)) {
@@ -109,7 +109,7 @@ public class InAdvanceBillingMode implements BillingMode {
// add one item per billing period
final LocalDate effectiveEndDate = calculateEffectiveEndDate(firstBillingCycleDate, targetDate, billingPeriod);
- final LocalDate lastBillingCycleDate = calculateLastBillingCycleDateBefore(effectiveEndDate, firstBillingCycleDate, billingCycleDay, billingPeriod);
+ final LocalDate lastBillingCycleDate = calculateLastBillingCycleDateBefore(effectiveEndDate, firstBillingCycleDate, billingCycleDayLocal, billingPeriod);
final int numberOfWholeBillingPeriods = calculateNumberOfWholeBillingPeriods(firstBillingCycleDate, lastBillingCycleDate, billingPeriod);
final int numberOfMonthsPerBillingPeriod = billingPeriod.getNumberOfMonths();
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 16d2441..6055978 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
@@ -159,6 +159,37 @@ public class TestDefaultInvoiceGenerator extends InvoicingTestBase {
}
@Test(groups = "fast")
+ public void testSimpleWithTimeZone() throws InvoiceApiException, CatalogApiException {
+ final UUID accountId = UUID.randomUUID();
+ final Subscription sub = createZombieSubscription();
+ final Plan plan = new MockPlan();
+ final BigDecimal rate = TEN;
+ final PlanPhase phase = createMockMonthlyPlanPhase(rate);
+
+ // 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 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 DateTimeZone accountTimeZone = DateTimeZone.forID("HST");
+ final Invoice invoice = generator.generateInvoice(accountId, events, null, targetDate, accountTimeZone, Currency.USD);
+
+ assertNotNull(invoice);
+ assertEquals(invoice.getNumberOfItems(), 2);
+ assertEquals(invoice.getInvoiceItems().get(0).getStartDate(), buildDate(2012, 7, 16));
+ // TODO should this be 2012-08-15?
+ 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));
+ }
+
+ @Test(groups = "fast")
public void testWithSingleMonthlyEventWithLeadingProRation() throws InvoiceApiException, CatalogApiException {
final BillingEventSet events = new MockBillingEventSet();
@@ -709,7 +740,12 @@ public class TestDefaultInvoiceGenerator extends InvoicingTestBase {
}
private BillingEvent createBillingEvent(final UUID subscriptionId, final LocalDate startDate,
- final Plan plan, final PlanPhase planPhase, final int billCycleDay) throws CatalogApiException {
+ final Plan plan, final PlanPhase planPhase, final int billCycleDayUTC) throws CatalogApiException {
+ return createBillingEvent(subscriptionId, startDate, plan, planPhase, billCycleDayUTC, billCycleDayUTC);
+ }
+
+ private BillingEvent createBillingEvent(final UUID subscriptionId, final LocalDate startDate,
+ final Plan plan, final PlanPhase planPhase, final int billCycleDayUTC, final int billCycleDayLocal) throws CatalogApiException {
final Subscription sub = createZombieSubscription(subscriptionId);
final Currency currency = Currency.USD;
@@ -717,7 +753,7 @@ public class TestDefaultInvoiceGenerator extends InvoicingTestBase {
planPhase.getFixedPrice() == null ? null : planPhase.getFixedPrice().getPrice(currency),
planPhase.getRecurringPrice() == null ? null : planPhase.getRecurringPrice().getPrice(currency),
currency, planPhase.getBillingPeriod(),
- billCycleDay, BillingModeType.IN_ADVANCE, "Test", 1L, SubscriptionTransitionType.CREATE);
+ billCycleDayUTC, billCycleDayLocal, BillingModeType.IN_ADVANCE, "Test", 1L, SubscriptionTransitionType.CREATE);
}
private void testInvoiceGeneration(final UUID accountId, final BillingEventSet events, final List<Invoice> existingInvoices,
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 30d602b..e9d3f46 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
@@ -76,4 +76,32 @@ public class TestInvoiceDateUtils {
final LocalDate to = InvoiceDateUtils.calculateBillingCycleDateOnOrAfter(from, DateTimeZone.UTC, 3);
Assert.assertEquals(to, new LocalDate("2012-04-03"));
}
+
+ @Test(groups = "fast")
+ public void testEffectiveEndDate() throws Exception {
+ final LocalDate firstBCD = new LocalDate(2012, 7, 16);
+ final LocalDate targetDate = new LocalDate(2012, 8, 16);
+ final BillingPeriod billingPeriod = BillingPeriod.MONTHLY;
+ final LocalDate effectiveEndDate = InvoiceDateUtils.calculateEffectiveEndDate(firstBCD, targetDate, billingPeriod);
+ // TODO should that be 2012-09-15?
+ Assert.assertEquals(effectiveEndDate, new LocalDate(2012, 9, 16));
+ }
+
+ @Test(groups = "fast")
+ public void testLastBCD() throws Exception {
+ final LocalDate firstBCD = new LocalDate(2012, 7, 16);
+ final LocalDate effectiveEndDate = new LocalDate(2012, 9, 15);
+ final BillingPeriod billingPeriod = BillingPeriod.MONTHLY;
+ final LocalDate lastBCD = InvoiceDateUtils.calculateLastBillingCycleDateBefore(effectiveEndDate, firstBCD, 16, billingPeriod);
+ Assert.assertEquals(lastBCD, new LocalDate(2012, 8, 16));
+ }
+
+ @Test(groups = "fast")
+ public void testCalculateNbOfBillingPeriods() throws Exception {
+ final LocalDate firstBCD = new LocalDate(2012, 7, 16);
+ final LocalDate lastBCD = new LocalDate(2012, 9, 16);
+ final BillingPeriod billingPeriod = BillingPeriod.MONTHLY;
+ final int numberOfWholeBillingPeriods = InvoiceDateUtils.calculateNumberOfWholeBillingPeriods(firstBCD, lastBCD, billingPeriod);
+ Assert.assertEquals(numberOfWholeBillingPeriods, 2);
+ }
}
diff --git a/invoice/src/test/java/com/ning/billing/invoice/tests/InvoicingTestBase.java b/invoice/src/test/java/com/ning/billing/invoice/tests/InvoicingTestBase.java
index a10d37d..69286f9 100644
--- a/invoice/src/test/java/com/ning/billing/invoice/tests/InvoicingTestBase.java
+++ b/invoice/src/test/java/com/ning/billing/invoice/tests/InvoicingTestBase.java
@@ -24,6 +24,7 @@ import org.joda.time.DateTimeZone;
import org.joda.time.LocalDate;
import com.ning.billing.account.api.Account;
+import com.ning.billing.account.api.BillCycleDay;
import com.ning.billing.catalog.api.BillingPeriod;
import com.ning.billing.catalog.api.Currency;
import com.ning.billing.catalog.api.Plan;
@@ -34,6 +35,7 @@ import com.ning.billing.entitlement.api.billing.BillingModeType;
import com.ning.billing.entitlement.api.user.Subscription;
import com.ning.billing.invoice.InvoiceTestSuiteWithEmbeddedDB;
import com.ning.billing.invoice.model.InvoicingConfiguration;
+import com.ning.billing.mock.api.MockBillCycleDay;
public abstract class InvoicingTestBase extends InvoiceTestSuiteWithEmbeddedDB {
protected static final int NUMBER_OF_DECIMALS = InvoicingConfiguration.getNumberOfDecimals();
@@ -90,7 +92,21 @@ public abstract class InvoicingTestBase extends InvoiceTestSuiteWithEmbeddedDB {
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 billCycleDay,
+ 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);
+ }
+
+ protected 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) {
@@ -101,8 +117,18 @@ public abstract class InvoicingTestBase extends InvoiceTestSuiteWithEmbeddedDB {
}
@Override
- public int getBillCycleDay() {
- return billCycleDay;
+ public BillCycleDay getBillCycleDay() {
+ return new BillCycleDay() {
+ @Override
+ public int getDayOfMonthUTC() {
+ return billCycleDayUTC;
+ }
+
+ @Override
+ public int getDayOfMonthLocal() {
+ return billCycleDayLocal;
+ }
+ };
}
@Override
diff --git a/junction/src/main/java/com/ning/billing/junction/plumbing/billing/BlockingCalculator.java b/junction/src/main/java/com/ning/billing/junction/plumbing/billing/BlockingCalculator.java
index 07c96b7..af3d412 100644
--- a/junction/src/main/java/com/ning/billing/junction/plumbing/billing/BlockingCalculator.java
+++ b/junction/src/main/java/com/ning/billing/junction/plumbing/billing/BlockingCalculator.java
@@ -30,6 +30,7 @@ import org.joda.time.DateTimeZone;
import com.google.inject.Inject;
import com.ning.billing.account.api.Account;
+import com.ning.billing.account.api.BillCycleDay;
import com.ning.billing.catalog.api.BillingPeriod;
import com.ning.billing.catalog.api.Currency;
import com.ning.billing.catalog.api.Plan;
@@ -191,7 +192,7 @@ public class BlockingCalculator {
protected BillingEvent createNewDisableEvent(final DateTime odEventTime, final BillingEvent previousEvent) {
final Account account = previousEvent.getAccount();
- final int billCycleDay = previousEvent.getBillCycleDay();
+ final BillCycleDay billCycleDay = previousEvent.getBillCycleDay();
final Subscription subscription = previousEvent.getSubscription();
final DateTime effectiveDate = odEventTime;
final PlanPhase planPhase = previousEvent.getPlanPhase();
@@ -214,7 +215,7 @@ public class BlockingCalculator {
protected BillingEvent createNewReenableEvent(final DateTime odEventTime, final BillingEvent previousEvent) {
final Account account = previousEvent.getAccount();
- final int billCycleDay = previousEvent.getBillCycleDay();
+ final BillCycleDay billCycleDay = previousEvent.getBillCycleDay();
final Subscription subscription = previousEvent.getSubscription();
final DateTime effectiveDate = odEventTime;
final PlanPhase planPhase = previousEvent.getPlanPhase();
diff --git a/junction/src/main/java/com/ning/billing/junction/plumbing/billing/DefaultBillingApi.java b/junction/src/main/java/com/ning/billing/junction/plumbing/billing/DefaultBillingApi.java
index 3c1cf31..f68ee1f 100644
--- a/junction/src/main/java/com/ning/billing/junction/plumbing/billing/DefaultBillingApi.java
+++ b/junction/src/main/java/com/ning/billing/junction/plumbing/billing/DefaultBillingApi.java
@@ -146,7 +146,7 @@ public class DefaultBillingApi implements BillingApi {
accountApi.updateAccount(account.getExternalKey(), modifiedData, context);
}
- final BillingEvent event = new DefaultBillingEvent(account, transition, subscription, bcd.getDayOfMonthUTC(), account.getCurrency(), catalogService.getFullCatalog());
+ final BillingEvent event = new DefaultBillingEvent(account, transition, subscription, bcd, account.getCurrency(), catalogService.getFullCatalog());
result.add(event);
} catch (CatalogApiException e) {
log.error("Failing to identify catalog components while creating BillingEvent from transition: " +
diff --git a/junction/src/main/java/com/ning/billing/junction/plumbing/billing/DefaultBillingEvent.java b/junction/src/main/java/com/ning/billing/junction/plumbing/billing/DefaultBillingEvent.java
index d35f4fe..13a28a0 100644
--- a/junction/src/main/java/com/ning/billing/junction/plumbing/billing/DefaultBillingEvent.java
+++ b/junction/src/main/java/com/ning/billing/junction/plumbing/billing/DefaultBillingEvent.java
@@ -22,6 +22,7 @@ import org.joda.time.DateTime;
import org.joda.time.DateTimeZone;
import com.ning.billing.account.api.Account;
+import com.ning.billing.account.api.BillCycleDay;
import com.ning.billing.catalog.api.BillingPeriod;
import com.ning.billing.catalog.api.Catalog;
import com.ning.billing.catalog.api.CatalogApiException;
@@ -36,7 +37,7 @@ import com.ning.billing.entitlement.api.user.Subscription;
public class DefaultBillingEvent implements BillingEvent {
private final Account account;
- private final int billCycleDay;
+ private final BillCycleDay billCycleDay;
private final Subscription subscription;
private final DateTime effectiveDate;
private final PlanPhase planPhase;
@@ -51,10 +52,10 @@ public class DefaultBillingEvent implements BillingEvent {
private final Long totalOrdering;
private final DateTimeZone timeZone;
- public DefaultBillingEvent(final Account account, final EffectiveSubscriptionEvent transition, final Subscription subscription, final int billCycleDayUTC, final Currency currency, final Catalog catalog) throws CatalogApiException {
+ public DefaultBillingEvent(final Account account, final EffectiveSubscriptionEvent transition, final Subscription subscription, final BillCycleDay billCycleDay, final Currency currency, final Catalog catalog) throws CatalogApiException {
this.account = account;
- this.billCycleDay = billCycleDayUTC;
+ this.billCycleDay = billCycleDay;
this.subscription = subscription;
effectiveDate = transition.getEffectiveTransitionTime();
final String planPhaseName = (transition.getTransitionType() != SubscriptionTransitionType.CANCEL) ?
@@ -87,7 +88,7 @@ public class DefaultBillingEvent implements BillingEvent {
public DefaultBillingEvent(final Account account, final Subscription subscription, final DateTime effectiveDate, final Plan plan, final PlanPhase planPhase,
final BigDecimal fixedPrice, final BigDecimal recurringPrice, final Currency currency,
- final BillingPeriod billingPeriod, final int billCycleDay, final BillingModeType billingModeType,
+ final BillingPeriod billingPeriod, final BillCycleDay billCycleDay, final BillingModeType billingModeType,
final String description, final long totalOrdering, final SubscriptionTransitionType type, final DateTimeZone timeZone) {
this.account = account;
this.subscription = subscription;
@@ -126,7 +127,7 @@ public class DefaultBillingEvent implements BillingEvent {
}
@Override
- public int getBillCycleDay() {
+ public BillCycleDay getBillCycleDay() {
return billCycleDay;
}
@@ -281,7 +282,7 @@ public class DefaultBillingEvent implements BillingEvent {
@Override
public int hashCode() {
- int result = billCycleDay;
+ int result = billCycleDay.hashCode();
result = 31 * result + subscription.hashCode();
result = 31 * result + effectiveDate.hashCode();
result = 31 * result + planPhase.hashCode();
diff --git a/junction/src/test/java/com/ning/billing/junction/plumbing/billing/TestBillingApi.java b/junction/src/test/java/com/ning/billing/junction/plumbing/billing/TestBillingApi.java
index 8a290d9..b3556a2 100644
--- a/junction/src/test/java/com/ning/billing/junction/plumbing/billing/TestBillingApi.java
+++ b/junction/src/test/java/com/ning/billing/junction/plumbing/billing/TestBillingApi.java
@@ -517,7 +517,7 @@ public class TestBillingApi extends JunctionTestSuite {
assertNull(event.getRecurringPrice());
}
- Assert.assertEquals(BCD, event.getBillCycleDay());
+ Assert.assertEquals(BCD, event.getBillCycleDay().getDayOfMonthUTC());
Assert.assertEquals(id, event.getSubscription().getId());
Assert.assertEquals(time.getDayOfMonth(), event.getEffectiveDate().getDayOfMonth());
Assert.assertEquals(nextPhase, event.getPlanPhase());
diff --git a/junction/src/test/java/com/ning/billing/junction/plumbing/billing/TestBlockingCalculator.java b/junction/src/test/java/com/ning/billing/junction/plumbing/billing/TestBlockingCalculator.java
index f17f681..e6dd137 100644
--- a/junction/src/test/java/com/ning/billing/junction/plumbing/billing/TestBlockingCalculator.java
+++ b/junction/src/test/java/com/ning/billing/junction/plumbing/billing/TestBlockingCalculator.java
@@ -35,6 +35,7 @@ import com.google.inject.AbstractModule;
import com.google.inject.Guice;
import com.google.inject.Injector;
import com.ning.billing.account.api.Account;
+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;
@@ -53,6 +54,7 @@ import com.ning.billing.junction.api.BlockingState;
import com.ning.billing.junction.api.DefaultBlockingState;
import com.ning.billing.junction.dao.BlockingStateDao;
import com.ning.billing.junction.plumbing.billing.BlockingCalculator.DisabledDuration;
+import com.ning.billing.mock.api.MockBillCycleDay;
import com.ning.billing.util.clock.Clock;
import com.ning.billing.util.clock.ClockMock;
@@ -532,7 +534,7 @@ public class TestBlockingCalculator extends JunctionTestSuite {
protected BillingEvent createRealEvent(final DateTime effectiveDate, final Subscription subscription) {
final Account account = this.account;
- final int billCycleDay = 1;
+ final BillCycleDay billCycleDay = new MockBillCycleDay(1);
final PlanPhase planPhase = new MockPlanPhase();
final Plan plan = new MockPlan();
final BigDecimal fixedPrice = BigDecimal.TEN;
@@ -615,7 +617,7 @@ public class TestBlockingCalculator extends JunctionTestSuite {
private class MockBillingEvent extends DefaultBillingEvent {
public MockBillingEvent() {
super(account, subscription1, clock.getUTCNow(), null, null, BigDecimal.ZERO, BigDecimal.TEN, Currency.USD, BillingPeriod.ANNUAL,
- 4, BillingModeType.IN_ADVANCE, "", 3L, SubscriptionTransitionType.CREATE, DateTimeZone.UTC);
+ new MockBillCycleDay(4), BillingModeType.IN_ADVANCE, "", 3L, SubscriptionTransitionType.CREATE, DateTimeZone.UTC);
}
}
diff --git a/junction/src/test/java/com/ning/billing/junction/plumbing/billing/TestDefaultBillingEvent.java b/junction/src/test/java/com/ning/billing/junction/plumbing/billing/TestDefaultBillingEvent.java
index 6f8ea89..b760d0b 100644
--- a/junction/src/test/java/com/ning/billing/junction/plumbing/billing/TestDefaultBillingEvent.java
+++ b/junction/src/test/java/com/ning/billing/junction/plumbing/billing/TestDefaultBillingEvent.java
@@ -43,6 +43,7 @@ import com.ning.billing.entitlement.api.billing.BillingEvent;
import com.ning.billing.entitlement.api.billing.BillingModeType;
import com.ning.billing.entitlement.api.user.Subscription;
import com.ning.billing.junction.JunctionTestSuite;
+import com.ning.billing.mock.api.MockBillCycleDay;
public class TestDefaultBillingEvent extends JunctionTestSuite {
public static final UUID ID_ZERO = new UUID(0L, 0L);
@@ -134,7 +135,7 @@ public class TestDefaultBillingEvent extends JunctionTestSuite {
return new DefaultBillingEvent(null, sub, effectiveDate,
shotgun, shotgunMonthly,
- BigDecimal.ZERO, null, Currency.USD, BillingPeriod.NO_BILLING_PERIOD, billCycleDay,
+ BigDecimal.ZERO, null, Currency.USD, BillingPeriod.NO_BILLING_PERIOD, new MockBillCycleDay(billCycleDay),
BillingModeType.IN_ADVANCE, "Test Event 1", totalOrdering, type, DateTimeZone.UTC);
}