killbill-memoizeit
Changes
beatrix/src/test/java/org/killbill/billing/beatrix/integration/overdue/TestOverdueIntegration.java 26(+13 -13)
overdue/src/main/java/org/killbill/billing/overdue/applicator/OverdueStateApplicator.java 29(+13 -16)
overdue/src/main/java/org/killbill/billing/overdue/notification/OverdueAsyncBusNotifier.java 4(+2 -2)
overdue/src/test/java/org/killbill/billing/overdue/applicator/TestOverdueStateApplicator.java 6(+3 -3)
Details
diff --git a/beatrix/src/test/java/org/killbill/billing/beatrix/integration/overdue/TestOverdueIntegration.java b/beatrix/src/test/java/org/killbill/billing/beatrix/integration/overdue/TestOverdueIntegration.java
index a01413c..2030886 100644
--- a/beatrix/src/test/java/org/killbill/billing/beatrix/integration/overdue/TestOverdueIntegration.java
+++ b/beatrix/src/test/java/org/killbill/billing/beatrix/integration/overdue/TestOverdueIntegration.java
@@ -610,8 +610,8 @@ public class TestOverdueIntegration extends TestOverdueBase {
// Should still be in clear state
checkODState(OverdueWrapper.CLEAR_STATE_NAME);
- // 2012-07-05 => DAY 65 - 35 days after invoice
- addDaysAndCheckForCompletion(20, NextEvent.BLOCK, NextEvent.INVOICE, NextEvent.INVOICE_PAYMENT_ERROR);
+ // 2012-06-30 => DAY 65 - 30 days after invoice
+ addDaysAndCheckForCompletion(15, NextEvent.BLOCK, NextEvent.INVOICE, NextEvent.INVOICE_PAYMENT_ERROR);
invoiceChecker.checkInvoice(account.getId(), 3, callContext, new ExpectedInvoiceItemCheck(new LocalDate(2012, 6, 30), new LocalDate(2012, 7, 31), InvoiceItemType.RECURRING, new BigDecimal("249.95")));
invoiceChecker.checkChargedThroughDate(baseEntitlement.getId(), new LocalDate(2012, 7, 31), callContext);
@@ -627,14 +627,14 @@ public class TestOverdueIntegration extends TestOverdueBase {
checkODState("OD1");
checkChangePlanWithOverdueState(baseEntitlement, true, true);
- // 2012-07-15 => DAY 75 - 45 days after invoice
+ // 2012-07-10 => DAY 75 - 40 days after invoice
addDaysAndCheckForCompletion(8, NextEvent.BLOCK, NextEvent.TAG);
// Should now be in OD2
checkODState("OD2");
checkChangePlanWithOverdueState(baseEntitlement, true, true);
- // 2012-07-25 => DAY 85 - 55 days after invoice
+ // 2012-07-20 => DAY 85 - 55 days after invoice
addDaysAndCheckForCompletion(10, NextEvent.BLOCK);
// Should now be in OD3
@@ -652,26 +652,26 @@ public class TestOverdueIntegration extends TestOverdueBase {
invoiceChecker.checkInvoice(account.getId(), 4, callContext,
// Item for the blocked period
- new ExpectedInvoiceItemCheck(new LocalDate(2012, 7, 15), new LocalDate(2012, 7, 25), InvoiceItemType.REPAIR_ADJ, new BigDecimal("-80.63")),
- new ExpectedInvoiceItemCheck(new LocalDate(2012, 7, 25), new LocalDate(2012, 7, 25), InvoiceItemType.CBA_ADJ, new BigDecimal("80.63")));
+ new ExpectedInvoiceItemCheck(new LocalDate(2012, 7, 10), new LocalDate(2012, 7, 20), InvoiceItemType.REPAIR_ADJ, new BigDecimal("-80.63")),
+ new ExpectedInvoiceItemCheck(new LocalDate(2012, 7, 20), new LocalDate(2012, 7, 20), InvoiceItemType.CBA_ADJ, new BigDecimal("80.63")));
invoiceChecker.checkChargedThroughDate(baseEntitlement.getId(), new LocalDate(2012, 7, 31), callContext);
- checkChangePlanWithOverdueState(baseEntitlement, false, false);
+ checkChangePlanWithOverdueState(baseEntitlement, false, true);
invoiceChecker.checkInvoice(account.getId(), 4, callContext,
// Item for the blocked period
- new ExpectedInvoiceItemCheck(new LocalDate(2012, 7, 15), new LocalDate(2012, 7, 25), InvoiceItemType.REPAIR_ADJ, new BigDecimal("-80.63")),
- new ExpectedInvoiceItemCheck(new LocalDate(2012, 7, 25), new LocalDate(2012, 7, 25), InvoiceItemType.CBA_ADJ, new BigDecimal("80.63")));
+ new ExpectedInvoiceItemCheck(new LocalDate(2012, 7, 10), new LocalDate(2012, 7, 20), InvoiceItemType.REPAIR_ADJ, new BigDecimal("-80.63")),
+ new ExpectedInvoiceItemCheck(new LocalDate(2012, 7, 20), new LocalDate(2012, 7, 20), InvoiceItemType.CBA_ADJ, new BigDecimal("80.63")));
invoiceChecker.checkInvoice(account.getId(), 5, callContext,
- new ExpectedInvoiceItemCheck(new LocalDate(2012, 7, 25), new LocalDate(2012, 7, 31), InvoiceItemType.RECURRING, new BigDecimal("116.12")),
- new ExpectedInvoiceItemCheck(new LocalDate(2012, 7, 25), new LocalDate(2012, 7, 31), InvoiceItemType.REPAIR_ADJ, new BigDecimal("-48.38")),
- new ExpectedInvoiceItemCheck(new LocalDate(2012, 7, 25), new LocalDate(2012, 7, 25), InvoiceItemType.CBA_ADJ, new BigDecimal("-67.74")));
+ new ExpectedInvoiceItemCheck(new LocalDate(2012, 7, 20), new LocalDate(2012, 7, 31), InvoiceItemType.RECURRING, new BigDecimal("212.89")),
+ new ExpectedInvoiceItemCheck(new LocalDate(2012, 7, 20), new LocalDate(2012, 7, 31), InvoiceItemType.REPAIR_ADJ, new BigDecimal("-88.69")),
+ new ExpectedInvoiceItemCheck(new LocalDate(2012, 7, 20), new LocalDate(2012, 7, 20), InvoiceItemType.CBA_ADJ, new BigDecimal("-80.63")));
invoiceChecker.checkChargedThroughDate(baseEntitlement.getId(), new LocalDate(2012, 7, 31), callContext);
- assertEquals(invoiceUserApi.getAccountBalance(account.getId(), callContext).compareTo(new BigDecimal("-12.89")), 0);
+ assertEquals(invoiceUserApi.getAccountBalance(account.getId(), callContext).compareTo(BigDecimal.ZERO), 0);
}
@Test(groups = "slow", description = "Test overdue for draft external charge")
diff --git a/overdue/src/main/java/org/killbill/billing/overdue/applicator/OverdueStateApplicator.java b/overdue/src/main/java/org/killbill/billing/overdue/applicator/OverdueStateApplicator.java
index 22d0865..cf2ea4f 100644
--- a/overdue/src/main/java/org/killbill/billing/overdue/applicator/OverdueStateApplicator.java
+++ b/overdue/src/main/java/org/killbill/billing/overdue/applicator/OverdueStateApplicator.java
@@ -86,7 +86,6 @@ public class OverdueStateApplicator {
private static final Logger log = LoggerFactory.getLogger(OverdueStateApplicator.class);
private final BlockingInternalApi blockingApi;
- private final Clock clock;
private final OverduePoster checkPoster;
private final PersistentBus bus;
private final AccountInternalApi accountApi;
@@ -102,7 +101,6 @@ public class OverdueStateApplicator {
final AccountInternalApi accountApi,
final EntitlementApi entitlementApi,
final EntitlementInternalApi entitlementInternalApi,
- final Clock clock,
@Named(DefaultOverdueModule.OVERDUE_NOTIFIER_CHECK_NAMED) final OverduePoster checkPoster,
final OverdueEmailGenerator overdueEmailGenerator,
final EmailConfig config,
@@ -114,7 +112,6 @@ public class OverdueStateApplicator {
this.accountApi = accountApi;
this.entitlementApi = entitlementApi;
this.entitlementInternalApi = entitlementInternalApi;
- this.clock = clock;
this.checkPoster = checkPoster;
this.overdueEmailGenerator = overdueEmailGenerator;
this.tagApi = tagApi;
@@ -123,7 +120,7 @@ public class OverdueStateApplicator {
this.bus = bus;
}
- public void apply(final OverdueStateSet overdueStateSet, final BillingState billingState,
+ public void apply(final DateTime effectiveDate, final OverdueStateSet overdueStateSet, final BillingState billingState,
final ImmutableAccountData account, final OverdueState previousOverdueState,
final OverdueState nextOverdueState, final InternalCallContext context) throws OverdueException, OverdueApiException {
try {
@@ -132,7 +129,7 @@ public class OverdueStateApplicator {
return;
}
- log.debug("OverdueStateApplicator: time={}, previousState={}, nextState={}, billingState={}", clock.getUTCNow(), previousOverdueState, nextOverdueState, billingState);
+ log.debug("OverdueStateApplicator: time={}, previousState={}, nextState={}, billingState={}", effectiveDate, previousOverdueState, nextOverdueState, billingState);
final OverdueState firstOverdueState = overdueStateSet.getFirstState();
final boolean conditionForNextNotfication = !nextOverdueState.isClearState() ||
@@ -145,8 +142,8 @@ public class OverdueStateApplicator {
if (reevaluationInterval == null) {
log.debug("OverdueStateApplicator <notificationQ>: missing InitialReevaluationInterval from config, NOT inserting notification for account {}", account.getId());
} else {
- log.debug("OverdueStateApplicator <notificationQ>: inserting notification for account={}, time={}", account.getId(), clock.getUTCNow().plus(reevaluationInterval));
- createFutureNotification(account, clock.getUTCNow().plus(reevaluationInterval), context);
+ log.debug("OverdueStateApplicator <notificationQ>: inserting notification for account={}, time={}", account.getId(), effectiveDate.plus(reevaluationInterval));
+ createFutureNotification(account, effectiveDate.plus(reevaluationInterval), context);
}
} else if (nextOverdueState.isClearState()) {
clearFutureNotification(account, context);
@@ -157,7 +154,7 @@ public class OverdueStateApplicator {
return;
}
- cancelSubscriptionsIfRequired(account, nextOverdueState, context);
+ cancelSubscriptionsIfRequired(effectiveDate, account, nextOverdueState, context);
sendEmailIfRequired(account.getId(), billingState, nextOverdueState, context);
@@ -166,7 +163,7 @@ public class OverdueStateApplicator {
// Make sure to store the new state last here: the entitlement DAO will send a BlockingTransitionInternalEvent
// on the bus to which invoice will react. We need the latest state (including AUTO_INVOICE_OFF tag for example)
// to be present in the database first.
- storeNewState(account, nextOverdueState, context);
+ storeNewState(effectiveDate, account, nextOverdueState, context);
} catch (final AccountApiException e) {
throw new OverdueException(e);
}
@@ -212,11 +209,11 @@ public class OverdueStateApplicator {
}
}
- public void clear(final ImmutableAccountData account, final OverdueState previousOverdueState, final OverdueState clearState, final InternalCallContext context) throws OverdueException {
+ public void clear(final DateTime effectiveDate, final ImmutableAccountData account, final OverdueState previousOverdueState, final OverdueState clearState, final InternalCallContext context) throws OverdueException {
- log.debug("OverdueStateApplicator:clear : time = " + clock.getUTCNow() + ", previousState = " + previousOverdueState.getName());
+ log.debug("OverdueStateApplicator:clear : time = " + effectiveDate + ", previousState = " + previousOverdueState.getName());
- storeNewState(account, clearState, context);
+ storeNewState(effectiveDate, account, clearState, context);
clearFutureNotification(account, context);
@@ -248,7 +245,7 @@ public class OverdueStateApplicator {
context.getAccountRecordId(), context.getTenantRecordId(), context.getUserToken());
}
- protected void storeNewState(final ImmutableAccountData blockable, final OverdueState nextOverdueState, final InternalCallContext context) throws OverdueException {
+ protected void storeNewState(final DateTime effectiveDate, final ImmutableAccountData blockable, final OverdueState nextOverdueState, final InternalCallContext context) throws OverdueException {
try {
blockingApi.setBlockingState(new DefaultBlockingState(blockable.getId(),
BlockingStateType.ACCOUNT,
@@ -257,7 +254,7 @@ public class OverdueStateApplicator {
blockChanges(nextOverdueState),
blockEntitlement(nextOverdueState),
blockBilling(nextOverdueState),
- clock.getUTCNow()),
+ effectiveDate),
context);
} catch (final Exception e) {
throw new OverdueException(e, ErrorCode.OVERDUE_CAT_ERROR_ENCOUNTERED, blockable.getId(), blockable.getClass().getName());
@@ -312,7 +309,7 @@ public class OverdueStateApplicator {
checkPoster.clearOverdueCheckNotifications(account.getId(), OverdueCheckNotifier.OVERDUE_CHECK_NOTIFIER_QUEUE, OverdueCheckNotificationKey.class, context);
}
- private void cancelSubscriptionsIfRequired(final ImmutableAccountData account, final OverdueState nextOverdueState, final InternalCallContext context) throws OverdueException {
+ private void cancelSubscriptionsIfRequired(final DateTime effectiveDate, final ImmutableAccountData account, final OverdueState nextOverdueState, final InternalCallContext context) throws OverdueException {
if (nextOverdueState.getOverdueCancellationPolicy() == OverdueCancellationPolicy.NONE) {
return;
}
@@ -334,7 +331,7 @@ public class OverdueStateApplicator {
computeEntitlementsToCancel(account, toBeCancelled, callContext);
try {
- entitlementInternalApi.cancel(toBeCancelled, clock.getToday(account.getTimeZone()), actionPolicy, ImmutableList.<PluginProperty>of(), context);
+ entitlementInternalApi.cancel(toBeCancelled, context.toLocalDate(effectiveDate), actionPolicy, ImmutableList.<PluginProperty>of(), context);
} catch (final EntitlementApiException e) {
throw new OverdueException(e);
}
diff --git a/overdue/src/main/java/org/killbill/billing/overdue/listener/OverdueDispatcher.java b/overdue/src/main/java/org/killbill/billing/overdue/listener/OverdueDispatcher.java
index c631b72..461539e 100644
--- a/overdue/src/main/java/org/killbill/billing/overdue/listener/OverdueDispatcher.java
+++ b/overdue/src/main/java/org/killbill/billing/overdue/listener/OverdueDispatcher.java
@@ -18,6 +18,7 @@ package org.killbill.billing.overdue.listener;
import java.util.UUID;
+import org.joda.time.DateTime;
import org.slf4j.Logger;
import org.slf4j.LoggerFactory;
@@ -38,25 +39,25 @@ public class OverdueDispatcher {
this.factory = factory;
}
- public void processOverdueForAccount(final UUID accountId, final InternalCallContext context) {
- processOverdue(accountId, context);
+ public void processOverdueForAccount(final UUID accountId, final DateTime effectiveDate, final InternalCallContext context) {
+ processOverdue(accountId, effectiveDate, context);
}
- public void clearOverdueForAccount(final UUID accountId, final InternalCallContext context) {
- clearOverdue(accountId, context);
+ public void clearOverdueForAccount(final UUID accountId, final DateTime effectiveDate, final InternalCallContext context) {
+ clearOverdue(accountId, effectiveDate, context);
}
- private void processOverdue(final UUID accountId, final InternalCallContext context) {
+ private void processOverdue(final UUID accountId, final DateTime effectiveDate, final InternalCallContext context) {
try {
- factory.createOverdueWrapperFor(accountId, context).refresh(context);
+ factory.createOverdueWrapperFor(accountId, context).refresh(effectiveDate, context);
} catch (BillingExceptionBase e) {
log.warn("Error processing Overdue for accountId='{}'", accountId, e);
}
}
- private void clearOverdue(final UUID accountId, final InternalCallContext context) {
+ private void clearOverdue(final UUID accountId, final DateTime effectiveDate, final InternalCallContext context) {
try {
- factory.createOverdueWrapperFor(accountId, context).clear(context);
+ factory.createOverdueWrapperFor(accountId, context).clear(effectiveDate, context);
} catch (BillingExceptionBase e) {
log.warn("Error processing Overdue for accountId='{}'", accountId, e);
}
diff --git a/overdue/src/main/java/org/killbill/billing/overdue/notification/OverdueAsyncBusNotifier.java b/overdue/src/main/java/org/killbill/billing/overdue/notification/OverdueAsyncBusNotifier.java
index be98671..4d90ec1 100644
--- a/overdue/src/main/java/org/killbill/billing/overdue/notification/OverdueAsyncBusNotifier.java
+++ b/overdue/src/main/java/org/killbill/billing/overdue/notification/OverdueAsyncBusNotifier.java
@@ -61,10 +61,10 @@ public class OverdueAsyncBusNotifier extends DefaultOverdueNotifierBase implemen
final OverdueAsyncBusNotificationKey key = (OverdueAsyncBusNotificationKey) notificationKey;
switch (key.getAction()) {
case CLEAR:
- dispatcher.clearOverdueForAccount(key.getUuidKey(), createCallContext(userToken, accountRecordId, tenantRecordId));
+ dispatcher.clearOverdueForAccount(key.getUuidKey(), eventDate, createCallContext(userToken, accountRecordId, tenantRecordId));
break;
case REFRESH:
- dispatcher.processOverdueForAccount(key.getUuidKey(), createCallContext(userToken, accountRecordId, tenantRecordId));
+ dispatcher.processOverdueForAccount(key.getUuidKey(), eventDate, createCallContext(userToken, accountRecordId, tenantRecordId));
break;
default:
throw new RuntimeException("Unexpected action " + key.getAction() + " for account " + key.getUuidKey());
diff --git a/overdue/src/main/java/org/killbill/billing/overdue/notification/OverdueCheckNotifier.java b/overdue/src/main/java/org/killbill/billing/overdue/notification/OverdueCheckNotifier.java
index bd644dd..6fdb77d 100644
--- a/overdue/src/main/java/org/killbill/billing/overdue/notification/OverdueCheckNotifier.java
+++ b/overdue/src/main/java/org/killbill/billing/overdue/notification/OverdueCheckNotifier.java
@@ -59,7 +59,7 @@ public class OverdueCheckNotifier extends DefaultOverdueNotifierBase implements
}
final OverdueCheckNotificationKey key = (OverdueCheckNotificationKey) notificationKey;
- dispatcher.processOverdueForAccount(key.getUuidKey(), createCallContext(userToken, accountRecordId, tenantRecordId));
+ dispatcher.processOverdueForAccount(key.getUuidKey(), eventDate, createCallContext(userToken, accountRecordId, tenantRecordId));
} catch (IllegalArgumentException e) {
log.error("The key returned from the NextBillingNotificationQueue is not a valid UUID", e);
}
diff --git a/overdue/src/main/java/org/killbill/billing/overdue/wrapper/OverdueWrapper.java b/overdue/src/main/java/org/killbill/billing/overdue/wrapper/OverdueWrapper.java
index 7743e65..163786d 100644
--- a/overdue/src/main/java/org/killbill/billing/overdue/wrapper/OverdueWrapper.java
+++ b/overdue/src/main/java/org/killbill/billing/overdue/wrapper/OverdueWrapper.java
@@ -18,6 +18,7 @@
package org.killbill.billing.overdue.wrapper;
+import org.joda.time.DateTime;
import org.killbill.billing.account.api.ImmutableAccountData;
import org.killbill.billing.callcontext.InternalCallContext;
import org.killbill.billing.callcontext.InternalTenantContext;
@@ -76,7 +77,7 @@ public class OverdueWrapper {
this.overdueStateApplicator = overdueStateApplicator;
}
- public OverdueState refresh(final InternalCallContext context) throws OverdueException, OverdueApiException {
+ public OverdueState refresh(final DateTime effectiveDate, final InternalCallContext context) throws OverdueException, OverdueApiException {
if (overdueStateSet.size() < 1) { // No configuration available
return overdueStateSet.getClearState();
}
@@ -85,7 +86,7 @@ public class OverdueWrapper {
try {
lock = locker.lockWithNumberOfTries(LockerType.ACCNT_INV_PAY.toString(), overdueable.getId().toString(), MAX_LOCK_RETRIES);
- return refreshWithLock(context);
+ return refreshWithLock(effectiveDate, context);
} catch (final LockFailedException e) {
log.warn("Failed to process overdue for accountId='{}'", overdueable.getId(), e);
} finally {
@@ -96,24 +97,24 @@ public class OverdueWrapper {
return null;
}
- private OverdueState refreshWithLock(final InternalCallContext context) throws OverdueException, OverdueApiException {
+ private OverdueState refreshWithLock(final DateTime effectiveDate, final InternalCallContext context) throws OverdueException, OverdueApiException {
final BillingState billingState = billingState(context);
final BlockingState blockingStateForService = api.getBlockingStateForService(overdueable.getId(), BlockingStateType.ACCOUNT, OverdueService.OVERDUE_SERVICE_NAME, context);
final String previousOverdueStateName = blockingStateForService != null ? blockingStateForService.getStateName() : OverdueWrapper.CLEAR_STATE_NAME;
final OverdueState currentOverdueState = overdueStateSet.findState(previousOverdueStateName);
final OverdueState nextOverdueState = overdueStateSet.calculateOverdueState(billingState, clock.getToday(billingState.getAccountTimeZone()));
- overdueStateApplicator.apply(overdueStateSet, billingState, overdueable, currentOverdueState, nextOverdueState, context);
+ overdueStateApplicator.apply(effectiveDate, overdueStateSet, billingState, overdueable, currentOverdueState, nextOverdueState, context);
return nextOverdueState;
}
- public void clear(final InternalCallContext context) throws OverdueException, OverdueApiException {
+ public void clear(final DateTime effectiveDate, final InternalCallContext context) throws OverdueException, OverdueApiException {
GlobalLock lock = null;
try {
lock = locker.lockWithNumberOfTries(LockerType.ACCNT_INV_PAY.toString(), overdueable.getId().toString(), MAX_LOCK_RETRIES);
- clearWithLock(context);
+ clearWithLock(effectiveDate, context);
} catch (final LockFailedException e) {
log.warn("Failed to clear overdue for accountId='{}'", overdueable.getId(), e);
} finally {
@@ -123,11 +124,11 @@ public class OverdueWrapper {
}
}
- private void clearWithLock(final InternalCallContext context) throws OverdueException, OverdueApiException {
+ private void clearWithLock(final DateTime effectiveDate, final InternalCallContext context) throws OverdueException, OverdueApiException {
final BlockingState blockingStateForService = api.getBlockingStateForService(overdueable.getId(), BlockingStateType.ACCOUNT, OverdueService.OVERDUE_SERVICE_NAME, context);
final String previousOverdueStateName = blockingStateForService != null ? blockingStateForService.getStateName() : OverdueWrapper.CLEAR_STATE_NAME;
final OverdueState previousOverdueState = overdueStateSet.findState(previousOverdueStateName);
- overdueStateApplicator.clear(overdueable, previousOverdueState, overdueStateSet.getClearState(), context);
+ overdueStateApplicator.clear(effectiveDate, overdueable, previousOverdueState, overdueStateSet.getClearState(), context);
}
public BillingState billingState(final InternalTenantContext context) throws OverdueException {
diff --git a/overdue/src/test/java/org/killbill/billing/overdue/applicator/TestOverdueStateApplicator.java b/overdue/src/test/java/org/killbill/billing/overdue/applicator/TestOverdueStateApplicator.java
index 2222377..42e70ce 100644
--- a/overdue/src/test/java/org/killbill/billing/overdue/applicator/TestOverdueStateApplicator.java
+++ b/overdue/src/test/java/org/killbill/billing/overdue/applicator/TestOverdueStateApplicator.java
@@ -54,17 +54,17 @@ public class TestOverdueStateApplicator extends OverdueTestSuiteWithEmbeddedDB {
OverdueState state;
state = config.getOverdueStatesAccount().findState("OD1");
- applicator.apply(overdueStateSet, null, account, clearState, state, internalCallContext);
+ applicator.apply(clock.getUTCNow(), overdueStateSet, null, account, clearState, state, internalCallContext);
testOverdueHelper.checkStateApplied(state);
checkBussEvent("OD1");
state = config.getOverdueStatesAccount().findState("OD2");
- applicator.apply(overdueStateSet, null, account, clearState, state, internalCallContext);
+ applicator.apply(clock.getUTCNow(), overdueStateSet, null, account, clearState, state, internalCallContext);
testOverdueHelper.checkStateApplied(state);
checkBussEvent("OD2");
state = config.getOverdueStatesAccount().findState("OD3");
- applicator.apply(overdueStateSet, null, account, clearState, state, internalCallContext);
+ applicator.apply(clock.getUTCNow(), overdueStateSet, null, account, clearState, state, internalCallContext);
testOverdueHelper.checkStateApplied(state);
checkBussEvent("OD3");
}
diff --git a/overdue/src/test/java/org/killbill/billing/overdue/notification/TestOverdueCheckNotifier.java b/overdue/src/test/java/org/killbill/billing/overdue/notification/TestOverdueCheckNotifier.java
index b9da2b6..ee470c5 100644
--- a/overdue/src/test/java/org/killbill/billing/overdue/notification/TestOverdueCheckNotifier.java
+++ b/overdue/src/test/java/org/killbill/billing/overdue/notification/TestOverdueCheckNotifier.java
@@ -53,7 +53,7 @@ public class TestOverdueCheckNotifier extends OverdueTestSuiteWithEmbeddedDB {
}
@Override
- public void processOverdueForAccount(final UUID accountId, final InternalCallContext context) {
+ public void processOverdueForAccount(final UUID accountId, final DateTime effectiveDate, final InternalCallContext context) {
eventCount++;
latestAccountId = accountId;
}
diff --git a/overdue/src/test/java/org/killbill/billing/overdue/wrapper/TestOverdueWrapper.java b/overdue/src/test/java/org/killbill/billing/overdue/wrapper/TestOverdueWrapper.java
index 2c22056..f495016 100644
--- a/overdue/src/test/java/org/killbill/billing/overdue/wrapper/TestOverdueWrapper.java
+++ b/overdue/src/test/java/org/killbill/billing/overdue/wrapper/TestOverdueWrapper.java
@@ -51,19 +51,19 @@ public class TestOverdueWrapper extends OverdueTestSuiteWithEmbeddedDB {
state = config.getOverdueStatesAccount().findState("OD1");
account = testOverdueHelper.createImmutableAccountData(clock.getUTCToday().minusDays(31));
wrapper = overdueWrapperFactory.createOverdueWrapperFor(account, internalCallContext);
- wrapper.refresh(internalCallContext);
+ wrapper.refresh(clock.getUTCNow(), internalCallContext);
testOverdueHelper.checkStateApplied(state);
state = config.getOverdueStatesAccount().findState("OD2");
account = testOverdueHelper.createImmutableAccountData(clock.getUTCToday().minusDays(41));
wrapper = overdueWrapperFactory.createOverdueWrapperFor(account, internalCallContext);
- wrapper.refresh(internalCallContext);
+ wrapper.refresh(clock.getUTCNow(), internalCallContext);
testOverdueHelper.checkStateApplied(state);
state = config.getOverdueStatesAccount().findState("OD3");
account = testOverdueHelper.createImmutableAccountData(clock.getUTCToday().minusDays(51));
wrapper = overdueWrapperFactory.createOverdueWrapperFor(account, internalCallContext);
- wrapper.refresh(internalCallContext);
+ wrapper.refresh(clock.getUTCNow(), internalCallContext);
testOverdueHelper.checkStateApplied(state);
}
@@ -79,7 +79,7 @@ public class TestOverdueWrapper extends OverdueTestSuiteWithEmbeddedDB {
state = config.getOverdueStatesAccount().findState(OverdueWrapper.CLEAR_STATE_NAME);
account = testOverdueHelper.createImmutableAccountData(clock.getUTCToday().minusDays(31));
wrapper = overdueWrapperFactory.createOverdueWrapperFor(account, internalCallContext);
- final OverdueState result = wrapper.refresh(internalCallContext);
+ final OverdueState result = wrapper.refresh(clock.getUTCNow(), internalCallContext);
Assert.assertEquals(result.getName(), state.getName());
Assert.assertEquals(result.isBlockChanges(), state.isBlockChanges());