killbill-memoizeit

Change migration code to create subscription with the startDate

10/10/2012 10:37:15 PM

Details

diff --git a/entitlement/src/main/java/com/ning/billing/entitlement/alignment/MigrationPlanAligner.java b/entitlement/src/main/java/com/ning/billing/entitlement/alignment/MigrationPlanAligner.java
index b30c6a1..404ac7c 100644
--- a/entitlement/src/main/java/com/ning/billing/entitlement/alignment/MigrationPlanAligner.java
+++ b/entitlement/src/main/java/com/ning/billing/entitlement/alignment/MigrationPlanAligner.java
@@ -55,21 +55,21 @@ public class MigrationPlanAligner {
                                                                                        input[1].getPlanPhaseSpecifier().getBillingPeriod(), input[1].getPlanPhaseSpecifier().getPriceListName(), now) :
                     null;
 
-            DateTime migrationStartDate = now;
+            DateTime migrationStartDate = input[0].getEffectiveDate();
 
             if (isRegularMigratedSubscription(input)) {
 
                 events = getEventsOnRegularMigration(plan0,
                                                      getPlanPhase(plan0, input[0].getPlanPhaseSpecifier().getPhaseType()),
                                                      input[0].getPlanPhaseSpecifier().getPriceListName(),
-                                                     now);
+                                                     migrationStartDate);
 
             } else if (isRegularFutureCancelledMigratedSubscription(input)) {
 
                 events = getEventsOnFuturePlanCancelMigration(plan0,
                                                               getPlanPhase(plan0, input[0].getPlanPhaseSpecifier().getPhaseType()),
                                                               input[0].getPlanPhaseSpecifier().getPriceListName(),
-                                                              now,
+                                                              migrationStartDate,
                                                               input[0].getCancelledDate());
 
             } else if (isPhaseChangeMigratedSubscription(input)) {
@@ -101,7 +101,7 @@ public class MigrationPlanAligner {
                                                               plan1,
                                                               getPlanPhase(plan1, input[1].getPlanPhaseSpecifier().getPhaseType()),
                                                               input[0].getPlanPhaseSpecifier().getPriceListName(),
-                                                              now,
+                                                              migrationStartDate,
                                                               input[1].getEffectiveDate());
 
             } else {
diff --git a/entitlement/src/test/java/com/ning/billing/entitlement/api/migration/TestMigration.java b/entitlement/src/test/java/com/ning/billing/entitlement/api/migration/TestMigration.java
index db80a34..ccdc80a 100644
--- a/entitlement/src/test/java/com/ning/billing/entitlement/api/migration/TestMigration.java
+++ b/entitlement/src/test/java/com/ning/billing/entitlement/api/migration/TestMigration.java
@@ -16,6 +16,11 @@
 
 package com.ning.billing.entitlement.api.migration;
 
+import static org.testng.Assert.assertEquals;
+import static org.testng.Assert.assertNotNull;
+import static org.testng.Assert.assertNull;
+import static org.testng.Assert.assertTrue;
+
 import java.util.List;
 
 import org.joda.time.DateTime;
@@ -32,11 +37,6 @@ import com.ning.billing.entitlement.api.user.Subscription;
 import com.ning.billing.entitlement.api.user.Subscription.SubscriptionState;
 import com.ning.billing.entitlement.api.user.SubscriptionBundle;
 
-import static org.testng.Assert.assertEquals;
-import static org.testng.Assert.assertNotNull;
-import static org.testng.Assert.assertNull;
-import static org.testng.Assert.assertTrue;
-
 public abstract class TestMigration extends TestApiBase {
     public void testSingleBasePlan() {
         try {
@@ -56,7 +56,7 @@ public abstract class TestMigration extends TestApiBase {
             final List<Subscription> subscriptions = entitlementApi.getSubscriptionsForBundle(bundle.getId(), callContext);
             assertEquals(subscriptions.size(), 1);
             final Subscription subscription = subscriptions.get(0);
-            assertDateWithin(subscription.getStartDate(), beforeMigration, afterMigration);
+            assertTrue(subscription.getStartDate().compareTo(startDate) == 0);
             assertEquals(subscription.getEndDate(), null);
             assertEquals(subscription.getCurrentPriceList().getName(), PriceListSet.DEFAULT_PRICELIST_NAME);
             assertEquals(subscription.getCurrentPhase().getPhaseType(), PhaseType.EVERGREEN);
@@ -92,7 +92,7 @@ public abstract class TestMigration extends TestApiBase {
 
             final Subscription baseSubscription = (subscriptions.get(0).getCurrentPlan().getProduct().getCategory() == ProductCategory.BASE) ?
                     subscriptions.get(0) : subscriptions.get(1);
-            assertDateWithin(baseSubscription.getStartDate(), beforeMigration, afterMigration);
+            assertTrue(baseSubscription.getStartDate().compareTo(initalBPStart) == 0);
             assertEquals(baseSubscription.getEndDate(), null);
             assertEquals(baseSubscription.getCurrentPriceList().getName(), PriceListSet.DEFAULT_PRICELIST_NAME);
             assertEquals(baseSubscription.getCurrentPhase().getPhaseType(), PhaseType.EVERGREEN);
@@ -138,7 +138,7 @@ public abstract class TestMigration extends TestApiBase {
             final List<Subscription> subscriptions = entitlementApi.getSubscriptionsForBundle(bundle.getId(), callContext);
             assertEquals(subscriptions.size(), 1);
             final Subscription subscription = subscriptions.get(0);
-            assertDateWithin(subscription.getStartDate(), beforeMigration, afterMigration);
+            assertTrue(subscription.getStartDate().compareTo(startDate) == 0);
             assertEquals(subscription.getCurrentPriceList().getName(), PriceListSet.DEFAULT_PRICELIST_NAME);
             assertEquals(subscription.getCurrentPhase().getPhaseType(), PhaseType.EVERGREEN);
             assertEquals(subscription.getState(), SubscriptionState.ACTIVE);
@@ -153,7 +153,7 @@ public abstract class TestMigration extends TestApiBase {
             clock.addDeltaFromReality(it.toDurationMillis());
             assertTrue(testListener.isCompleted(5000));
 
-            assertDateWithin(subscription.getStartDate(), beforeMigration, afterMigration);
+            assertTrue(subscription.getStartDate().compareTo(startDate) == 0);
             assertNotNull(subscription.getEndDate());
             assertTrue(subscription.getEndDate().isAfterNow());
             assertEquals(subscription.getCurrentPriceList().getName(), PriceListSet.DEFAULT_PRICELIST_NAME);