killbill-aplcache
Changes
api/src/main/java/org/killbill/billing/subscription/api/migration/SubscriptionBaseMigrationApi.java 133(+0 -133)
subscription/src/main/java/org/killbill/billing/subscription/alignment/MigrationPlanAligner.java 211(+0 -211)
subscription/src/main/java/org/killbill/billing/subscription/alignment/TimedMigration.java 126(+0 -126)
subscription/src/main/java/org/killbill/billing/subscription/api/migration/DefaultSubscriptionBaseMigrationApi.java 287(+0 -287)
subscription/src/main/java/org/killbill/billing/subscription/api/transfer/BundleTransferData.java 33(+19 -14)
subscription/src/main/java/org/killbill/billing/subscription/api/transfer/DefaultSubscriptionBaseTransferApi.java 14(+6 -8)
subscription/src/main/java/org/killbill/billing/subscription/api/transfer/SubscriptionTransferData.java 79(+21 -58)
subscription/src/main/java/org/killbill/billing/subscription/engine/dao/DefaultSubscriptionDao.java 26(+5 -21)
subscription/src/main/java/org/killbill/billing/subscription/engine/dao/SubscriptionDao.java 7(+2 -5)
subscription/src/main/java/org/killbill/billing/subscription/glue/DefaultSubscriptionModule.java 11(+0 -11)
subscription/src/test/java/org/killbill/billing/subscription/alignment/TestTimedMigration.java 54(+0 -54)
subscription/src/test/java/org/killbill/billing/subscription/api/migration/TestMigration.java 303(+0 -303)
subscription/src/test/java/org/killbill/billing/subscription/api/transfer/TestTransfer.java 51(+0 -51)
subscription/src/test/java/org/killbill/billing/subscription/api/user/TestSubscriptionHelper.java 207(+0 -207)
subscription/src/test/java/org/killbill/billing/subscription/engine/dao/MockSubscriptionDaoMemory.java 30(+2 -28)
subscription/src/test/java/org/killbill/billing/subscription/SubscriptionTestSuiteNoDB.java 3(+0 -3)
Details
diff --git a/api/src/main/java/org/killbill/billing/glue/SubscriptionModule.java b/api/src/main/java/org/killbill/billing/glue/SubscriptionModule.java
index d561355..b970560 100644
--- a/api/src/main/java/org/killbill/billing/glue/SubscriptionModule.java
+++ b/api/src/main/java/org/killbill/billing/glue/SubscriptionModule.java
@@ -22,8 +22,6 @@ public interface SubscriptionModule {
public void installSubscriptionTransferApi();
- public void installSubscriptionMigrationApi();
-
public void installSubscriptionInternalApi();
public void installSubscriptionTimelineApi();
diff --git a/subscription/src/main/java/org/killbill/billing/subscription/api/transfer/DefaultSubscriptionBaseTransferApi.java b/subscription/src/main/java/org/killbill/billing/subscription/api/transfer/DefaultSubscriptionBaseTransferApi.java
index 49c3ca6..2a81343 100644
--- a/subscription/src/main/java/org/killbill/billing/subscription/api/transfer/DefaultSubscriptionBaseTransferApi.java
+++ b/subscription/src/main/java/org/killbill/billing/subscription/api/transfer/DefaultSubscriptionBaseTransferApi.java
@@ -37,8 +37,6 @@ import org.killbill.clock.Clock;
import org.killbill.billing.entitlement.api.Entitlement.EntitlementState;
import org.killbill.billing.subscription.api.SubscriptionApiBase;
import org.killbill.billing.subscription.api.SubscriptionBaseApiService;
-import org.killbill.billing.subscription.api.migration.AccountMigrationData.BundleMigrationData;
-import org.killbill.billing.subscription.api.migration.AccountMigrationData.SubscriptionMigrationData;
import org.killbill.billing.subscription.api.svcs.DefaultSubscriptionInternalApi;
import org.killbill.billing.subscription.api.timeline.BundleBaseTimeline;
import org.killbill.billing.subscription.api.timeline.SubscriptionBaseRepairException;
@@ -213,7 +211,7 @@ public class DefaultSubscriptionBaseTransferApi extends SubscriptionApiBase impl
final DefaultSubscriptionBaseBundle subscriptionBundleData = new DefaultSubscriptionBaseBundle(bundleKey, destAccountId, effectiveTransferDate,
bundle.getOriginalCreatedDate(), clock.getUTCNow(), clock.getUTCNow());
- final List<SubscriptionMigrationData> subscriptionMigrationDataList = new LinkedList<SubscriptionMigrationData>();
+ final List<SubscriptionTransferData> subscriptionTransferDataList = new LinkedList<SubscriptionTransferData>();
final List<TransferCancelData> transferCancelDataList = new LinkedList<TransferCancelData>();
@@ -266,15 +264,15 @@ public class DefaultSubscriptionBaseTransferApi extends SubscriptionApiBase impl
ImmutableList.<SubscriptionBaseEvent>of(), fromInternalCallContext);
final List<SubscriptionBaseEvent> events = toEvents(existingEvents, defaultSubscriptionBase, effectiveTransferDate, fromInternalCallContext);
- final SubscriptionMigrationData curData = new SubscriptionMigrationData(defaultSubscriptionBase, events, null);
- subscriptionMigrationDataList.add(curData);
+ final SubscriptionTransferData curData = new SubscriptionTransferData(defaultSubscriptionBase, events, null);
+ subscriptionTransferDataList.add(curData);
}
- BundleMigrationData bundleMigrationData = new BundleMigrationData(subscriptionBundleData, subscriptionMigrationDataList);
+ BundleTransferData bundleTransferData = new BundleTransferData(subscriptionBundleData, subscriptionTransferDataList);
// Atomically cancelWithRequestedDate all subscription on old account and create new bundle, subscriptions, events for new account
- dao.transfer(sourceAccountId, destAccountId, bundleMigrationData, transferCancelDataList, fromInternalCallContext, toInternalCallContext);
+ dao.transfer(sourceAccountId, destAccountId, bundleTransferData, transferCancelDataList, fromInternalCallContext, toInternalCallContext);
- return bundleMigrationData.getData();
+ return bundleTransferData.getData();
} catch (SubscriptionBaseRepairException e) {
throw new SubscriptionBaseTransferApiException(e);
} catch (CatalogApiException e) {
diff --git a/subscription/src/main/java/org/killbill/billing/subscription/engine/dao/DefaultSubscriptionDao.java b/subscription/src/main/java/org/killbill/billing/subscription/engine/dao/DefaultSubscriptionDao.java
index 16e6090..053af0d 100644
--- a/subscription/src/main/java/org/killbill/billing/subscription/engine/dao/DefaultSubscriptionDao.java
+++ b/subscription/src/main/java/org/killbill/billing/subscription/engine/dao/DefaultSubscriptionDao.java
@@ -47,9 +47,8 @@ import org.killbill.billing.entitlement.api.SubscriptionApiException;
import org.killbill.billing.entity.EntityPersistenceException;
import org.killbill.billing.subscription.api.SubscriptionBase;
import org.killbill.billing.subscription.api.SubscriptionBaseTransitionType;
-import org.killbill.billing.subscription.api.migration.AccountMigrationData;
-import org.killbill.billing.subscription.api.migration.AccountMigrationData.BundleMigrationData;
-import org.killbill.billing.subscription.api.migration.AccountMigrationData.SubscriptionMigrationData;
+import org.killbill.billing.subscription.api.transfer.BundleTransferData;
+import org.killbill.billing.subscription.api.transfer.SubscriptionTransferData;
import org.killbill.billing.subscription.api.transfer.TransferCancelData;
import org.killbill.billing.subscription.api.user.DefaultEffectiveSubscriptionEvent;
import org.killbill.billing.subscription.api.user.DefaultRequestedSubscriptionEvent;
@@ -994,22 +993,7 @@ public class DefaultSubscriptionDao extends EntityDaoBase<SubscriptionBundleMode
}
@Override
- public void migrate(final UUID accountId, final AccountMigrationData accountData, final InternalCallContext context) {
- transactionalSqlDao.execute(new EntitySqlDaoTransactionWrapper<Void>() {
- @Override
- public Void inTransaction(final EntitySqlDaoWrapperFactory entitySqlDaoWrapperFactory) throws Exception {
- final SubscriptionEventSqlDao transactional = entitySqlDaoWrapperFactory.become(SubscriptionEventSqlDao.class);
-
- for (final BundleMigrationData curBundle : accountData.getData()) {
- migrateBundleDataFromTransaction(curBundle, transactional, entitySqlDaoWrapperFactory, context);
- }
- return null;
- }
- });
- }
-
- @Override
- public void transfer(final UUID srcAccountId, final UUID destAccountId, final BundleMigrationData bundleTransferData,
+ public void transfer(final UUID srcAccountId, final UUID destAccountId, final BundleTransferData bundleTransferData,
final List<TransferCancelData> transferCancelData, final InternalCallContext fromContext, final InternalCallContext toContext) {
transactionalSqlDao.execute(new EntitySqlDaoTransactionWrapper<Void>() {
@@ -1124,7 +1108,7 @@ public class DefaultSubscriptionDao extends EntityDaoBase<SubscriptionBundleMode
}
}
- private void migrateBundleDataFromTransaction(final BundleMigrationData bundleTransferData, final SubscriptionEventSqlDao transactional,
+ private void migrateBundleDataFromTransaction(final BundleTransferData bundleTransferData, final SubscriptionEventSqlDao transactional,
final EntitySqlDaoWrapperFactory entitySqlDaoWrapperFactory, final InternalCallContext context) throws EntityPersistenceException {
final SubscriptionSqlDao transSubDao = entitySqlDaoWrapperFactory.become(SubscriptionSqlDao.class);
@@ -1138,7 +1122,7 @@ public class DefaultSubscriptionDao extends EntityDaoBase<SubscriptionBundleMode
return;
}
- for (final SubscriptionMigrationData curSubscription : bundleTransferData.getSubscriptions()) {
+ for (final SubscriptionTransferData curSubscription : bundleTransferData.getSubscriptions()) {
final DefaultSubscriptionBase subData = curSubscription.getData();
for (final SubscriptionBaseEvent curEvent : curSubscription.getInitialEvents()) {
transactional.create(new SubscriptionEventModelDao(curEvent), context);
diff --git a/subscription/src/main/java/org/killbill/billing/subscription/engine/dao/SubscriptionDao.java b/subscription/src/main/java/org/killbill/billing/subscription/engine/dao/SubscriptionDao.java
index 487fae3..66bd30e 100644
--- a/subscription/src/main/java/org/killbill/billing/subscription/engine/dao/SubscriptionDao.java
+++ b/subscription/src/main/java/org/killbill/billing/subscription/engine/dao/SubscriptionDao.java
@@ -25,8 +25,7 @@ import org.killbill.billing.callcontext.InternalTenantContext;
import org.killbill.billing.catalog.api.CatalogApiException;
import org.killbill.billing.entitlement.api.SubscriptionApiException;
import org.killbill.billing.subscription.api.SubscriptionBase;
-import org.killbill.billing.subscription.api.migration.AccountMigrationData;
-import org.killbill.billing.subscription.api.migration.AccountMigrationData.BundleMigrationData;
+import org.killbill.billing.subscription.api.transfer.BundleTransferData;
import org.killbill.billing.subscription.api.transfer.TransferCancelData;
import org.killbill.billing.subscription.api.user.DefaultSubscriptionBase;
import org.killbill.billing.subscription.api.user.DefaultSubscriptionBaseBundle;
@@ -94,9 +93,7 @@ public interface SubscriptionDao extends EntityDao<SubscriptionBundleModelDao, S
public void changePlan(DefaultSubscriptionBase subscription, List<SubscriptionBaseEvent> changeEvents, List<DefaultSubscriptionBase> subscriptionsToBeCancelled, List<SubscriptionBaseEvent> cancelEvents, InternalCallContext context);
- public void migrate(UUID accountId, AccountMigrationData data, InternalCallContext context);
-
- public void transfer(UUID srcAccountId, UUID destAccountId, BundleMigrationData data, List<TransferCancelData> transferCancelData, InternalCallContext fromContext, InternalCallContext toContext);
+ public void transfer(UUID srcAccountId, UUID destAccountId, BundleTransferData data, List<TransferCancelData> transferCancelData, InternalCallContext fromContext, InternalCallContext toContext);
public void updateBundleExternalKey(UUID bundleId, String externalKey, InternalCallContext context);
diff --git a/subscription/src/main/java/org/killbill/billing/subscription/glue/DefaultSubscriptionModule.java b/subscription/src/main/java/org/killbill/billing/subscription/glue/DefaultSubscriptionModule.java
index e0ba5ab..f5ac919 100644
--- a/subscription/src/main/java/org/killbill/billing/subscription/glue/DefaultSubscriptionModule.java
+++ b/subscription/src/main/java/org/killbill/billing/subscription/glue/DefaultSubscriptionModule.java
@@ -20,13 +20,10 @@ package org.killbill.billing.subscription.glue;
import org.killbill.billing.glue.SubscriptionModule;
import org.killbill.billing.platform.api.KillbillConfigSource;
-import org.killbill.billing.subscription.alignment.MigrationPlanAligner;
import org.killbill.billing.subscription.alignment.PlanAligner;
import org.killbill.billing.subscription.api.SubscriptionBaseApiService;
import org.killbill.billing.subscription.api.SubscriptionBaseInternalApi;
import org.killbill.billing.subscription.api.SubscriptionBaseService;
-import org.killbill.billing.subscription.api.migration.DefaultSubscriptionBaseMigrationApi;
-import org.killbill.billing.subscription.api.migration.SubscriptionBaseMigrationApi;
import org.killbill.billing.subscription.api.svcs.DefaultSubscriptionInternalApi;
import org.killbill.billing.subscription.api.timeline.DefaultSubscriptionBaseTimelineApi;
import org.killbill.billing.subscription.api.timeline.SubscriptionBaseTimelineApi;
@@ -61,11 +58,8 @@ public class DefaultSubscriptionModule extends KillBillModule implements Subscri
bind(DefaultSubscriptionBaseService.class).asEagerSingleton();
bind(PlanAligner.class).asEagerSingleton();
bind(AddonUtils.class).asEagerSingleton();
- bind(MigrationPlanAligner.class).asEagerSingleton();
-
installSubscriptionService();
installSubscriptionTimelineApi();
- installSubscriptionMigrationApi();
installSubscriptionInternalApi();
installSubscriptionTransferApi();
}
@@ -88,11 +82,6 @@ public class DefaultSubscriptionModule extends KillBillModule implements Subscri
}
@Override
- public void installSubscriptionMigrationApi() {
- bind(SubscriptionBaseMigrationApi.class).to(DefaultSubscriptionBaseMigrationApi.class).asEagerSingleton();
- }
-
- @Override
public void installSubscriptionInternalApi() {
bind(SubscriptionBaseInternalApi.class).to(DefaultSubscriptionInternalApi.class).asEagerSingleton();
}
diff --git a/subscription/src/test/java/org/killbill/billing/subscription/api/transfer/TestTransfer.java b/subscription/src/test/java/org/killbill/billing/subscription/api/transfer/TestTransfer.java
index cce6cb0..664d8cb 100644
--- a/subscription/src/test/java/org/killbill/billing/subscription/api/transfer/TestTransfer.java
+++ b/subscription/src/test/java/org/killbill/billing/subscription/api/transfer/TestTransfer.java
@@ -33,8 +33,6 @@ import org.killbill.billing.catalog.api.Product;
import org.killbill.billing.entitlement.api.Entitlement.EntitlementState;
import org.killbill.billing.subscription.SubscriptionTestSuiteWithEmbeddedDB;
import org.killbill.billing.subscription.api.SubscriptionBase;
-import org.killbill.billing.subscription.api.SubscriptionBaseTransitionType;
-import org.killbill.billing.subscription.api.migration.SubscriptionBaseMigrationApi.AccountMigration;
import org.killbill.billing.subscription.api.user.DefaultSubscriptionBase;
import org.killbill.billing.subscription.api.user.SubscriptionBaseBundle;
import org.slf4j.Logger;
@@ -71,55 +69,6 @@ public class TestTransfer extends SubscriptionTestSuiteWithEmbeddedDB {
newAccountId = account.getId();
}
- @Test(groups = "slow")
- public void testTransferMigratedSubscriptionWithCTDInFuture() throws Exception {
- final DateTime startDate = clock.getUTCNow().minusMonths(2);
- final DateTime beforeMigration = clock.getUTCNow();
- final AccountMigration toBeMigrated = testUtil.createAccountForMigrationWithRegularBasePlan(startDate);
- final DateTime afterMigration = clock.getUTCNow();
-
- testListener.pushExpectedEvent(NextEvent.MIGRATE_ENTITLEMENT);
- migrationApi.migrate(toBeMigrated, callContext);
- assertListenerStatus();
-
- final List<SubscriptionBaseBundle> bundles = subscriptionInternalApi.getBundlesForAccount(toBeMigrated.getAccountKey(), internalCallContext);
- assertEquals(bundles.size(), 1);
- final SubscriptionBaseBundle bundle = bundles.get(0);
-
- final DateTime bundleCreatedDate = bundle.getCreatedDate();
-
- final List<SubscriptionBase> subscriptions = subscriptionInternalApi.getSubscriptionsForBundle(bundle.getId(), null, internalCallContext);
- assertEquals(subscriptions.size(), 1);
- final SubscriptionBase subscription = subscriptions.get(0);
- testUtil.assertDateWithin(subscription.getStartDate(), beforeMigration.minusMonths(2), afterMigration.minusMonths(2));
- assertEquals(subscription.getEndDate(), null);
- assertEquals(subscription.getCurrentPriceList().getName(), PriceListSet.DEFAULT_PRICELIST_NAME);
- assertEquals(subscription.getCurrentPhase().getPhaseType(), PhaseType.EVERGREEN);
- assertEquals(subscription.getState(), EntitlementState.ACTIVE);
- assertEquals(subscription.getCurrentPlan().getName(), "shotgun-annual");
- assertEquals(subscription.getChargedThroughDate(), startDate.plusYears(1));
- // WE should see MIGRATE_ENTITLEMENT and then MIGRATE_BILLING in the future
- assertEquals(subscriptionInternalApi.getBillingTransitions(subscription, internalCallContext).size(), 1);
- assertEquals(subscriptionInternalApi.getBillingTransitions(subscription, internalCallContext).get(0).getTransitionType(), SubscriptionBaseTransitionType.MIGRATE_BILLING);
- assertTrue(subscriptionInternalApi.getBillingTransitions(subscription, internalCallContext).get(0).getEffectiveTransitionTime().compareTo(clock.getUTCNow()) > 0);
- assertListenerStatus();
-
- // MOVE A LITTLE, STILL IN TRIAL
- clock.addDays(20);
-
- final DateTime transferRequestedDate = clock.getUTCNow();
-
- testListener.pushExpectedEvent(NextEvent.TRANSFER);
- testListener.pushExpectedEvent(NextEvent.CANCEL);
- transferApi.transferBundle(bundle.getAccountId(), newAccountId, bundle.getExternalKey(), transferRequestedDate, false, true, callContext);
- assertListenerStatus();
-
- final SubscriptionBase oldBaseSubscription = subscriptionInternalApi.getBaseSubscription(bundle.getId(), internalCallContext);
- assertTrue(oldBaseSubscription.getState() == EntitlementState.CANCELLED);
- // The MIGRATE_BILLING event should have been invalidated
- assertEquals(subscriptionInternalApi.getBillingTransitions(oldBaseSubscription, internalCallContext).size(), 0);
- //assertEquals(subscriptionInternalApi.getBillingTransitions(oldBaseSubscription, internalCallContext).get(0).getTransitionType(), SubscriptionBaseTransitionType.CANCEL);
- }
@Test(groups = "slow")
public void testTransferBPInTrialWithNoCTD() throws Exception {
diff --git a/subscription/src/test/java/org/killbill/billing/subscription/api/user/TestSubscriptionHelper.java b/subscription/src/test/java/org/killbill/billing/subscription/api/user/TestSubscriptionHelper.java
index 487a3d9..e47da49 100644
--- a/subscription/src/test/java/org/killbill/billing/subscription/api/user/TestSubscriptionHelper.java
+++ b/subscription/src/test/java/org/killbill/billing/subscription/api/user/TestSubscriptionHelper.java
@@ -19,7 +19,6 @@
package org.killbill.billing.subscription.api.user;
import java.util.ArrayList;
-import java.util.LinkedList;
import java.util.List;
import java.util.UUID;
@@ -28,8 +27,6 @@ import javax.inject.Inject;
import org.joda.time.DateTime;
import org.joda.time.Period;
-import org.killbill.billing.account.api.Account;
-import org.killbill.billing.account.api.AccountApiException;
import org.killbill.billing.account.api.AccountUserApi;
import org.killbill.billing.api.TestApiListener;
import org.killbill.billing.api.TestApiListener.NextEvent;
@@ -38,16 +35,9 @@ import org.killbill.billing.catalog.api.BillingPeriod;
import org.killbill.billing.catalog.api.Duration;
import org.killbill.billing.catalog.api.PhaseType;
import org.killbill.billing.catalog.api.PlanPhaseSpecifier;
-import org.killbill.billing.catalog.api.PriceListSet;
import org.killbill.billing.catalog.api.ProductCategory;
import org.killbill.billing.catalog.api.TimeUnit;
-import org.killbill.billing.events.EffectiveSubscriptionInternalEvent;
-import org.killbill.billing.mock.MockAccountBuilder;
import org.killbill.billing.subscription.api.SubscriptionBaseInternalApi;
-import org.killbill.billing.subscription.api.migration.SubscriptionBaseMigrationApi.AccountMigration;
-import org.killbill.billing.subscription.api.migration.SubscriptionBaseMigrationApi.BundleMigration;
-import org.killbill.billing.subscription.api.migration.SubscriptionBaseMigrationApi.SubscriptionMigration;
-import org.killbill.billing.subscription.api.migration.SubscriptionBaseMigrationApi.SubscriptionMigrationCase;
import org.killbill.billing.subscription.engine.dao.SubscriptionDao;
import org.killbill.billing.subscription.events.SubscriptionBaseEvent;
import org.killbill.billing.subscription.events.phase.PhaseEvent;
@@ -177,169 +167,6 @@ public class TestSubscriptionHelper {
}
}
- public void printSubscriptionTransitions(final List<EffectiveSubscriptionInternalEvent> transitions) {
- for (final EffectiveSubscriptionInternalEvent cur : transitions) {
- log.debug("Transition " + cur);
- }
- }
-
- /**
- * ***********************************************************
- * Utilities for migration tests
- * *************************************************************
- */
-
- public AccountMigration createAccountForMigrationTest(final List<List<SubscriptionMigrationCaseWithCTD>> cases) {
- final Account account;
- try {
- final Account accountData = new MockAccountBuilder().name(UUID.randomUUID().toString().substring(1, 8))
- .email(UUID.randomUUID().toString().substring(1, 8))
- .build();
- account = accountApi.createAccount(accountData, callContext);
- } catch (final AccountApiException e) {
- throw new AssertionError(e.getLocalizedMessage());
- }
-
- return new AccountMigration() {
-
- @Override
- public BundleMigration[] getBundles() {
- final List<BundleMigration> bundles = new ArrayList<BundleMigration>();
- final BundleMigration bundle0 = new BundleMigration() {
- @Override
- public SubscriptionMigration[] getSubscriptions() {
- final SubscriptionMigration[] result = new SubscriptionMigration[cases.size()];
-
- for (int i = 0; i < cases.size(); i++) {
- final List<SubscriptionMigrationCaseWithCTD> curCases = cases.get(i);
- final SubscriptionMigration subscription = new SubscriptionMigration() {
- @Override
- public SubscriptionMigrationCaseWithCTD[] getSubscriptionCases() {
- return curCases.toArray(new SubscriptionMigrationCaseWithCTD[curCases.size()]);
- }
-
- @Override
- public ProductCategory getCategory() {
- return curCases.get(0).getPlanPhaseSpecifier().getProductCategory();
- }
-
- @Override
- public DateTime getChargedThroughDate() {
- for (final SubscriptionMigrationCaseWithCTD cur : curCases) {
- if (cur.getChargedThroughDate() != null) {
- return cur.getChargedThroughDate();
- }
- }
- return null;
- }
- };
- result[i] = subscription;
- }
- return result;
- }
-
- @Override
- public String getBundleKey() {
- return "12345";
- }
- };
- bundles.add(bundle0);
- return bundles.toArray(new BundleMigration[bundles.size()]);
- }
-
- @Override
- public UUID getAccountKey() {
- return account.getId();
- }
- };
- }
-
- public AccountMigration createAccountForMigrationWithRegularBasePlanAndAddons(final DateTime initialBPstart, final DateTime initalAddonStart) {
-
- final List<SubscriptionMigrationCaseWithCTD> cases = new LinkedList<SubscriptionMigrationCaseWithCTD>();
- cases.add(new SubscriptionMigrationCaseWithCTD(
- new PlanPhaseSpecifier("Shotgun", ProductCategory.BASE, BillingPeriod.ANNUAL, PriceListSet.DEFAULT_PRICELIST_NAME, PhaseType.EVERGREEN),
- initialBPstart,
- null,
- initialBPstart.plusYears(1)));
-
- final List<SubscriptionMigrationCaseWithCTD> firstAddOnCases = new LinkedList<SubscriptionMigrationCaseWithCTD>();
- firstAddOnCases.add(new SubscriptionMigrationCaseWithCTD(
- new PlanPhaseSpecifier("Telescopic-Scope", ProductCategory.ADD_ON, BillingPeriod.MONTHLY, PriceListSet.DEFAULT_PRICELIST_NAME, PhaseType.DISCOUNT),
- initalAddonStart,
- initalAddonStart.plusMonths(1),
- initalAddonStart.plusMonths(1)));
- firstAddOnCases.add(new SubscriptionMigrationCaseWithCTD(
- new PlanPhaseSpecifier("Telescopic-Scope", ProductCategory.ADD_ON, BillingPeriod.MONTHLY, PriceListSet.DEFAULT_PRICELIST_NAME, PhaseType.EVERGREEN),
- initalAddonStart.plusMonths(1),
- null,
- null));
-
- final List<List<SubscriptionMigrationCaseWithCTD>> input = new ArrayList<List<SubscriptionMigrationCaseWithCTD>>();
- input.add(cases);
- input.add(firstAddOnCases);
- return createAccountForMigrationTest(input);
- }
-
- public AccountMigration createAccountForMigrationWithRegularBasePlan(final DateTime startDate) {
- final List<SubscriptionMigrationCaseWithCTD> cases = new LinkedList<SubscriptionMigrationCaseWithCTD>();
- cases.add(new SubscriptionMigrationCaseWithCTD(
- new PlanPhaseSpecifier("Shotgun", ProductCategory.BASE, BillingPeriod.ANNUAL, PriceListSet.DEFAULT_PRICELIST_NAME, PhaseType.EVERGREEN),
- startDate,
- null,
- startDate.plusYears(1)));
- final List<List<SubscriptionMigrationCaseWithCTD>> input = new ArrayList<List<SubscriptionMigrationCaseWithCTD>>();
- input.add(cases);
- return createAccountForMigrationTest(input);
- }
-
- public AccountMigration createAccountForMigrationWithRegularBasePlanFutreCancelled(final DateTime startDate) {
- final List<SubscriptionMigrationCaseWithCTD> cases = new LinkedList<SubscriptionMigrationCaseWithCTD>();
- cases.add(new SubscriptionMigrationCaseWithCTD(
- new PlanPhaseSpecifier("Assault-Rifle", ProductCategory.BASE, BillingPeriod.ANNUAL, PriceListSet.DEFAULT_PRICELIST_NAME, PhaseType.EVERGREEN),
- startDate,
- startDate.plusYears(1),
- startDate.plusYears(1)));
- final List<List<SubscriptionMigrationCaseWithCTD>> input = new ArrayList<List<SubscriptionMigrationCaseWithCTD>>();
- input.add(cases);
- return createAccountForMigrationTest(input);
- }
-
- public AccountMigration createAccountForMigrationFuturePendingPhase(final DateTime trialDate) {
- final List<SubscriptionMigrationCaseWithCTD> cases = new LinkedList<SubscriptionMigrationCaseWithCTD>();
- cases.add(new SubscriptionMigrationCaseWithCTD(
- new PlanPhaseSpecifier("Assault-Rifle", ProductCategory.BASE, BillingPeriod.MONTHLY, PriceListSet.DEFAULT_PRICELIST_NAME, PhaseType.TRIAL),
- trialDate,
- trialDate.plusDays(30),
- trialDate.plusDays(30)));
- cases.add(new SubscriptionMigrationCaseWithCTD(
- new PlanPhaseSpecifier("Assault-Rifle", ProductCategory.BASE, BillingPeriod.MONTHLY, PriceListSet.DEFAULT_PRICELIST_NAME, PhaseType.EVERGREEN),
- trialDate.plusDays(30),
- null,
- null));
- final List<List<SubscriptionMigrationCaseWithCTD>> input = new ArrayList<List<SubscriptionMigrationCaseWithCTD>>();
- input.add(cases);
- return createAccountForMigrationTest(input);
- }
-
- public AccountMigration createAccountForMigrationFuturePendingChange() {
- final List<SubscriptionMigrationCaseWithCTD> cases = new LinkedList<SubscriptionMigrationCaseWithCTD>();
- final DateTime effectiveDate = clock.getUTCNow().minusDays(10);
- cases.add(new SubscriptionMigrationCaseWithCTD(
- new PlanPhaseSpecifier("Assault-Rifle", ProductCategory.BASE, BillingPeriod.MONTHLY, PriceListSet.DEFAULT_PRICELIST_NAME, PhaseType.EVERGREEN),
- effectiveDate,
- effectiveDate.plusMonths(1),
- effectiveDate.plusMonths(1)));
- cases.add(new SubscriptionMigrationCaseWithCTD(
- new PlanPhaseSpecifier("Shotgun", ProductCategory.BASE, BillingPeriod.ANNUAL, PriceListSet.DEFAULT_PRICELIST_NAME, PhaseType.EVERGREEN),
- effectiveDate.plusMonths(1).plusDays(1),
- null,
- null));
- final List<List<SubscriptionMigrationCaseWithCTD>> input = new ArrayList<List<SubscriptionMigrationCaseWithCTD>>();
- input.add(cases);
- return createAccountForMigrationTest(input);
- }
-
public static DateTime addOrRemoveDuration(final DateTime input, final List<Duration> durations, final boolean add) {
DateTime result = input;
for (final Duration cur : durations) {
@@ -373,38 +200,4 @@ public class TestSubscriptionHelper {
return addOrRemoveDuration(input, list, true);
}
- public static class SubscriptionMigrationCaseWithCTD implements SubscriptionMigrationCase {
-
- private final PlanPhaseSpecifier pps;
- private final DateTime effDt;
- private final DateTime cancelDt;
- private final DateTime ctd;
-
- public SubscriptionMigrationCaseWithCTD(final PlanPhaseSpecifier pps, final DateTime effDt, final DateTime cancelDt, final DateTime ctd) {
- this.pps = pps;
- this.cancelDt = cancelDt;
- this.effDt = effDt;
- this.ctd = ctd;
- }
-
- @Override
- public PlanPhaseSpecifier getPlanPhaseSpecifier() {
- return pps;
- }
-
- @Override
- public DateTime getEffectiveDate() {
- return effDt;
- }
-
- @Override
- public DateTime getCancelledDate() {
- return cancelDt;
- }
-
- public DateTime getChargedThroughDate() {
- return ctd;
- }
- }
-
}
diff --git a/subscription/src/test/java/org/killbill/billing/subscription/engine/dao/MockSubscriptionDaoMemory.java b/subscription/src/test/java/org/killbill/billing/subscription/engine/dao/MockSubscriptionDaoMemory.java
index f7947f5..1f18740 100644
--- a/subscription/src/test/java/org/killbill/billing/subscription/engine/dao/MockSubscriptionDaoMemory.java
+++ b/subscription/src/test/java/org/killbill/billing/subscription/engine/dao/MockSubscriptionDaoMemory.java
@@ -38,9 +38,7 @@ import org.killbill.billing.catalog.api.TimeUnit;
import org.killbill.billing.dao.MockNonEntityDao;
import org.killbill.billing.entitlement.api.SubscriptionApiException;
import org.killbill.billing.subscription.api.SubscriptionBase;
-import org.killbill.billing.subscription.api.migration.AccountMigrationData;
-import org.killbill.billing.subscription.api.migration.AccountMigrationData.BundleMigrationData;
-import org.killbill.billing.subscription.api.migration.AccountMigrationData.SubscriptionMigrationData;
+import org.killbill.billing.subscription.api.transfer.BundleTransferData;
import org.killbill.billing.subscription.api.transfer.TransferCancelData;
import org.killbill.billing.subscription.api.user.DefaultEffectiveSubscriptionEvent;
import org.killbill.billing.subscription.api.user.DefaultSubscriptionBase;
@@ -460,30 +458,6 @@ public class MockSubscriptionDaoMemory extends MockEntityDaoBase<SubscriptionBun
}
@Override
- public void migrate(final UUID accountId, final AccountMigrationData accountData, final InternalCallContext context) {
- synchronized (events) {
-
- for (final BundleMigrationData curBundle : accountData.getData()) {
- final DefaultSubscriptionBaseBundle bundleData = curBundle.getData();
- for (final SubscriptionMigrationData curSubscription : curBundle.getSubscriptions()) {
- final DefaultSubscriptionBase subData = curSubscription.getData();
- for (final SubscriptionBaseEvent curEvent : curSubscription.getInitialEvents()) {
- events.add(curEvent);
- mockNonEntityDao.addTenantRecordIdMapping(curEvent.getId(), context);
- recordFutureNotificationFromTransaction(null, curEvent.getEffectiveDate(),
- new SubscriptionNotificationKey(curEvent.getId()), context);
-
- }
- subscriptions.add(subData);
- mockNonEntityDao.addTenantRecordIdMapping(subData.getId(), context);
- }
- bundles.add(bundleData);
- mockNonEntityDao.addTenantRecordIdMapping(bundleData.getId(), context);
- }
- }
- }
-
- @Override
public SubscriptionBaseEvent getEventById(final UUID eventId, final InternalTenantContext context) {
synchronized (events) {
for (final SubscriptionBaseEvent cur : events) {
@@ -529,7 +503,7 @@ public class MockSubscriptionDaoMemory extends MockEntityDaoBase<SubscriptionBun
}
@Override
- public void transfer(final UUID srcAccountId, final UUID destAccountId, final BundleMigrationData data,
+ public void transfer(final UUID srcAccountId, final UUID destAccountId, final BundleTransferData data,
final List<TransferCancelData> transferCancelData, final InternalCallContext fromContext,
final InternalCallContext toContext) {
}
diff --git a/subscription/src/test/java/org/killbill/billing/subscription/SubscriptionTestSuiteNoDB.java b/subscription/src/test/java/org/killbill/billing/subscription/SubscriptionTestSuiteNoDB.java
index c57adde..0148bc4 100644
--- a/subscription/src/test/java/org/killbill/billing/subscription/SubscriptionTestSuiteNoDB.java
+++ b/subscription/src/test/java/org/killbill/billing/subscription/SubscriptionTestSuiteNoDB.java
@@ -32,7 +32,6 @@ import org.killbill.billing.lifecycle.api.BusService;
import org.killbill.billing.platform.api.KillbillConfigSource;
import org.killbill.billing.subscription.api.SubscriptionBaseInternalApi;
import org.killbill.billing.subscription.api.SubscriptionBaseService;
-import org.killbill.billing.subscription.api.migration.SubscriptionBaseMigrationApi;
import org.killbill.billing.subscription.api.timeline.SubscriptionBaseTimelineApi;
import org.killbill.billing.subscription.api.transfer.SubscriptionBaseTransferApi;
import org.killbill.billing.subscription.api.user.SubscriptionBaseBundle;
@@ -70,8 +69,6 @@ public class SubscriptionTestSuiteNoDB extends GuicyKillbillTestSuiteNoDB {
protected SubscriptionBaseTransferApi transferApi;
@Inject
- protected SubscriptionBaseMigrationApi migrationApi;
- @Inject
protected SubscriptionBaseTimelineApi repairApi;
@Inject
diff --git a/subscription/src/test/java/org/killbill/billing/subscription/SubscriptionTestSuiteWithEmbeddedDB.java b/subscription/src/test/java/org/killbill/billing/subscription/SubscriptionTestSuiteWithEmbeddedDB.java
index dd5cb33..59b5209 100644
--- a/subscription/src/test/java/org/killbill/billing/subscription/SubscriptionTestSuiteWithEmbeddedDB.java
+++ b/subscription/src/test/java/org/killbill/billing/subscription/SubscriptionTestSuiteWithEmbeddedDB.java
@@ -21,7 +21,6 @@ package org.killbill.billing.subscription;
import javax.inject.Inject;
import org.killbill.billing.GuicyKillbillTestSuiteWithEmbeddedDB;
-import org.killbill.billing.ObjectType;
import org.killbill.billing.account.api.Account;
import org.killbill.billing.account.api.AccountApiException;
import org.killbill.billing.account.api.AccountData;
@@ -33,14 +32,12 @@ import org.killbill.billing.lifecycle.api.BusService;
import org.killbill.billing.platform.api.KillbillConfigSource;
import org.killbill.billing.subscription.api.SubscriptionBaseInternalApi;
import org.killbill.billing.subscription.api.SubscriptionBaseService;
-import org.killbill.billing.subscription.api.migration.SubscriptionBaseMigrationApi;
import org.killbill.billing.subscription.api.timeline.SubscriptionBaseTimelineApi;
import org.killbill.billing.subscription.api.transfer.SubscriptionBaseTransferApi;
import org.killbill.billing.subscription.api.user.SubscriptionBaseBundle;
import org.killbill.billing.subscription.api.user.TestSubscriptionHelper;
import org.killbill.billing.subscription.engine.dao.SubscriptionDao;
import org.killbill.billing.subscription.glue.TestDefaultSubscriptionModuleWithEmbeddedDB;
-import org.killbill.billing.util.cache.Cachable.CacheType;
import org.killbill.billing.util.config.SubscriptionConfig;
import org.killbill.billing.util.dao.NonEntityDao;
import org.killbill.clock.ClockMock;
@@ -70,8 +67,6 @@ public class SubscriptionTestSuiteWithEmbeddedDB extends GuicyKillbillTestSuiteW
protected SubscriptionBaseTransferApi transferApi;
@Inject
- protected SubscriptionBaseMigrationApi migrationApi;
- @Inject
protected SubscriptionBaseTimelineApi repairApi;
@Inject
diff --git a/util/src/test/java/org/killbill/billing/mock/glue/MockSubscriptionModule.java b/util/src/test/java/org/killbill/billing/mock/glue/MockSubscriptionModule.java
index 78bab07..7f6a1d8 100644
--- a/util/src/test/java/org/killbill/billing/mock/glue/MockSubscriptionModule.java
+++ b/util/src/test/java/org/killbill/billing/mock/glue/MockSubscriptionModule.java
@@ -22,7 +22,6 @@ import org.killbill.billing.glue.SubscriptionModule;
import org.killbill.billing.platform.api.KillbillConfigSource;
import org.killbill.billing.subscription.api.SubscriptionBaseInternalApi;
import org.killbill.billing.subscription.api.SubscriptionBaseService;
-import org.killbill.billing.subscription.api.migration.SubscriptionBaseMigrationApi;
import org.killbill.billing.subscription.api.timeline.SubscriptionBaseTimelineApi;
import org.killbill.billing.subscription.api.transfer.SubscriptionBaseTransferApi;
import org.killbill.billing.util.glue.KillBillModule;
@@ -39,10 +38,6 @@ public class MockSubscriptionModule extends KillBillModule implements Subscripti
bind(SubscriptionBaseService.class).toInstance(Mockito.mock(SubscriptionBaseService.class));
}
- @Override
- public void installSubscriptionMigrationApi() {
- bind(SubscriptionBaseMigrationApi.class).toInstance(Mockito.mock(SubscriptionBaseMigrationApi.class));
- }
@Override
public void installSubscriptionInternalApi() {
@@ -52,7 +47,6 @@ public class MockSubscriptionModule extends KillBillModule implements Subscripti
@Override
protected void configure() {
installSubscriptionService();
- installSubscriptionMigrationApi();
installSubscriptionInternalApi();
installSubscriptionTimelineApi();
installSubscriptionTransferApi();