killbill-aplcache
Changes
beatrix/src/test/java/com/ning/billing/beatrix/integration/osgi/TestPaymentOSGIWithTestPaymentBundle.java 26(+13 -13)
beatrix/src/test/java/com/ning/billing/beatrix/integration/overdue/TestBillingAlignment.java 2(+0 -2)
beatrix/src/test/java/com/ning/billing/beatrix/integration/overdue/TestOverdueIntegration.java 6(+1 -5)
beatrix/src/test/java/com/ning/billing/beatrix/integration/overdue/TestOverdueWithOverdueEnforcementOffTag.java 8(+2 -6)
beatrix/src/test/java/com/ning/billing/beatrix/integration/overdue/TestOverdueWithSubscriptionCancellation.java 45(+23 -22)
entitlement/src/test/java/com/ning/billing/entitlement/EntitlementTestSuiteWithEmbeddedDB.java 17(+8 -9)
invoice/src/main/java/com/ning/billing/invoice/notification/DefaultNextBillingDateNotifier.java 4(+2 -2)
invoice/src/test/java/com/ning/billing/invoice/generator/TestDefaultInvoiceGenerator.java 94(+47 -47)
invoice/src/test/java/com/ning/billing/invoice/notification/TestNextBillingDateNotifier.java 4(+2 -2)
junction/src/main/java/com/ning/billing/junction/plumbing/billing/BillCycleDayCalculator.java 10(+5 -5)
junction/src/main/java/com/ning/billing/junction/plumbing/billing/BlockingCalculator.java 26(+13 -13)
junction/src/main/java/com/ning/billing/junction/plumbing/billing/DefaultBillingEvent.java 10(+5 -5)
junction/src/main/java/com/ning/billing/junction/plumbing/billing/DefaultInternalBillingApi.java 10(+5 -5)
junction/src/test/java/com/ning/billing/junction/plumbing/billing/TestBillCycleDayCalculator.java 6(+3 -3)
junction/src/test/java/com/ning/billing/junction/plumbing/billing/TestBlockingCalculator.java 26(+13 -13)
junction/src/test/java/com/ning/billing/junction/plumbing/billing/TestDefaultBillingEvent.java 10(+5 -5)
osgi-bundles/libs/killbill/src/main/java/com/ning/killbill/osgi/libs/killbill/OSGIKillbillAPI.java 8(+4 -4)
overdue/src/main/java/com/ning/billing/overdue/calculator/BillingStateCalculatorBundle.java 8(+4 -4)
overdue/src/test/java/com/ning/billing/ovedue/notification/TestDefaultOverdueCheckPoster.java 4(+2 -2)
overdue/src/test/java/com/ning/billing/overdue/calculator/TestBillingStateCalculatorBundle.java 8(+4 -4)
subscription/src/main/java/com/ning/billing/subscription/api/svcs/DefaultSubscriptionInternalApi.java 34(+17 -17)
subscription/src/main/java/com/ning/billing/subscription/api/timeline/DefaultSubscriptionTimelineApi.java 20(+10 -10)
subscription/src/main/java/com/ning/billing/subscription/api/user/DefaultSubscriptionApiService.java 5(+3 -2)
subscription/src/main/java/com/ning/billing/subscription/api/user/SubscriptionData.java 167(+84 -83)
subscription/src/main/java/com/ning/billing/subscription/api/user/SubscriptionTransitionDataIterator.java 2(+1 -1)
subscription/src/main/java/com/ning/billing/subscription/engine/dao/DefaultSubscriptionDao.java 58(+29 -29)
subscription/src/main/java/com/ning/billing/subscription/engine/dao/model/SubscriptionModelDao.java 6(+3 -3)
subscription/src/main/java/com/ning/billing/subscription/engine/dao/RepairSubscriptionDao.java 10(+5 -5)
subscription/src/main/java/com/ning/billing/subscription/engine/dao/SubscriptionSqlDao.java 4(+2 -2)
subscription/src/test/java/com/ning/billing/subscription/api/migration/TestMigration.java 26(+13 -13)
subscription/src/test/java/com/ning/billing/subscription/api/timeline/TestRepairWithAO.java 4(+2 -2)
subscription/src/test/java/com/ning/billing/subscription/api/timeline/TestRepairWithError.java 4(+2 -2)
subscription/src/test/java/com/ning/billing/subscription/engine/dao/MockSubscriptionDaoMemory.java 32(+16 -16)
Details
diff --git a/.idea/libraries/Maven__com_ning_billing_killbill_api_0_3_3_SNAPSHOT.xml b/.idea/libraries/Maven__com_ning_billing_killbill_api_0_3_3_SNAPSHOT.xml
new file mode 100644
index 0000000..49c5b75
--- /dev/null
+++ b/.idea/libraries/Maven__com_ning_billing_killbill_api_0_3_3_SNAPSHOT.xml
@@ -0,0 +1,14 @@
+<component name="libraryTable">
+ <library name="Maven: com.ning.billing:killbill-api:0.3.3-SNAPSHOT">
+ <CLASSES>
+ <root url="jar://$MAVEN_REPOSITORY$/com/ning/billing/killbill-api/0.3.3-SNAPSHOT/killbill-api-0.3.3-SNAPSHOT.jar!/" />
+ </CLASSES>
+ <JAVADOC>
+ <root url="jar://$MAVEN_REPOSITORY$/com/ning/billing/killbill-api/0.3.3-SNAPSHOT/killbill-api-0.3.3-SNAPSHOT-javadoc.jar!/" />
+ </JAVADOC>
+ <SOURCES>
+ <root url="jar://$MAVEN_REPOSITORY$/com/ning/billing/killbill-api/0.3.3-SNAPSHOT/killbill-api-0.3.3-SNAPSHOT-sources.jar!/" />
+ <root url="file://$PROJECT_DIR$/../killbill-api/src/main/java" />
+ </SOURCES>
+ </library>
+</component>
\ No newline at end of file
diff --git a/api/src/main/java/com/ning/billing/subscription/api/SubscriptionBase.java b/api/src/main/java/com/ning/billing/subscription/api/SubscriptionBase.java
new file mode 100644
index 0000000..e2ab37a
--- /dev/null
+++ b/api/src/main/java/com/ning/billing/subscription/api/SubscriptionBase.java
@@ -0,0 +1,84 @@
+package com.ning.billing.subscription.api;
+
+import java.util.List;
+import java.util.UUID;
+
+import org.joda.time.DateTime;
+
+import com.ning.billing.catalog.api.ActionPolicy;
+import com.ning.billing.catalog.api.BillingPeriod;
+import com.ning.billing.catalog.api.Plan;
+import com.ning.billing.catalog.api.PlanPhase;
+import com.ning.billing.catalog.api.PlanPhaseSpecifier;
+import com.ning.billing.catalog.api.PriceList;
+import com.ning.billing.catalog.api.ProductCategory;
+import com.ning.billing.entitlement.api.Blockable;
+import com.ning.billing.subscription.api.user.SubscriptionSourceType;
+import com.ning.billing.subscription.api.user.SubscriptionState;
+import com.ning.billing.subscription.api.user.SubscriptionTransition;
+import com.ning.billing.subscription.api.user.SubscriptionUserApiException;
+import com.ning.billing.util.callcontext.CallContext;
+import com.ning.billing.util.entity.Entity;
+
+public interface SubscriptionBase extends Entity, Blockable {
+
+
+ public boolean cancel(final DateTime requestedDate, final CallContext context)
+ throws SubscriptionUserApiException;
+
+ public boolean cancelWithPolicy(final DateTime requestedDate, final ActionPolicy policy, final CallContext context)
+ throws SubscriptionUserApiException;
+
+ public boolean uncancel(final CallContext context)
+ throws SubscriptionUserApiException;
+
+ public boolean changePlan(final String productName, final BillingPeriod term, final String priceList, final DateTime requestedDate, final CallContext context)
+ throws SubscriptionUserApiException;
+
+ public boolean changePlanWithPolicy(final String productName, final BillingPeriod term, final String priceList, final DateTime requestedDate,
+ final ActionPolicy policy, final CallContext context)
+ throws SubscriptionUserApiException;
+
+ public boolean recreate(final PlanPhaseSpecifier spec, final DateTime requestedDate, final CallContext context)
+ throws SubscriptionUserApiException;
+
+ public UUID getBundleId();
+
+ public SubscriptionState getState();
+
+ public SubscriptionSourceType getSourceType();
+
+ public DateTime getStartDate();
+
+ public DateTime getEndDate();
+
+ public DateTime getFutureEndDate();
+
+ public Plan getCurrentPlan();
+
+ public Plan getLastActivePlan();
+
+ public PriceList getCurrentPriceList();
+
+ public PlanPhase getCurrentPhase();
+
+ public String getLastActiveProductName();
+
+ public String getLastActivePriceListName();
+
+ public String getLastActiveCategoryName();
+
+ public String getLastActiveBillingPeriod();
+
+ public DateTime getChargedThroughDate();
+
+ public DateTime getPaidThroughDate();
+
+ public ProductCategory getCategory();
+
+ public SubscriptionTransition getPendingTransition();
+
+ public SubscriptionTransition getPreviousTransition();
+
+ public List<SubscriptionTransition> getAllTransitions();
+}
diff --git a/beatrix/src/test/java/com/ning/billing/beatrix/integration/osgi/TestPaymentOSGIWithTestPaymentBundle.java b/beatrix/src/test/java/com/ning/billing/beatrix/integration/osgi/TestPaymentOSGIWithTestPaymentBundle.java
index 4f1b82d..fe1ba3b 100644
--- a/beatrix/src/test/java/com/ning/billing/beatrix/integration/osgi/TestPaymentOSGIWithTestPaymentBundle.java
+++ b/beatrix/src/test/java/com/ning/billing/beatrix/integration/osgi/TestPaymentOSGIWithTestPaymentBundle.java
@@ -16,6 +16,19 @@
package com.ning.billing.beatrix.integration.osgi;
+import java.math.BigDecimal;
+import java.util.LinkedList;
+import java.util.List;
+import java.util.UUID;
+
+import javax.inject.Inject;
+
+import org.joda.time.LocalDate;
+import org.testng.Assert;
+import org.testng.annotations.BeforeClass;
+import org.testng.annotations.BeforeMethod;
+import org.testng.annotations.Test;
+
import com.ning.billing.account.api.Account;
import com.ning.billing.account.api.AccountData;
import com.ning.billing.api.TestApiListener.NextEvent;
@@ -27,8 +40,6 @@ import com.ning.billing.catalog.api.BillingPeriod;
import com.ning.billing.catalog.api.Currency;
import com.ning.billing.catalog.api.ProductCategory;
import com.ning.billing.entitlement.api.DefaultEntitlement;
-import com.ning.billing.subscription.api.user.Subscription;
-import com.ning.billing.subscription.api.user.SubscriptionBundle;
import com.ning.billing.invoice.api.Invoice;
import com.ning.billing.invoice.api.InvoiceItemType;
import com.ning.billing.osgi.api.OSGIServiceRegistration;
@@ -36,17 +47,6 @@ import com.ning.billing.payment.api.PaymentStatus;
import com.ning.billing.payment.plugin.api.PaymentPluginApi;
import com.ning.billing.payment.plugin.api.PaymentPluginApiException;
import com.ning.billing.payment.plugin.api.PaymentPluginApiWithTestControl;
-import org.joda.time.LocalDate;
-import org.testng.Assert;
-import org.testng.annotations.BeforeClass;
-import org.testng.annotations.BeforeMethod;
-import org.testng.annotations.Test;
-
-import javax.inject.Inject;
-import java.math.BigDecimal;
-import java.util.LinkedList;
-import java.util.List;
-import java.util.UUID;
public class TestPaymentOSGIWithTestPaymentBundle extends TestOSGIBase {
diff --git a/beatrix/src/test/java/com/ning/billing/beatrix/integration/overdue/TestBillingAlignment.java b/beatrix/src/test/java/com/ning/billing/beatrix/integration/overdue/TestBillingAlignment.java
index 03c9da1..152b967 100644
--- a/beatrix/src/test/java/com/ning/billing/beatrix/integration/overdue/TestBillingAlignment.java
+++ b/beatrix/src/test/java/com/ning/billing/beatrix/integration/overdue/TestBillingAlignment.java
@@ -28,8 +28,6 @@ import com.ning.billing.beatrix.util.InvoiceChecker.ExpectedInvoiceItemCheck;
import com.ning.billing.catalog.api.BillingPeriod;
import com.ning.billing.catalog.api.ProductCategory;
import com.ning.billing.entitlement.api.DefaultEntitlement;
-import com.ning.billing.subscription.api.user.Subscription;
-import com.ning.billing.subscription.api.user.SubscriptionBundle;
import com.ning.billing.invoice.api.InvoiceItemType;
import static org.testng.Assert.assertNotNull;
diff --git a/beatrix/src/test/java/com/ning/billing/beatrix/integration/overdue/TestOverdueIntegration.java b/beatrix/src/test/java/com/ning/billing/beatrix/integration/overdue/TestOverdueIntegration.java
index a0dcfb4..0f97c21 100644
--- a/beatrix/src/test/java/com/ning/billing/beatrix/integration/overdue/TestOverdueIntegration.java
+++ b/beatrix/src/test/java/com/ning/billing/beatrix/integration/overdue/TestOverdueIntegration.java
@@ -30,15 +30,13 @@ import com.ning.billing.catalog.api.BillingPeriod;
import com.ning.billing.catalog.api.Currency;
import com.ning.billing.catalog.api.PriceListSet;
import com.ning.billing.catalog.api.ProductCategory;
+import com.ning.billing.entitlement.api.BlockingApiException;
import com.ning.billing.entitlement.api.DefaultEntitlement;
import com.ning.billing.entitlement.api.Entitlement;
import com.ning.billing.entitlement.api.EntitlementApiException;
-import com.ning.billing.subscription.api.user.SubscriptionUserApiException;
-import com.ning.billing.subscription.api.user.Subscription;
import com.ning.billing.invoice.api.Invoice;
import com.ning.billing.invoice.api.InvoiceItemType;
import com.ning.billing.invoice.api.InvoicePayment;
-import com.ning.billing.entitlement.api.BlockingApiException;
import com.ning.billing.payment.api.Payment;
import com.ning.billing.util.svcapi.junction.DefaultBlockingState;
@@ -190,8 +188,6 @@ public class TestOverdueIntegration extends TestOverdueBase {
}
-
-
// We set the the property killbill.payment.retry.days=8,8,8,8,8,8,8,8 so that Payment retry logic does not end with an ABORTED state
// preventing final instant payment to succeed.
@Test(groups = "slow")
diff --git a/beatrix/src/test/java/com/ning/billing/beatrix/integration/overdue/TestOverdueWithOverdueEnforcementOffTag.java b/beatrix/src/test/java/com/ning/billing/beatrix/integration/overdue/TestOverdueWithOverdueEnforcementOffTag.java
index 5c679fb..9a82224 100644
--- a/beatrix/src/test/java/com/ning/billing/beatrix/integration/overdue/TestOverdueWithOverdueEnforcementOffTag.java
+++ b/beatrix/src/test/java/com/ning/billing/beatrix/integration/overdue/TestOverdueWithOverdueEnforcementOffTag.java
@@ -27,13 +27,10 @@ import com.ning.billing.api.TestApiListener.NextEvent;
import com.ning.billing.beatrix.util.InvoiceChecker.ExpectedInvoiceItemCheck;
import com.ning.billing.catalog.api.ProductCategory;
import com.ning.billing.entitlement.api.DefaultEntitlement;
-import com.ning.billing.subscription.api.user.Subscription;
import com.ning.billing.invoice.api.InvoiceItemType;
import com.ning.billing.util.svcapi.junction.DefaultBlockingState;
import com.ning.billing.util.tag.ControlTagType;
-import static junit.framework.Assert.assertTrue;
-
@Test(groups = "slow")
public class TestOverdueWithOverdueEnforcementOffTag extends TestOverdueBase {
@@ -42,7 +39,7 @@ public class TestOverdueWithOverdueEnforcementOffTag extends TestOverdueBase {
public String getOverdueConfig() {
final String configXml = "<overdueConfig>" +
" <bundleOverdueStates>" +
- " <state name=\"OD1\">" +
+ " <state name=\"OD1\">" +
" <condition>" +
" <timeSinceEarliestUnpaidInvoiceEqualsOrExceeds>" +
" <unit>DAYS</unit><number>5</number>" +
@@ -97,7 +94,6 @@ public class TestOverdueWithOverdueEnforcementOffTag extends TestOverdueBase {
}
-
@Test(groups = "slow")
public void testOverdueAccountWithOverdueEnforcementOffTag() throws Exception {
@@ -134,7 +130,7 @@ public class TestOverdueWithOverdueEnforcementOffTag extends TestOverdueBase {
busHandler.pushExpectedEvent(NextEvent.TAG);
tagUserApi.removeTag(account.getId(), ObjectType.ACCOUNT, ControlTagType.OVERDUE_ENFORCEMENT_OFF.getId(), callContext);
busHandler.isCompleted(DELAY);
-
+
// Account should be back in overdue
checkODState("OD1");
}
diff --git a/beatrix/src/test/java/com/ning/billing/beatrix/integration/overdue/TestOverdueWithSubscriptionCancellation.java b/beatrix/src/test/java/com/ning/billing/beatrix/integration/overdue/TestOverdueWithSubscriptionCancellation.java
index 30da00b..64c73f0 100644
--- a/beatrix/src/test/java/com/ning/billing/beatrix/integration/overdue/TestOverdueWithSubscriptionCancellation.java
+++ b/beatrix/src/test/java/com/ning/billing/beatrix/integration/overdue/TestOverdueWithSubscriptionCancellation.java
@@ -13,9 +13,8 @@
* License for the specific language governing permissions and limitations
* under the License.
*/
-package com.ning.billing.beatrix.integration.overdue;
-import static junit.framework.Assert.assertTrue;
+package com.ning.billing.beatrix.integration.overdue;
import java.math.BigDecimal;
@@ -27,11 +26,13 @@ import com.ning.billing.api.TestApiListener.NextEvent;
import com.ning.billing.beatrix.util.InvoiceChecker.ExpectedInvoiceItemCheck;
import com.ning.billing.catalog.api.ProductCategory;
import com.ning.billing.entitlement.api.DefaultEntitlement;
-import com.ning.billing.subscription.api.user.Subscription;
-import com.ning.billing.subscription.api.user.SubscriptionState;
import com.ning.billing.invoice.api.InvoiceItemType;
+import com.ning.billing.subscription.api.SubscriptionBase;
+import com.ning.billing.subscription.api.user.SubscriptionState;
import com.ning.billing.util.svcapi.junction.DefaultBlockingState;
+import static junit.framework.Assert.assertTrue;
+
@Test(groups = "slow")
public class TestOverdueWithSubscriptionCancellation extends TestOverdueBase {
@@ -39,23 +40,23 @@ public class TestOverdueWithSubscriptionCancellation extends TestOverdueBase {
@Override
public String getOverdueConfig() {
final String configXml = "<overdueConfig>" +
- " <bundleOverdueStates>" +
- " <state name=\"OD1\">" +
- " <condition>" +
- " <timeSinceEarliestUnpaidInvoiceEqualsOrExceeds>" +
- " <unit>DAYS</unit><number>5</number>" +
- " </timeSinceEarliestUnpaidInvoiceEqualsOrExceeds>" +
- " </condition>" +
- " <externalMessage>Reached OD1</externalMessage>" +
- " <blockChanges>true</blockChanges>" +
- " <disableEntitlementAndChangesBlocked>false</disableEntitlementAndChangesBlocked>" +
- " <subscriptionCancellationPolicy>IMMEDIATE</subscriptionCancellationPolicy>" +
- " <autoReevaluationInterval>" +
- " <unit>DAYS</unit><number>5</number>" +
- " </autoReevaluationInterval>" +
- " </state>" +
- " </bundleOverdueStates>" +
- "</overdueConfig>";
+ " <bundleOverdueStates>" +
+ " <state name=\"OD1\">" +
+ " <condition>" +
+ " <timeSinceEarliestUnpaidInvoiceEqualsOrExceeds>" +
+ " <unit>DAYS</unit><number>5</number>" +
+ " </timeSinceEarliestUnpaidInvoiceEqualsOrExceeds>" +
+ " </condition>" +
+ " <externalMessage>Reached OD1</externalMessage>" +
+ " <blockChanges>true</blockChanges>" +
+ " <disableEntitlementAndChangesBlocked>false</disableEntitlementAndChangesBlocked>" +
+ " <subscriptionCancellationPolicy>IMMEDIATE</subscriptionCancellationPolicy>" +
+ " <autoReevaluationInterval>" +
+ " <unit>DAYS</unit><number>5</number>" +
+ " </autoReevaluationInterval>" +
+ " </state>" +
+ " </bundleOverdueStates>" +
+ "</overdueConfig>";
return configXml;
}
@@ -85,7 +86,7 @@ public class TestOverdueWithSubscriptionCancellation extends TestOverdueBase {
// Should be in OD1
checkODState("OD1");
- final Subscription cancelledBaseSubscription = ((DefaultEntitlement) entitlementApi.getEntitlementFromId(baseEntitlement.getId(), callContext)).getSubscription();
+ final SubscriptionBase cancelledBaseSubscription = ((DefaultEntitlement) entitlementApi.getEntitlementFromId(baseEntitlement.getId(), callContext)).getSubscription();
assertTrue(cancelledBaseSubscription.getState() == SubscriptionState.CANCELLED);
}
}
diff --git a/beatrix/src/test/java/com/ning/billing/beatrix/integration/TestIntegrationBase.java b/beatrix/src/test/java/com/ning/billing/beatrix/integration/TestIntegrationBase.java
index 2d9e56f..e47d93c 100644
--- a/beatrix/src/test/java/com/ning/billing/beatrix/integration/TestIntegrationBase.java
+++ b/beatrix/src/test/java/com/ning/billing/beatrix/integration/TestIntegrationBase.java
@@ -81,12 +81,11 @@ import com.ning.billing.payment.api.PaymentMethodKVInfo;
import com.ning.billing.payment.api.PaymentMethodPlugin;
import com.ning.billing.payment.api.TestPaymentMethodPluginBase;
import com.ning.billing.payment.provider.MockPaymentProviderPlugin;
+import com.ning.billing.subscription.api.SubscriptionBase;
import com.ning.billing.subscription.api.SubscriptionService;
import com.ning.billing.subscription.api.timeline.SubscriptionTimelineApi;
import com.ning.billing.subscription.api.transfer.SubscriptionTransferApi;
-import com.ning.billing.subscription.api.user.Subscription;
import com.ning.billing.subscription.api.user.SubscriptionData;
-import com.ning.billing.subscription.api.user.SubscriptionUserApiException;
import com.ning.billing.util.api.RecordIdApi;
import com.ning.billing.util.api.TagUserApi;
import com.ning.billing.util.cache.CacheControllerDispatcher;
@@ -289,7 +288,7 @@ public class TestIntegrationBase extends BeatrixTestSuiteWithEmbeddedDB implemen
final Entitlement entitlement = entitlementApi.getEntitlementFromId(subscriptionId, callContext);
- final Subscription subscription = ((DefaultEntitlement) entitlement).getSubscription();
+ final SubscriptionBase subscription = ((DefaultEntitlement) entitlement).getSubscription();
final DateTime ctd = subscription.getChargedThroughDate();
assertNotNull(ctd);
log.info("Checking CTD: " + ctd.toString() + "; clock is " + clock.getUTCNow().toString());
@@ -298,7 +297,7 @@ public class TestIntegrationBase extends BeatrixTestSuiteWithEmbeddedDB implemen
assertTrue(ctd.toDateTime(testTimeZone).toLocalDate().compareTo(new LocalDate(chargeThroughDate.getYear(), chargeThroughDate.getMonthOfYear(), chargeThroughDate.getDayOfMonth())) == 0);
}
- protected SubscriptionData subscriptionDataFromSubscription(final Subscription sub) {
+ protected SubscriptionData subscriptionDataFromSubscription(final SubscriptionBase sub) {
// STEPH_ENT
return (SubscriptionData) sub;
}
@@ -486,7 +485,7 @@ public class TestIntegrationBase extends BeatrixTestSuiteWithEmbeddedDB implemen
public Entitlement apply(@Nullable final Void dontcare) {
try {
final PlanPhaseSpecifier spec = new PlanPhaseSpecifier(productName, productCategory, billingPeriod, PriceListSet.DEFAULT_PRICELIST_NAME, null);
- final Entitlement entitlement = entitlementApi.createBaseEntitlement(accountId, spec, bundleExternalKey, callContext);
+ final Entitlement entitlement = entitlementApi.createBaseEntitlement(accountId, spec, bundleExternalKey, callContext);
assertNotNull(entitlement);
return entitlement;
} catch (EntitlementApiException e) {
@@ -498,10 +497,10 @@ public class TestIntegrationBase extends BeatrixTestSuiteWithEmbeddedDB implemen
}
protected DefaultEntitlement addAOEntitlementAndCheckForCompletion(final UUID basePlanId,
- final String productName,
- final ProductCategory productCategory,
- final BillingPeriod billingPeriod,
- final NextEvent... events) {
+ final String productName,
+ final ProductCategory productCategory,
+ final BillingPeriod billingPeriod,
+ final NextEvent... events) {
if (productCategory != ProductCategory.ADD_ON) {
throw new RuntimeException("Unexpected Call for creating a productCategory " + productCategory);
}
@@ -523,7 +522,6 @@ public class TestIntegrationBase extends BeatrixTestSuiteWithEmbeddedDB implemen
}
-
protected DefaultEntitlement changeEntitlementAndCheckForCompletion(final Entitlement entitlement,
final String productName,
final BillingPeriod billingPeriod,
@@ -538,7 +536,7 @@ public class TestIntegrationBase extends BeatrixTestSuiteWithEmbeddedDB implemen
if (billingPolicy == null) {
refreshedEntitlement.changePlan(productName, billingPeriod, PriceListSet.DEFAULT_PRICELIST_NAME, clock.getUTCNow().toLocalDate(), callContext);
} else {
- refreshedEntitlement.changePlanOverrideBillingPolicy(productName, billingPeriod, PriceListSet.DEFAULT_PRICELIST_NAME, clock.getUTCNow().toLocalDate(), billingPolicy ,callContext);
+ refreshedEntitlement.changePlanOverrideBillingPolicy(productName, billingPeriod, PriceListSet.DEFAULT_PRICELIST_NAME, clock.getUTCNow().toLocalDate(), billingPolicy, callContext);
}
return refreshedEntitlement;
} catch (EntitlementApiException e) {
@@ -550,8 +548,8 @@ public class TestIntegrationBase extends BeatrixTestSuiteWithEmbeddedDB implemen
}
protected DefaultEntitlement cancelEntitlementAndCheckForCompletion(final Entitlement entitlement,
- final DateTime requestedDate,
- final NextEvent... events) {
+ final DateTime requestedDate,
+ final NextEvent... events) {
return (DefaultEntitlement) doCallAndCheckForCompletion(new Function<Void, Entitlement>() {
@Override
public Entitlement apply(@Nullable final Void dontcare) {
diff --git a/beatrix/src/test/java/com/ning/billing/beatrix/util/InvoiceChecker.java b/beatrix/src/test/java/com/ning/billing/beatrix/util/InvoiceChecker.java
index 5caed82..f1d6290 100644
--- a/beatrix/src/test/java/com/ning/billing/beatrix/util/InvoiceChecker.java
+++ b/beatrix/src/test/java/com/ning/billing/beatrix/util/InvoiceChecker.java
@@ -36,7 +36,7 @@ import com.ning.billing.invoice.api.InvoiceApiException;
import com.ning.billing.invoice.api.InvoiceItem;
import com.ning.billing.invoice.api.InvoiceItemType;
import com.ning.billing.invoice.api.InvoiceUserApi;
-import com.ning.billing.subscription.api.user.Subscription;
+import com.ning.billing.subscription.api.SubscriptionBase;
import com.ning.billing.util.callcontext.CallContext;
import com.google.common.collect.ImmutableList;
@@ -128,7 +128,7 @@ public class InvoiceChecker {
public void checkChargedThroughDate(final UUID entitlementId, final LocalDate expectedLocalCTD, final CallContext context) {
try {
final DefaultEntitlement entitlement = (DefaultEntitlement) entitlementApi.getEntitlementFromId(entitlementId, context);
- final Subscription subscription = entitlement.getSubscription();
+ final SubscriptionBase subscription = entitlement.getSubscription();
if (expectedLocalCTD == null) {
assertNull(subscription.getChargedThroughDate());
} else {
diff --git a/beatrix/src/test/java/com/ning/billing/beatrix/util/SubscriptionChecker.java b/beatrix/src/test/java/com/ning/billing/beatrix/util/SubscriptionChecker.java
index e85c258..4c1f57c 100644
--- a/beatrix/src/test/java/com/ning/billing/beatrix/util/SubscriptionChecker.java
+++ b/beatrix/src/test/java/com/ning/billing/beatrix/util/SubscriptionChecker.java
@@ -25,7 +25,7 @@ import org.slf4j.Logger;
import org.slf4j.LoggerFactory;
import org.testng.Assert;
-import com.ning.billing.subscription.api.user.Subscription;
+import com.ning.billing.subscription.api.SubscriptionBase;
import com.ning.billing.subscription.api.user.SubscriptionBundle;
import com.ning.billing.subscription.api.user.SubscriptionTransition;
import com.ning.billing.subscription.api.user.SubscriptionTransitionData;
@@ -62,8 +62,8 @@ public class SubscriptionChecker {
return bundle;
}
- public Subscription checkSubscriptionCreated(final UUID subscriptionId, final InternalCallContext context) throws SubscriptionUserApiException {
- final Subscription subscription = subscriptionApi.getSubscriptionFromId(subscriptionId, context);
+ public SubscriptionBase checkSubscriptionCreated(final UUID subscriptionId, final InternalCallContext context) throws SubscriptionUserApiException {
+ final SubscriptionBase subscription = subscriptionApi.getSubscriptionFromId(subscriptionId, context);
Assert.assertNotNull(subscription);
auditChecker.checkSubscriptionCreated(subscription.getBundleId(), subscriptionId, context.toCallContext());
@@ -75,7 +75,7 @@ public class SubscriptionChecker {
return subscription;
}
- private List<SubscriptionTransition> getSubscriptionEvents(final Subscription subscription) {
+ private List<SubscriptionTransition> getSubscriptionEvents(final SubscriptionBase subscription) {
// STEPH_ENT
return subscription.getAllTransitions();
}
diff --git a/entitlement/src/main/java/com/ning/billing/entitlement/api/DefaultEntitlement.java b/entitlement/src/main/java/com/ning/billing/entitlement/api/DefaultEntitlement.java
index 035ebb0..ed1025d 100644
--- a/entitlement/src/main/java/com/ning/billing/entitlement/api/DefaultEntitlement.java
+++ b/entitlement/src/main/java/com/ning/billing/entitlement/api/DefaultEntitlement.java
@@ -25,32 +25,32 @@ import com.ning.billing.account.api.Account;
import com.ning.billing.account.api.AccountApiException;
import com.ning.billing.catalog.api.ActionPolicy;
import com.ning.billing.catalog.api.BillingPeriod;
+import com.ning.billing.catalog.api.Plan;
+import com.ning.billing.catalog.api.PlanPhase;
+import com.ning.billing.catalog.api.PriceList;
+import com.ning.billing.catalog.api.Product;
import com.ning.billing.catalog.api.ProductCategory;
import com.ning.billing.clock.Clock;
import com.ning.billing.entitlement.block.BlockingChecker;
-import com.ning.billing.subscription.api.user.Subscription;
-import com.ning.billing.subscription.api.user.SubscriptionBundle;
+import com.ning.billing.subscription.api.SubscriptionBase;
import com.ning.billing.subscription.api.user.SubscriptionUserApiException;
import com.ning.billing.util.callcontext.CallContext;
import com.ning.billing.util.callcontext.InternalCallContext;
import com.ning.billing.util.callcontext.InternalCallContextFactory;
import com.ning.billing.util.svcapi.account.AccountInternalApi;
-import com.ning.billing.util.svcapi.subscription.SubscriptionInternalApi;
import com.ning.billing.util.timezone.DateAndTimeZoneContext;
public class DefaultEntitlement implements Entitlement {
private final AccountInternalApi accountApi;
- private final SubscriptionInternalApi subscriptionInternalApi;
- private final Subscription subscription;
+ private final SubscriptionBase subscription;
private final InternalCallContextFactory internalCallContextFactory;
private final Clock clock;
private final BlockingChecker checker;
private final UUID accountId;
- public DefaultEntitlement(final AccountInternalApi accountApi, final SubscriptionInternalApi subscriptionInternalApi, final Subscription subscription, final UUID accountId, final InternalCallContextFactory internalCallContextFactory, final Clock clock, final BlockingChecker checker) {
+ public DefaultEntitlement(final AccountInternalApi accountApi, final SubscriptionBase subscription, final UUID accountId, final InternalCallContextFactory internalCallContextFactory, final Clock clock, final BlockingChecker checker) {
this.accountApi = accountApi;
- this.subscriptionInternalApi = subscriptionInternalApi;
this.subscription = subscription;
this.accountId = accountId;
this.internalCallContextFactory = internalCallContextFactory;
@@ -78,19 +78,15 @@ public class DefaultEntitlement implements Entitlement {
}
@Override
- public boolean cancel(final LocalDate localDate, final ActionPolicy actionPolicy, final CallContext callContext) throws EntitlementApiException {
- return false;
+ public boolean cancelEntitlementWithDateOverrideBillingPolicy(final LocalDate effectiveDate, final ActionPolicy billingPolicy, final CallContext context) throws EntitlementApiException {
+ return false; //To change body of implemented methods use File | Settings | File Templates.
}
@Override
- public boolean cancelEntitlementWithDateOverrideBillingPolicy(final EntitlementActionPolicy entitlementActionPolicy, final ActionPolicy actionPolicy, final CallContext callContext) throws EntitlementApiException {
- return false;
+ public boolean cancelEntitlementWithPolicyOverrideBillingPolicy(final EntitlementActionPolicy policy, final ActionPolicy billingPolicy, final CallContext context) throws EntitlementApiException {
+ return false; //To change body of implemented methods use File | Settings | File Templates.
}
- @Override
- public boolean uncancel(final CallContext callContext) throws EntitlementApiException {
- return false;
- }
@Override
public boolean changePlan(final String productName, final BillingPeriod billingPeriod, final String priceList, final LocalDate localDate, final CallContext callContext) throws EntitlementApiException {
@@ -135,7 +131,7 @@ public class DefaultEntitlement implements Entitlement {
return accountId;
}
- public Subscription getSubscription() {
+ public SubscriptionBase getSubscription() {
return subscription;
}
@@ -144,48 +140,85 @@ public class DefaultEntitlement implements Entitlement {
return subscription.getId();
}
- /*
- public SubscriptionSourceType getSourceType();
-
- public DateTime getStartDate();
-
- public DateTime getEndDate();
-
- public DateTime getFutureEndDate();
+ @Override
+ public String getExternalKey() {
+ return null; //To change body of implemented methods use File | Settings | File Templates.
+ }
- public Plan getCurrentPlan();
+ @Override
+ public EntitlementState getState() {
+ return null; //To change body of implemented methods use File | Settings | File Templates.
+ }
- public Plan getLastActivePlan();
+ @Override
+ public EntitlementSourceType getSourceType() {
+ return null; //To change body of implemented methods use File | Settings | File Templates.
+ }
- public PriceList getCurrentPriceList();
+ @Override
+ public LocalDate getEffectiveStartDate() {
+ return null; //To change body of implemented methods use File | Settings | File Templates.
+ }
- public PlanPhase getCurrentPhase();
+ @Override
+ public LocalDate getEffectiveEndDate() {
+ return null; //To change body of implemented methods use File | Settings | File Templates.
+ }
- public String getLastActiveProductName();
+ @Override
+ public LocalDate getRequestedEndDate() {
+ return null; //To change body of implemented methods use File | Settings | File Templates.
+ }
- public String getLastActivePriceListName();
+ @Override
+ public Product getProduct() {
+ return null; //To change body of implemented methods use File | Settings | File Templates.
+ }
- public String getLastActiveCategoryName();
+ @Override
+ public Plan getPlan() {
+ return null; //To change body of implemented methods use File | Settings | File Templates.
+ }
- public String getLastActiveBillingPeriod();
+ @Override
+ public PriceList getPriceList() {
+ return null; //To change body of implemented methods use File | Settings | File Templates.
+ }
- public DateTime getChargedThroughDate();
+ @Override
+ public PlanPhase getCurrentPhase() {
+ return null; //To change body of implemented methods use File | Settings | File Templates.
+ }
- public DateTime getPaidThroughDate();
+ @Override
+ public ProductCategory getProductCategory() {
+ return null; //To change body of implemented methods use File | Settings | File Templates.
+ }
- public ProductCategory getCategory();
+ @Override
+ public Product getLastActiveProduct() {
+ return null; //To change body of implemented methods use File | Settings | File Templates.
+ }
- public SubscriptionTransition getPendingTransition();
+ @Override
+ public Plan getLastActivePlan() {
+ return null; //To change body of implemented methods use File | Settings | File Templates.
+ }
- public SubscriptionTransition getPreviousTransition();
+ @Override
+ public PriceList getLastActivePriceList() {
+ return null; //To change body of implemented methods use File | Settings | File Templates.
+ }
- public List<SubscriptionTransition> getAllTransitions();
- */
+ @Override
+ public String getLastActiveProductCategory() {
+ return null; //To change body of implemented methods use File | Settings | File Templates.
+ }
/**
* Returns a DateTime that is equals or beforeNow and whose LocalDate using the account timeZone is the one provided
- *
+ * <p/>
* Relies on the subscriptionStartDate for the reference time
*
* @param requestedDate
diff --git a/entitlement/src/main/java/com/ning/billing/entitlement/api/DefaultEntitlementApi.java b/entitlement/src/main/java/com/ning/billing/entitlement/api/DefaultEntitlementApi.java
index 847b646..23d2189 100644
--- a/entitlement/src/main/java/com/ning/billing/entitlement/api/DefaultEntitlementApi.java
+++ b/entitlement/src/main/java/com/ning/billing/entitlement/api/DefaultEntitlementApi.java
@@ -24,16 +24,18 @@ import javax.annotation.Nullable;
import javax.inject.Inject;
import org.joda.time.DateTime;
+import org.joda.time.LocalDate;
import com.ning.billing.ErrorCode;
import com.ning.billing.account.api.Account;
import com.ning.billing.account.api.AccountApiException;
+import com.ning.billing.catalog.api.ActionPolicy;
import com.ning.billing.catalog.api.PlanPhaseSpecifier;
import com.ning.billing.catalog.api.ProductCategory;
import com.ning.billing.clock.Clock;
import com.ning.billing.entitlement.block.BlockingChecker;
import com.ning.billing.entitlement.dao.BlockingStateDao;
-import com.ning.billing.subscription.api.user.Subscription;
+import com.ning.billing.subscription.api.SubscriptionBase;
import com.ning.billing.subscription.api.user.SubscriptionBundle;
import com.ning.billing.subscription.api.user.SubscriptionState;
import com.ning.billing.subscription.api.user.SubscriptionUserApiException;
@@ -52,7 +54,6 @@ import com.google.common.collect.ImmutableList;
public class DefaultEntitlementApi implements EntitlementApi {
- private final BlockingStateDao dao;
private final SubscriptionInternalApi subscriptionInternalApi;
private final AccountInternalApi accountApi;
private final Clock clock;
@@ -60,8 +61,7 @@ public class DefaultEntitlementApi implements EntitlementApi {
private final BlockingChecker checker;
@Inject
- public DefaultEntitlementApi(final BlockingStateDao dao, final InternalCallContextFactory internalCallContextFactory, final SubscriptionInternalApi subscriptionInternalApi, final AccountInternalApi accountApi, final Clock clock, final BlockingChecker checker) {
- this.dao = dao;
+ public DefaultEntitlementApi(final InternalCallContextFactory internalCallContextFactory, final SubscriptionInternalApi subscriptionInternalApi, final AccountInternalApi accountApi, final Clock clock, final BlockingChecker checker) {
this.internalCallContextFactory = internalCallContextFactory;
this.subscriptionInternalApi = subscriptionInternalApi;
this.accountApi = accountApi;
@@ -75,8 +75,8 @@ public class DefaultEntitlementApi implements EntitlementApi {
final InternalCallContext context = internalCallContextFactory.createInternalCallContext(callContext);
try {
final SubscriptionBundle bundle = subscriptionInternalApi.createBundleForAccount(accountId, externalKey, context);
- final Subscription subscription = subscriptionInternalApi.createSubscription(bundle.getId(), planPhaseSpecifier, clock.getUTCNow(), context);
- return new DefaultEntitlement(accountApi, subscriptionInternalApi, subscription, accountId, internalCallContextFactory, clock, checker);
+ final SubscriptionBase subscription = subscriptionInternalApi.createSubscription(bundle.getId(), planPhaseSpecifier, clock.getUTCNow(), context);
+ return new DefaultEntitlement(accountApi, subscription, accountId, internalCallContextFactory, clock, checker);
} catch (SubscriptionUserApiException e) {
throw new EntitlementApiException(e);
}
@@ -86,7 +86,7 @@ public class DefaultEntitlementApi implements EntitlementApi {
public Entitlement addEntitlement(final UUID baseSubscriptionId, final PlanPhaseSpecifier planPhaseSpecifier, final CallContext callContext) throws EntitlementApiException {
final InternalCallContext context = internalCallContextFactory.createInternalCallContext(callContext);
try {
- final Subscription baseSubscription = subscriptionInternalApi.getSubscriptionFromId(baseSubscriptionId, context);
+ final SubscriptionBase baseSubscription = subscriptionInternalApi.getSubscriptionFromId(baseSubscriptionId, context);
if (baseSubscription.getCategory() != ProductCategory.BASE ||
baseSubscription.getState() != SubscriptionState.ACTIVE) {
throw new EntitlementApiException(new SubscriptionUserApiException(ErrorCode.SUB_GET_NO_SUCH_BASE_SUBSCRIPTION, baseSubscription.getBundleId()));
@@ -96,8 +96,8 @@ public class DefaultEntitlementApi implements EntitlementApi {
final InternalCallContext contextWithValidAccountRecordId = internalCallContextFactory.createInternalCallContext(bundle.getAccountId(), callContext);
final DateTime requestedDate = fromNowAndReferenceTime(baseSubscription.getStartDate(), contextWithValidAccountRecordId);
- final Subscription subscription = subscriptionInternalApi.createSubscription(baseSubscription.getBundleId(), planPhaseSpecifier, requestedDate, context);
- return new DefaultEntitlement(accountApi, subscriptionInternalApi, subscription, bundle.getAccountId(), internalCallContextFactory, clock, checker);
+ final SubscriptionBase subscription = subscriptionInternalApi.createSubscription(baseSubscription.getBundleId(), planPhaseSpecifier, requestedDate, context);
+ return new DefaultEntitlement(accountApi, subscription, bundle.getAccountId(), internalCallContextFactory, clock, checker);
} catch (SubscriptionUserApiException e) {
throw new EntitlementApiException(e);
}
@@ -107,67 +107,78 @@ public class DefaultEntitlementApi implements EntitlementApi {
public Entitlement getEntitlementFromId(final UUID uuid, final TenantContext tenantContext) throws EntitlementApiException {
final InternalTenantContext context = internalCallContextFactory.createInternalTenantContext(tenantContext);
try {
- final Subscription subscription = subscriptionInternalApi.getSubscriptionFromId(uuid, context);
+ final SubscriptionBase subscription = subscriptionInternalApi.getSubscriptionFromId(uuid, context);
final SubscriptionBundle bundle = subscriptionInternalApi.getBundleFromId(subscription.getBundleId(), context);
- return new DefaultEntitlement(accountApi, subscriptionInternalApi, subscription, bundle.getAccountId(), internalCallContextFactory, clock, checker);
+ return new DefaultEntitlement(accountApi, subscription, bundle.getAccountId(), internalCallContextFactory, clock, checker);
} catch (SubscriptionUserApiException e) {
throw new EntitlementApiException(e);
}
}
@Override
- public List<Entitlement> getAllEntitlementFromBaseId(final UUID baseSubscriptionId, final TenantContext tenantContext) throws EntitlementApiException {
+ public List<Entitlement> getAllEntitlementsFromBaseId(final UUID baseSubscriptionId, final TenantContext tenantContext) /* throws EntitlementApiException */ {
final InternalTenantContext context = internalCallContextFactory.createInternalTenantContext(tenantContext);
try {
- final Subscription baseSubscription = subscriptionInternalApi.getSubscriptionFromId(baseSubscriptionId, context);
+ final SubscriptionBase baseSubscription = subscriptionInternalApi.getSubscriptionFromId(baseSubscriptionId, context);
final SubscriptionBundle bundle = subscriptionInternalApi.getBundleFromId(baseSubscription.getBundleId(), context);
- return getAllEntitlementFromBundleId(baseSubscription.getBundleId(), bundle.getAccountId(), context);
+ return getAllEntitlementsFromBundleId(baseSubscription.getBundleId(), bundle.getAccountId(), context);
} catch (SubscriptionUserApiException e) {
- throw new EntitlementApiException(e);
+ //throw new EntitlementApiException(e);
+ return ImmutableList.<Entitlement>of();
}
}
@Override
- public List<Entitlement> getAllEntitlementForAccountIdAndExternalKey(final UUID accountId, final String externalKey, final TenantContext tenantContext) throws EntitlementApiException {
+ public List<Entitlement> getAllEntitlementsForAccountIdAndExternalKey(final UUID accountId, final String externalKey, final TenantContext tenantContext) throws EntitlementApiException {
final InternalTenantContext context = internalCallContextFactory.createInternalTenantContext(tenantContext);
try {
final SubscriptionBundle bundle = subscriptionInternalApi.getBundleForAccountAndKey(accountId, externalKey, context);
- return getAllEntitlementFromBundleId(bundle.getId(), bundle.getAccountId(), context);
+ return getAllEntitlementsFromBundleId(bundle.getId(), bundle.getAccountId(), context);
} catch (SubscriptionUserApiException e) {
throw new EntitlementApiException(e);
}
}
- private List<Entitlement> getAllEntitlementFromBundleId(final UUID bundleId, final UUID accountId, final InternalTenantContext context) throws EntitlementApiException {
- final List<Subscription> subscriptions = subscriptionInternalApi.getSubscriptionsForBundle(bundleId, context);
- return ImmutableList.<Entitlement>copyOf(Collections2.transform(subscriptions, new Function<Subscription, Entitlement>() {
+ private List<Entitlement> getAllEntitlementsFromBundleId(final UUID bundleId, final UUID accountId, final InternalTenantContext context) {
+ final List<SubscriptionBase> subscriptions = subscriptionInternalApi.getSubscriptionsForBundle(bundleId, context);
+ return ImmutableList.<Entitlement>copyOf(Collections2.transform(subscriptions, new Function<SubscriptionBase, Entitlement>() {
@Nullable
@Override
- public Entitlement apply(@Nullable final Subscription input) {
- return new DefaultEntitlement(accountApi, subscriptionInternalApi, input, accountId, internalCallContextFactory, clock, checker);
+ public Entitlement apply(@Nullable final SubscriptionBase input) {
+ return new DefaultEntitlement(accountApi, input, accountId, internalCallContextFactory, clock, checker);
}
}));
}
@Override
- public List<Entitlement> getAllEntitlementFromAccountId(final UUID accountId, final TenantContext tenantContext) throws EntitlementApiException {
+ public List<Entitlement> getAllEntitlementsFromAccountId(final UUID accountId, final TenantContext tenantContext) throws EntitlementApiException {
final List<Entitlement> result = new LinkedList<Entitlement>();
final InternalTenantContext context = internalCallContextFactory.createInternalTenantContext(tenantContext);
final List<SubscriptionBundle> bundles = subscriptionInternalApi.getBundlesForAccount(accountId, context);
for (final SubscriptionBundle bundle : bundles) {
- final List<Entitlement> entitlements = getAllEntitlementFromBundleId(bundle.getId(), bundle.getAccountId(), context);
+ final List<Entitlement> entitlements = getAllEntitlementsFromBundleId(bundle.getId(), bundle.getAccountId(), context);
result.addAll(entitlements);
}
return result;
}
@Override
- public List<BlockingState> getBlockingHistory(final UUID overdueableId, final TenantContext context) {
- return dao.getBlockingHistoryFor(overdueableId, internalCallContextFactory.createInternalTenantContext(context));
+ public UUID transferEntitlements(final UUID sourceAccountId, final UUID destAccountId, final String externalKey, final LocalDate effectiveDate, final CallContext context) throws EntitlementApiException {
+ return null; //To change body of implemented methods use File | Settings | File Templates.
+ }
+
+ @Override
+ public UUID transferEntitlementsOverrideBillingPolicy(final UUID sourceAccountId, final UUID destAccountId, final String externalKey, final LocalDate effectiveDate, final ActionPolicy billingPolicy, final CallContext context) throws EntitlementApiException {
+ return null; //To change body of implemented methods use File | Settings | File Templates.
+ }
+
+ @Override
+ public EntitlementBundleTimeline getEntitlementBundleTimeline(final UUID accountId, final String externalKey, final TenantContext context) throws EntitlementApiException {
+ return null; //To change body of implemented methods use File | Settings | File Templates.
}
private DateTime fromNowAndReferenceTime(final DateTime subscriptionStartDate, final InternalCallContext callContext) throws EntitlementApiException {
diff --git a/entitlement/src/main/java/com/ning/billing/entitlement/block/DefaultBlockingChecker.java b/entitlement/src/main/java/com/ning/billing/entitlement/block/DefaultBlockingChecker.java
index bcd5d94..32c6907 100644
--- a/entitlement/src/main/java/com/ning/billing/entitlement/block/DefaultBlockingChecker.java
+++ b/entitlement/src/main/java/com/ning/billing/entitlement/block/DefaultBlockingChecker.java
@@ -16,25 +16,27 @@
package com.ning.billing.entitlement.block;
-import com.google.inject.Inject;
+import java.util.UUID;
+
import com.ning.billing.ErrorCode;
import com.ning.billing.account.api.Account;
-import com.ning.billing.entitlement.dao.BlockingStateDao;
import com.ning.billing.entitlement.api.Blockable;
import com.ning.billing.entitlement.api.BlockingApiException;
import com.ning.billing.entitlement.api.BlockingState;
import com.ning.billing.entitlement.api.Type;
-import com.ning.billing.subscription.api.user.Subscription;
+import com.ning.billing.entitlement.dao.BlockingStateDao;
+import com.ning.billing.subscription.api.SubscriptionBase;
import com.ning.billing.subscription.api.user.SubscriptionBundle;
import com.ning.billing.subscription.api.user.SubscriptionUserApiException;
import com.ning.billing.util.callcontext.InternalTenantContext;
import com.ning.billing.util.svcapi.subscription.SubscriptionInternalApi;
-import java.util.UUID;
+import com.google.inject.Inject;
public class DefaultBlockingChecker implements BlockingChecker {
private static class BlockingAggregator {
+
private boolean blockChange = false;
private boolean blockEntitlement = false;
private boolean blockBilling = false;
@@ -89,11 +91,11 @@ public class DefaultBlockingChecker implements BlockingChecker {
}
private BlockingAggregator getBlockedStateSubscriptionId(final UUID subscriptionId, final InternalTenantContext context) throws SubscriptionUserApiException {
- final Subscription subscription = subscriptionApi.getSubscriptionFromId(subscriptionId, context);
+ final SubscriptionBase subscription = subscriptionApi.getSubscriptionFromId(subscriptionId, context);
return getBlockedStateSubscription(subscription, context);
}
- private BlockingAggregator getBlockedStateSubscription(final Subscription subscription, final InternalTenantContext context) throws SubscriptionUserApiException {
+ private BlockingAggregator getBlockedStateSubscription(final SubscriptionBase subscription, final InternalTenantContext context) throws SubscriptionUserApiException {
final BlockingAggregator result = new BlockingAggregator();
if (subscription != null) {
final BlockingAggregator subscriptionState = getBlockedStateForId(subscription.getId(), context);
@@ -147,7 +149,7 @@ public class DefaultBlockingChecker implements BlockingChecker {
@Override
public void checkBlockedChange(final Blockable blockable, final InternalTenantContext context) throws BlockingApiException {
try {
- if (blockable instanceof Subscription && getBlockedStateSubscription((Subscription) blockable, context).isBlockChange()) {
+ if (blockable instanceof SubscriptionBase && getBlockedStateSubscription((SubscriptionBase) blockable, context).isBlockChange()) {
throw new BlockingApiException(ErrorCode.BLOCK_BLOCKED_ACTION, ACTION_CHANGE, TYPE_SUBSCRIPTION, blockable.getId().toString());
} else if (blockable instanceof SubscriptionBundle && getBlockedStateBundle((SubscriptionBundle) blockable, context).isBlockChange()) {
throw new BlockingApiException(ErrorCode.BLOCK_BLOCKED_ACTION, ACTION_CHANGE, TYPE_BUNDLE, blockable.getId().toString());
@@ -162,7 +164,8 @@ public class DefaultBlockingChecker implements BlockingChecker {
@Override
public void checkBlockedEntitlement(final Blockable blockable, final InternalTenantContext context) throws BlockingApiException {
try {
- if (blockable instanceof Subscription && getBlockedStateSubscription((Subscription) blockable, context).isBlockEntitlement()) {
+ // STEPH_ENT
+ if (blockable instanceof SubscriptionBase && getBlockedStateSubscription((SubscriptionBase) blockable, context).isBlockEntitlement()) {
throw new BlockingApiException(ErrorCode.BLOCK_BLOCKED_ACTION, ACTION_ENTITLEMENT, TYPE_SUBSCRIPTION, blockable.getId().toString());
} else if (blockable instanceof SubscriptionBundle && getBlockedStateBundle((SubscriptionBundle) blockable, context).isBlockEntitlement()) {
throw new BlockingApiException(ErrorCode.BLOCK_BLOCKED_ACTION, ACTION_ENTITLEMENT, TYPE_BUNDLE, blockable.getId().toString());
@@ -177,7 +180,7 @@ public class DefaultBlockingChecker implements BlockingChecker {
@Override
public void checkBlockedBilling(final Blockable blockable, final InternalTenantContext context) throws BlockingApiException {
try {
- if (blockable instanceof Subscription && getBlockedStateSubscription((Subscription) blockable, context).isBlockBilling()) {
+ if (blockable instanceof SubscriptionBase && getBlockedStateSubscription((SubscriptionBase) blockable, context).isBlockBilling()) {
throw new BlockingApiException(ErrorCode.BLOCK_BLOCKED_ACTION, ACTION_BILLING, TYPE_SUBSCRIPTION, blockable.getId().toString());
} else if (blockable instanceof SubscriptionBundle && getBlockedStateBundle((SubscriptionBundle) blockable, context).isBlockBilling()) {
throw new BlockingApiException(ErrorCode.BLOCK_BLOCKED_ACTION, ACTION_BILLING, TYPE_BUNDLE, blockable.getId().toString());
diff --git a/entitlement/src/test/java/com/ning/billing/entitlement/block/TestBlockingChecker.java b/entitlement/src/test/java/com/ning/billing/entitlement/block/TestBlockingChecker.java
index 5892612..77f1a35 100644
--- a/entitlement/src/test/java/com/ning/billing/entitlement/block/TestBlockingChecker.java
+++ b/entitlement/src/test/java/com/ning/billing/entitlement/block/TestBlockingChecker.java
@@ -23,7 +23,7 @@ import com.ning.billing.entitlement.dao.MockBlockingStateDao;
import com.ning.billing.entitlement.api.BlockingApiException;
import com.ning.billing.entitlement.api.BlockingState;
import com.ning.billing.entitlement.api.Type;
-import com.ning.billing.subscription.api.user.Subscription;
+import com.ning.billing.subscription.api.SubscriptionBase;
import com.ning.billing.subscription.api.user.SubscriptionBundle;
import com.ning.billing.subscription.api.user.SubscriptionUserApiException;
import com.ning.billing.util.callcontext.InternalTenantContext;
@@ -38,7 +38,7 @@ public class TestBlockingChecker extends EntitlementTestSuiteNoDB {
private Account account;
private SubscriptionBundle bundle;
- private Subscription subscription;
+ private SubscriptionBase subscription;
@BeforeMethod(groups = "fast")
public void beforeMethod() throws Exception {
@@ -53,7 +53,7 @@ public class TestBlockingChecker extends EntitlementTestSuiteNoDB {
Mockito.when(bundle.getId()).thenReturn(bundleId);
Mockito.when(bundle.getExternalKey()).thenReturn("key");
- subscription = Mockito.mock(Subscription.class);
+ subscription = Mockito.mock(SubscriptionBase.class);
Mockito.when(subscription.getId()).thenReturn(UUID.randomUUID());
Mockito.when(subscription.getBundleId()).thenReturn(bundleId);
diff --git a/entitlement/src/test/java/com/ning/billing/entitlement/EntitlementTestSuiteNoDB.java b/entitlement/src/test/java/com/ning/billing/entitlement/EntitlementTestSuiteNoDB.java
index 6d583f0..8fc864e 100644
--- a/entitlement/src/test/java/com/ning/billing/entitlement/EntitlementTestSuiteNoDB.java
+++ b/entitlement/src/test/java/com/ning/billing/entitlement/EntitlementTestSuiteNoDB.java
@@ -26,8 +26,6 @@ import com.ning.billing.catalog.api.CatalogService;
import com.ning.billing.entitlement.block.BlockingChecker;
import com.ning.billing.entitlement.dao.BlockingStateDao;
import com.ning.billing.entitlement.glue.TestEntitlementModuleNoDB;
-import com.ning.billing.subscription.api.user.SubscriptionUserApi;
-import com.ning.billing.util.glue.RealImplementation;
import com.ning.billing.util.svcapi.account.AccountInternalApi;
import com.ning.billing.util.svcapi.junction.BlockingInternalApi;
import com.ning.billing.util.svcapi.subscription.SubscriptionInternalApi;
diff --git a/entitlement/src/test/java/com/ning/billing/entitlement/EntitlementTestSuiteWithEmbeddedDB.java b/entitlement/src/test/java/com/ning/billing/entitlement/EntitlementTestSuiteWithEmbeddedDB.java
index 085e40c..a2bf904 100644
--- a/entitlement/src/test/java/com/ning/billing/entitlement/EntitlementTestSuiteWithEmbeddedDB.java
+++ b/entitlement/src/test/java/com/ning/billing/entitlement/EntitlementTestSuiteWithEmbeddedDB.java
@@ -16,25 +16,24 @@
package com.ning.billing.entitlement;
-import com.google.inject.Guice;
-import com.google.inject.Inject;
-import com.google.inject.Injector;
+import org.testng.annotations.AfterMethod;
+import org.testng.annotations.BeforeClass;
+import org.testng.annotations.BeforeMethod;
+
import com.ning.billing.GuicyKillbillTestSuiteWithEmbeddedDB;
import com.ning.billing.bus.api.PersistentBus;
import com.ning.billing.catalog.api.CatalogService;
import com.ning.billing.entitlement.dao.BlockingStateDao;
import com.ning.billing.entitlement.glue.TestEntitlementModuleWithEmbeddedDB;
-import com.ning.billing.subscription.api.user.SubscriptionUserApi;
-import com.ning.billing.util.glue.RealImplementation;
import com.ning.billing.util.svcapi.account.AccountInternalApi;
-import com.ning.billing.util.svcapi.junction.BillingInternalApi;
import com.ning.billing.util.svcapi.junction.BlockingInternalApi;
import com.ning.billing.util.svcapi.subscription.SubscriptionInternalApi;
import com.ning.billing.util.svcapi.tag.TagInternalApi;
import com.ning.billing.util.tag.dao.TagDao;
-import org.testng.annotations.AfterMethod;
-import org.testng.annotations.BeforeClass;
-import org.testng.annotations.BeforeMethod;
+
+import com.google.inject.Guice;
+import com.google.inject.Inject;
+import com.google.inject.Injector;
public class EntitlementTestSuiteWithEmbeddedDB extends GuicyKillbillTestSuiteWithEmbeddedDB {
diff --git a/invoice/src/main/java/com/ning/billing/invoice/InvoiceDispatcher.java b/invoice/src/main/java/com/ning/billing/invoice/InvoiceDispatcher.java
index 2d85364..1425ff5 100644
--- a/invoice/src/main/java/com/ning/billing/invoice/InvoiceDispatcher.java
+++ b/invoice/src/main/java/com/ning/billing/invoice/InvoiceDispatcher.java
@@ -124,13 +124,13 @@ public class InvoiceDispatcher {
public void processSubscription(final UUID subscriptionId, final DateTime targetDate, final InternalCallContext context) throws InvoiceApiException {
try {
if (subscriptionId == null) {
- log.error("Failed handling Subscription change.", new InvoiceApiException(ErrorCode.INVOICE_INVALID_TRANSITION));
+ log.error("Failed handling SubscriptionBase change.", new InvoiceApiException(ErrorCode.INVOICE_INVALID_TRANSITION));
return;
}
final UUID accountId = subscriptionApi.getAccountIdFromSubscriptionId(subscriptionId, context);
processAccount(accountId, targetDate, false, context);
} catch (SubscriptionUserApiException e) {
- log.error("Failed handling Subscription change.",
+ log.error("Failed handling SubscriptionBase change.",
new InvoiceApiException(ErrorCode.INVOICE_NO_ACCOUNT_ID_FOR_SUBSCRIPTION_ID, subscriptionId.toString()));
}
}
@@ -259,7 +259,7 @@ public class InvoiceDispatcher {
return invoice;
} catch (AccountApiException e) {
- log.error("Failed handling Subscription change.", e);
+ log.error("Failed handling SubscriptionBase change.", e);
return null;
}
}
diff --git a/invoice/src/main/java/com/ning/billing/invoice/notification/DefaultNextBillingDateNotifier.java b/invoice/src/main/java/com/ning/billing/invoice/notification/DefaultNextBillingDateNotifier.java
index 353d8e6..28f6ceb 100644
--- a/invoice/src/main/java/com/ning/billing/invoice/notification/DefaultNextBillingDateNotifier.java
+++ b/invoice/src/main/java/com/ning/billing/invoice/notification/DefaultNextBillingDateNotifier.java
@@ -23,7 +23,7 @@ import org.slf4j.Logger;
import org.slf4j.LoggerFactory;
import com.ning.billing.subscription.api.user.SubscriptionUserApiException;
-import com.ning.billing.subscription.api.user.Subscription;
+import com.ning.billing.subscription.api.SubscriptionBase;
import com.ning.billing.invoice.InvoiceListener;
import com.ning.billing.invoice.api.DefaultInvoiceService;
import com.ning.billing.notificationq.api.NotificationEvent;
@@ -79,7 +79,7 @@ public class DefaultNextBillingDateNotifier implements NextBillingDateNotifier {
final NextBillingDateNotificationKey key = (NextBillingDateNotificationKey) notificationKey;
try {
- final Subscription subscription = subscriptionApi.getSubscriptionFromId(key.getUuidKey(), callContextFactory.createInternalTenantContext(tenantRecordId, accountRecordId));
+ final SubscriptionBase subscription = subscriptionApi.getSubscriptionFromId(key.getUuidKey(), callContextFactory.createInternalTenantContext(tenantRecordId, accountRecordId));
if (subscription == null) {
log.warn("Next Billing Date Notification Queue handled spurious notification (key: " + key + ")");
} else {
diff --git a/invoice/src/test/java/com/ning/billing/invoice/dao/TestInvoiceDao.java b/invoice/src/test/java/com/ning/billing/invoice/dao/TestInvoiceDao.java
index 615016b..c3ae3df 100644
--- a/invoice/src/test/java/com/ning/billing/invoice/dao/TestInvoiceDao.java
+++ b/invoice/src/test/java/com/ning/billing/invoice/dao/TestInvoiceDao.java
@@ -43,7 +43,7 @@ import com.ning.billing.catalog.api.PhaseType;
import com.ning.billing.catalog.api.Plan;
import com.ning.billing.catalog.api.PlanPhase;
import com.ning.billing.subscription.api.SubscriptionTransitionType;
-import com.ning.billing.subscription.api.user.Subscription;
+import com.ning.billing.subscription.api.SubscriptionBase;
import com.ning.billing.invoice.InvoiceTestSuiteWithEmbeddedDB;
import com.ning.billing.invoice.MockBillingEventSet;
import com.ning.billing.invoice.api.Invoice;
@@ -1080,7 +1080,7 @@ public class TestInvoiceDao extends InvoiceTestSuiteWithEmbeddedDB {
final MockPlanPhase phase1 = new MockPlanPhase(recurringPrice, null, BillingPeriod.MONTHLY, PhaseType.TRIAL);
final MockPlan plan1 = new MockPlan(phase1);
- final Subscription subscription = getZombieSubscription();
+ final SubscriptionBase subscription = getZombieSubscription();
final DateTime effectiveDate1 = new DateTime(2011, 2, 1, 0, 0, 0);
final BillingEvent event1 = invoiceUtil.createMockBillingEvent(null, subscription, effectiveDate1, plan1, phase1, null,
@@ -1130,7 +1130,7 @@ public class TestInvoiceDao extends InvoiceTestSuiteWithEmbeddedDB {
final MockPlanPhase phase = new MockPlanPhase(recurringPrice, null);
final MockPlan plan = new MockPlan(phase);
- final Subscription subscription = getZombieSubscription();
+ final SubscriptionBase subscription = getZombieSubscription();
final DateTime effectiveDate = invoiceUtil.buildDate(2011, 1, 1).toDateTimeAtStartOfDay();
final BillingEvent event = invoiceUtil.createMockBillingEvent(null, subscription, effectiveDate, plan, phase, null,
@@ -1147,8 +1147,8 @@ public class TestInvoiceDao extends InvoiceTestSuiteWithEmbeddedDB {
assertEquals(invoice.getBalance().compareTo(ZERO), 0);
}
- private Subscription getZombieSubscription() {
- final Subscription subscription = Mockito.mock(Subscription.class);
+ private SubscriptionBase getZombieSubscription() {
+ final SubscriptionBase subscription = Mockito.mock(SubscriptionBase.class);
Mockito.when(subscription.getId()).thenReturn(UUID.randomUUID());
Mockito.when(subscription.getBundleId()).thenReturn(UUID.randomUUID());
return subscription;
@@ -1169,7 +1169,7 @@ public class TestInvoiceDao extends InvoiceTestSuiteWithEmbeddedDB {
final MockPlan plan = new MockPlan();
- final Subscription subscription = getZombieSubscription();
+ final SubscriptionBase subscription = getZombieSubscription();
final DateTime effectiveDate1 = invoiceUtil.buildDate(2011, 1, 1).toDateTimeAtStartOfDay();
final BillingEvent event1 = invoiceUtil.createMockBillingEvent(null, subscription, effectiveDate1, plan, phase1, fixedPrice.getPrice(currency),
@@ -1234,7 +1234,7 @@ public class TestInvoiceDao extends InvoiceTestSuiteWithEmbeddedDB {
final MockPlan plan = new MockPlan();
- final Subscription subscription = getZombieSubscription();
+ final SubscriptionBase subscription = getZombieSubscription();
final DateTime effectiveDate1 = invoiceUtil.buildDate(2011, 1, 1).toDateTimeAtStartOfDay();
final BillingEvent event1 = invoiceUtil.createMockBillingEvent(null, subscription, effectiveDate1, plan, phase1,
@@ -1309,7 +1309,7 @@ public class TestInvoiceDao extends InvoiceTestSuiteWithEmbeddedDB {
// NOW COMPUTE A DIFFERENT ITEM TO TRIGGER REPAIR
final BillingEventSet events = new MockBillingEventSet();
- final Subscription subscription = getZombieSubscription();
+ final SubscriptionBase subscription = getZombieSubscription();
final Plan plan = Mockito.mock(Plan.class);
Mockito.when(plan.getName()).thenReturn("plan");
@@ -1340,7 +1340,7 @@ public class TestInvoiceDao extends InvoiceTestSuiteWithEmbeddedDB {
final DateTime targetDate1 = clock.getUTCNow().plusMonths(1);
final DateTime targetDate2 = clock.getUTCNow().plusMonths(2);
- final Subscription subscription = getZombieSubscription();
+ final SubscriptionBase subscription = getZombieSubscription();
final Plan plan = Mockito.mock(Plan.class);
Mockito.when(plan.getName()).thenReturn("plan");
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 046b5c4..3a90552 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
@@ -44,7 +44,7 @@ import com.ning.billing.catalog.api.PhaseType;
import com.ning.billing.catalog.api.Plan;
import com.ning.billing.catalog.api.PlanPhase;
import com.ning.billing.subscription.api.SubscriptionTransitionType;
-import com.ning.billing.subscription.api.user.Subscription;
+import com.ning.billing.subscription.api.SubscriptionBase;
import com.ning.billing.invoice.InvoiceTestSuiteNoDB;
import com.ning.billing.invoice.MockBillingEventSet;
import com.ning.billing.invoice.api.Invoice;
@@ -125,7 +125,7 @@ public class TestDefaultInvoiceGenerator extends InvoiceTestSuiteNoDB {
public void testWithSingleMonthlyEvent() throws InvoiceApiException, CatalogApiException {
final BillingEventSet events = new MockBillingEventSet();
- final Subscription sub = createZombieSubscription();
+ final SubscriptionBase sub = createZombieSubscription();
final LocalDate startDate = invoiceUtil.buildDate(2011, 9, 1);
final Plan plan = new MockPlan();
@@ -145,12 +145,12 @@ public class TestDefaultInvoiceGenerator extends InvoiceTestSuiteNoDB {
assertEquals(invoice.getInvoiceItems().get(0).getSubscriptionId(), sub.getId());
}
- private Subscription createZombieSubscription() {
+ private SubscriptionBase createZombieSubscription() {
return createZombieSubscription(UUID.randomUUID(), UUID.randomUUID());
}
- private Subscription createZombieSubscription(final UUID subscriptionId, final UUID bundleId) {
- final Subscription sub = Mockito.mock(Subscription.class);
+ private SubscriptionBase createZombieSubscription(final UUID subscriptionId, final UUID bundleId) {
+ final SubscriptionBase sub = Mockito.mock(SubscriptionBase.class);
Mockito.when(sub.getId()).thenReturn(subscriptionId);
Mockito.when(sub.getBundleId()).thenReturn(bundleId);
@@ -160,7 +160,7 @@ public class TestDefaultInvoiceGenerator extends InvoiceTestSuiteNoDB {
@Test(groups = "fast")
public void testSimpleWithTimeZone() throws InvoiceApiException, CatalogApiException {
final UUID accountId = UUID.randomUUID();
- final Subscription sub = createZombieSubscription();
+ final SubscriptionBase sub = createZombieSubscription();
final Plan plan = new MockPlan();
final BigDecimal rate = TEN;
final PlanPhase phase = createMockMonthlyPlanPhase(rate);
@@ -188,7 +188,7 @@ public class TestDefaultInvoiceGenerator extends InvoiceTestSuiteNoDB {
@Test(groups = "fast")
public void testSimpleWithSingleDiscountEvent() throws Exception {
final UUID accountId = UUID.randomUUID();
- final Subscription sub = createZombieSubscription();
+ final SubscriptionBase sub = createZombieSubscription();
final Plan plan = new MockPlan("Plan with a single discount phase");
final PlanPhase phaseEvergreen = createMockMonthlyPlanPhase(EIGHT, PhaseType.DISCOUNT);
final int bcdLocal = 16;
@@ -211,7 +211,7 @@ public class TestDefaultInvoiceGenerator extends InvoiceTestSuiteNoDB {
public void testWithSingleMonthlyEventWithLeadingProRation() throws InvoiceApiException, CatalogApiException {
final BillingEventSet events = new MockBillingEventSet();
- final Subscription sub = createZombieSubscription();
+ final SubscriptionBase sub = createZombieSubscription();
final LocalDate startDate = invoiceUtil.buildDate(2011, 9, 1);
final Plan plan = new MockPlan();
@@ -245,7 +245,7 @@ public class TestDefaultInvoiceGenerator extends InvoiceTestSuiteNoDB {
final BigDecimal rate2 = TEN;
final PlanPhase phase2 = createMockMonthlyPlanPhase(rate2);
- final Subscription sub = createZombieSubscription();
+ final SubscriptionBase sub = createZombieSubscription();
final BillingEvent event1 = createBillingEvent(sub.getId(), sub.getBundleId(), invoiceUtil.buildDate(2011, 9, 1), plan1, phase1, 1);
events.add(event1);
@@ -270,7 +270,7 @@ public class TestDefaultInvoiceGenerator extends InvoiceTestSuiteNoDB {
final BigDecimal rate1 = FIVE;
final PlanPhase phase1 = createMockMonthlyPlanPhase(rate1);
- final Subscription sub = createZombieSubscription();
+ final SubscriptionBase sub = createZombieSubscription();
final BillingEvent event1 = createBillingEvent(sub.getId(), sub.getBundleId(), invoiceUtil.buildDate(2011, 9, 1), plan1, phase1, 1);
events.add(event1);
@@ -307,7 +307,7 @@ public class TestDefaultInvoiceGenerator extends InvoiceTestSuiteNoDB {
final BigDecimal rate1 = FIVE;
final PlanPhase phase1 = createMockMonthlyPlanPhase(rate1);
- final Subscription sub = createZombieSubscription();
+ final SubscriptionBase sub = createZombieSubscription();
final BillingEvent event1 = createBillingEvent(sub.getId(), sub.getBundleId(), invoiceUtil.buildDate(2011, 9, 1), plan1, phase1, 1);
events.add(event1);
@@ -334,7 +334,7 @@ public class TestDefaultInvoiceGenerator extends InvoiceTestSuiteNoDB {
public void testSingleEventWithExistingInvoice() throws InvoiceApiException, CatalogApiException {
final BillingEventSet events = new MockBillingEventSet();
- final Subscription sub = createZombieSubscription();
+ final SubscriptionBase sub = createZombieSubscription();
final LocalDate startDate = invoiceUtil.buildDate(2011, 9, 1);
final Plan plan1 = new MockPlan();
@@ -412,59 +412,59 @@ public class TestDefaultInvoiceGenerator extends InvoiceTestSuiteNoDB {
final List<Invoice> invoices = new ArrayList<Invoice>();
final BillingEventSet events = new MockBillingEventSet();
- // on 1/5/2011, create subscription 1 (trial)
+ // on 1/5/2011, create SubscriptionBase 1 (trial)
events.add(createBillingEvent(subscriptionId1, bundleId, plan1StartDate, plan1, plan1Phase1, 5));
expectedAmount = EIGHT;
testInvoiceGeneration(accountId, events, invoices, plan1StartDate, 1, expectedAmount);
- // on 2/5/2011, invoice subscription 1 (trial)
+ // on 2/5/2011, invoice SubscriptionBase 1 (trial)
expectedAmount = EIGHT;
testInvoiceGeneration(accountId, events, invoices, invoiceUtil.buildDate(2011, 2, 5), 1, expectedAmount);
- // on 3/5/2011, invoice subscription 1 (trial)
+ // on 3/5/2011, invoice SubscriptionBase 1 (trial)
expectedAmount = EIGHT;
testInvoiceGeneration(accountId, events, invoices, invoiceUtil.buildDate(2011, 3, 5), 1, expectedAmount);
- // on 3/10/2011, create subscription 2 (trial)
+ // on 3/10/2011, create SubscriptionBase 2 (trial)
events.add(createBillingEvent(subscriptionId2, bundleId, plan2StartDate, plan2, plan2Phase1, 10));
expectedAmount = TWENTY;
testInvoiceGeneration(accountId, events, invoices, plan2StartDate, 1, expectedAmount);
- // on 4/5/2011, invoice subscription 1 (discount)
+ // on 4/5/2011, invoice SubscriptionBase 1 (discount)
events.add(createBillingEvent(subscriptionId1, bundleId, plan1PhaseChangeDate, plan1, plan1Phase2, 5));
expectedAmount = TWELVE;
testInvoiceGeneration(accountId, events, invoices, plan1PhaseChangeDate, 1, expectedAmount);
- // on 4/10/2011, invoice subscription 2 (trial)
+ // on 4/10/2011, invoice SubscriptionBase 2 (trial)
expectedAmount = TWENTY;
testInvoiceGeneration(accountId, events, invoices, invoiceUtil.buildDate(2011, 4, 10), 1, expectedAmount);
- // on 4/29/2011, cancel subscription 1
+ // on 4/29/2011, cancel SubscriptionBase 1
events.add(createBillingEvent(subscriptionId1, bundleId, plan1CancelDate, plan1, plan1Phase3, 5));
expectedAmount = ZERO;
testInvoiceGeneration(accountId, events, invoices, plan1CancelDate, 1, expectedAmount);
- // on 5/10/2011, invoice subscription 2 (trial)
+ // on 5/10/2011, invoice SubscriptionBase 2 (trial)
expectedAmount = TWENTY;
testInvoiceGeneration(accountId, events, invoices, invoiceUtil.buildDate(2011, 5, 10), 1, expectedAmount);
- // on 5/20/2011, create subscription 3 (monthly)
+ // on 5/20/2011, create SubscriptionBase 3 (monthly)
events.add(createBillingEvent(subscriptionId3, bundleId, plan3StartDate, plan3, plan3Phase1, 20));
expectedAmount = TEN;
testInvoiceGeneration(accountId, events, invoices, plan3StartDate, 1, expectedAmount);
- // on 6/7/2011, create subscription 4
+ // on 6/7/2011, create SubscriptionBase 4
events.add(createBillingEvent(subscriptionId4, bundleId, plan4StartDate, plan4a, plan4aPhase1, 7));
expectedAmount = FIFTEEN;
testInvoiceGeneration(accountId, events, invoices, plan4StartDate, 1, expectedAmount);
- // on 6/10/2011, invoice subscription 2 (discount)
+ // on 6/10/2011, invoice SubscriptionBase 2 (discount)
events.add(createBillingEvent(subscriptionId2, bundleId, plan2PhaseChangeToDiscountDate, plan2, plan2Phase2, 10));
expectedAmount = THIRTY;
testInvoiceGeneration(accountId, events, invoices, plan2PhaseChangeToDiscountDate, 1, expectedAmount);
- // on 6/20/2011, invoice subscription 3 (monthly)
+ // on 6/20/2011, invoice SubscriptionBase 3 (monthly)
expectedAmount = TEN;
testInvoiceGeneration(accountId, events, invoices, invoiceUtil.buildDate(2011, 6, 20), 1, expectedAmount);
@@ -473,41 +473,41 @@ public class TestDefaultInvoiceGenerator extends InvoiceTestSuiteNoDB {
expectedAmount = TWENTY.multiply(NINETEEN).divide(THIRTY, NUMBER_OF_DECIMALS, ROUNDING_METHOD);
testInvoiceGeneration(accountId, events, invoices, plan5StartDate, 1, expectedAmount);
- // on 7/7/2011, invoice subscription 4 (plan 1)
+ // on 7/7/2011, invoice SubscriptionBase 4 (plan 1)
expectedAmount = FIFTEEN;
testInvoiceGeneration(accountId, events, invoices, invoiceUtil.buildDate(2011, 7, 7), 1, expectedAmount);
- // on 7/10/2011, invoice subscription 2 (discount), invoice subscription 5
+ // on 7/10/2011, invoice SubscriptionBase 2 (discount), invoice SubscriptionBase 5
expectedAmount = THIRTY.add(TWENTY);
testInvoiceGeneration(accountId, events, invoices, invoiceUtil.buildDate(2011, 7, 10), 2, expectedAmount);
- // on 7/20/2011, invoice subscription 3 (monthly)
+ // on 7/20/2011, invoice SubscriptionBase 3 (monthly)
expectedAmount = TEN;
testInvoiceGeneration(accountId, events, invoices, invoiceUtil.buildDate(2011, 7, 20), 1, expectedAmount);
- // on 7/31/2011, convert subscription 3 to annual
+ // on 7/31/2011, convert SubscriptionBase 3 to annual
events.add(createBillingEvent(subscriptionId3, bundleId, plan3UpgradeToAnnualDate, plan3, plan3Phase2, 31));
testInvoiceGeneration(accountId, events, invoices, plan3UpgradeToAnnualDate, 2, ONE_HUNDRED);
- // on 8/7/2011, invoice subscription 4 (plan 2)
+ // on 8/7/2011, invoice SubscriptionBase 4 (plan 2)
events.add(createBillingEvent(subscriptionId4, bundleId, plan4ChangeOfPlanDate, plan4b, plan4bPhase1, 7));
expectedAmount = TWENTY_FOUR;
testInvoiceGeneration(accountId, events, invoices, plan4ChangeOfPlanDate, 1, expectedAmount);
- // on 8/10/2011, invoice plan 2 (discount), invoice subscription 5
+ // on 8/10/2011, invoice plan 2 (discount), invoice SubscriptionBase 5
expectedAmount = THIRTY.add(TWENTY);
testInvoiceGeneration(accountId, events, invoices, invoiceUtil.buildDate(2011, 8, 10), 2, expectedAmount);
- // on 9/7/2011, invoice subscription 4 (plan 2)
+ // on 9/7/2011, invoice SubscriptionBase 4 (plan 2)
expectedAmount = TWENTY_FOUR;
testInvoiceGeneration(accountId, events, invoices, invoiceUtil.buildDate(2011, 9, 7), 1, expectedAmount);
- // on 9/10/2011, invoice plan 2 (evergreen), invoice subscription 5
+ // on 9/10/2011, invoice plan 2 (evergreen), invoice SubscriptionBase 5
events.add(createBillingEvent(subscriptionId2, bundleId, plan2PhaseChangeToEvergreenDate, plan2, plan2Phase3, 10));
expectedAmount = FORTY.add(TWENTY);
testInvoiceGeneration(accountId, events, invoices, plan2PhaseChangeToEvergreenDate, 2, expectedAmount);
- // on 10/7/2011, invoice subscription 4 (plan 2), cancel subscription 5
+ // on 10/7/2011, invoice SubscriptionBase 4 (plan 2), cancel SubscriptionBase 5
events.add(createBillingEvent(subscriptionId5, bundleId, plan5CancelDate, plan5, plan5Phase2, 10));
testInvoiceGeneration(accountId, events, invoices, plan5CancelDate, 2, TWENTY_FOUR);
@@ -549,7 +549,7 @@ public class TestDefaultInvoiceGenerator extends InvoiceTestSuiteNoDB {
@Test(groups = "fast")
public void testFixedPriceLifeCycle() throws InvoiceApiException {
final UUID accountId = UUID.randomUUID();
- final Subscription subscription = createZombieSubscription();
+ final SubscriptionBase subscription = createZombieSubscription();
final Plan plan = new MockPlan("plan 1");
final MockInternationalPrice zeroPrice = new MockInternationalPrice(new DefaultPrice(ZERO, Currency.USD));
@@ -591,7 +591,7 @@ public class TestDefaultInvoiceGenerator extends InvoiceTestSuiteNoDB {
@Test(groups = "fast")
public void testMixedModeLifeCycle() throws InvoiceApiException, CatalogApiException {
- // create a subscription with a fixed price and recurring price
+ // create a SubscriptionBase with a fixed price and recurring price
final Plan plan1 = new MockPlan();
final BigDecimal monthlyRate = FIVE;
final BigDecimal fixedCost = TEN;
@@ -627,7 +627,7 @@ public class TestDefaultInvoiceGenerator extends InvoiceTestSuiteNoDB {
@Test(groups = "fast")
public void testFixedModePlanChange() throws InvoiceApiException, CatalogApiException {
- // create a subscription with a fixed price and recurring price
+ // create a SubscriptionBase with a fixed price and recurring price
final Plan plan1 = new MockPlan();
final BigDecimal fixedCost1 = TEN;
final BigDecimal fixedCost2 = TWENTY;
@@ -672,7 +672,7 @@ public class TestDefaultInvoiceGenerator extends InvoiceTestSuiteNoDB {
final UUID bundleId = UUID.randomUUID();
final int BILL_CYCLE_DAY = 15;
- // create subscription with a zero-dollar trial, a monthly discount period and a monthly evergreen
+ // create SubscriptionBase with a zero-dollar trial, a monthly discount period and a monthly evergreen
final Plan plan1 = new MockPlan();
final PlanPhase phase1 = createMockMonthlyPlanPhase(null, ZERO, PhaseType.TRIAL);
final BigDecimal DISCOUNT_PRICE = new BigDecimal("9.95");
@@ -760,7 +760,7 @@ public class TestDefaultInvoiceGenerator extends InvoiceTestSuiteNoDB {
private BillingEvent createBillingEvent(final UUID subscriptionId, final UUID bundleId, final LocalDate startDate,
final Plan plan, final PlanPhase planPhase, final int billCycleDayLocal) throws CatalogApiException {
- final Subscription sub = createZombieSubscription(subscriptionId, bundleId);
+ final SubscriptionBase sub = createZombieSubscription(subscriptionId, bundleId);
final Currency currency = Currency.USD;
return invoiceUtil.createMockBillingEvent(null, sub, startDate.toDateTimeAtStartOfDay(), plan, planPhase,
@@ -789,7 +789,7 @@ public class TestDefaultInvoiceGenerator extends InvoiceTestSuiteNoDB {
// create a base plan on April 25th
final UUID accountId = UUID.randomUUID();
- final Subscription baseSubscription = createZombieSubscription();
+ final SubscriptionBase baseSubscription = createZombieSubscription();
final Plan basePlan = new MockPlan("base Plan");
final MockInternationalPrice price5 = new MockInternationalPrice(new DefaultPrice(FIVE, Currency.USD));
@@ -811,12 +811,12 @@ public class TestDefaultInvoiceGenerator extends InvoiceTestSuiteNoDB {
// create 2 add ons on April 28th
final LocalDate april28 = new LocalDate(2012, 4, 28);
- final Subscription addOnSubscription1 = createZombieSubscription();
+ final SubscriptionBase addOnSubscription1 = createZombieSubscription();
final Plan addOn1Plan = new MockPlan("add on 1");
final PlanPhase addOn1PlanPhaseEvergreen = new MockPlanPhase(price5, null, BillingPeriod.MONTHLY, PhaseType.EVERGREEN);
events.add(createBillingEvent(addOnSubscription1.getId(), baseSubscription.getBundleId(), april28, addOn1Plan, addOn1PlanPhaseEvergreen, 25));
- final Subscription addOnSubscription2 = createZombieSubscription();
+ final SubscriptionBase addOnSubscription2 = createZombieSubscription();
final Plan addOn2Plan = new MockPlan("add on 2");
final PlanPhase addOn2PlanPhaseEvergreen = new MockPlanPhase(price20, null, BillingPeriod.MONTHLY, PhaseType.EVERGREEN);
events.add(createBillingEvent(addOnSubscription2.getId(), baseSubscription.getBundleId(), april28, addOn2Plan, addOn2PlanPhaseEvergreen, 25));
@@ -854,7 +854,7 @@ public class TestDefaultInvoiceGenerator extends InvoiceTestSuiteNoDB {
// create a base plan on April 25th
final UUID accountId = UUID.randomUUID();
- final Subscription originalSubscription = createZombieSubscription();
+ final SubscriptionBase originalSubscription = createZombieSubscription();
final Plan originalPlan = new MockPlan("original plan");
final MockInternationalPrice price10 = new MockInternationalPrice(new DefaultPrice(TEN, Currency.USD));
@@ -877,7 +877,7 @@ public class TestDefaultInvoiceGenerator extends InvoiceTestSuiteNoDB {
// change the plan (i.e. repair) on start date
events.clear();
- final Subscription newSubscription = createZombieSubscription();
+ final SubscriptionBase newSubscription = createZombieSubscription();
final Plan newPlan = new MockPlan("new plan");
final MockInternationalPrice price5 = new MockInternationalPrice(new DefaultPrice(FIVE, Currency.USD));
final PlanPhase newPlanEvergreen = new MockPlanPhase(price5, null, BillingPeriod.MONTHLY, PhaseType.EVERGREEN);
@@ -931,7 +931,7 @@ public class TestDefaultInvoiceGenerator extends InvoiceTestSuiteNoDB {
final MockBillingEventSet events = new MockBillingEventSet();
events.setAccountInvoiceOff(true);
- final Subscription sub = createZombieSubscription();
+ final SubscriptionBase sub = createZombieSubscription();
final LocalDate startDate = invoiceUtil.buildDate(2011, 9, 1);
final Plan plan = new MockPlan();
@@ -957,14 +957,14 @@ public class TestDefaultInvoiceGenerator extends InvoiceTestSuiteNoDB {
final LocalDate startDate = new LocalDate(2012, 1, 1);
- // add first subscription creation event
+ // add first SubscriptionBase creation event
final UUID subscriptionId1 = UUID.randomUUID();
final Plan plan1 = new MockPlan();
final PlanPhase plan1phase1 = createMockMonthlyPlanPhase(FIFTEEN, null, PhaseType.DISCOUNT);
final BillingEvent subscription1creation = createBillingEvent(subscriptionId1, bundleId, startDate, plan1, plan1phase1, 1);
eventSet.add(subscription1creation);
- // add second subscription creation event
+ // add second SubscriptionBase creation event
final UUID subscriptionId2 = UUID.randomUUID();
final Plan plan2 = new MockPlan();
final PlanPhase plan2phase1 = createMockMonthlyPlanPhase(TWELVE, null, PhaseType.EVERGREEN);
@@ -976,7 +976,7 @@ public class TestDefaultInvoiceGenerator extends InvoiceTestSuiteNoDB {
assertTrue(invoice1.getBalance().compareTo(FIFTEEN.add(TWELVE)) == 0);
invoices.add(invoice1);
- // set auto invoice off for first subscription (i.e. remove event from BillingEventSet and add subscription id to the list
+ // set auto invoice off for first SubscriptionBase (i.e. remove event from BillingEventSet and add SubscriptionBase id to the list
// generate invoice
eventSet.remove(subscription1creation);
eventSet.addSubscriptionWithAutoInvoiceOff(subscriptionId1);
diff --git a/invoice/src/test/java/com/ning/billing/invoice/notification/TestNextBillingDateNotifier.java b/invoice/src/test/java/com/ning/billing/invoice/notification/TestNextBillingDateNotifier.java
index 43ac701..ea43f8e 100644
--- a/invoice/src/test/java/com/ning/billing/invoice/notification/TestNextBillingDateNotifier.java
+++ b/invoice/src/test/java/com/ning/billing/invoice/notification/TestNextBillingDateNotifier.java
@@ -23,7 +23,7 @@ import org.joda.time.DateTime;
import org.testng.Assert;
import org.testng.annotations.Test;
-import com.ning.billing.subscription.api.user.Subscription;
+import com.ning.billing.subscription.api.SubscriptionBase;
import com.ning.billing.invoice.InvoiceTestSuiteWithEmbeddedDB;
import com.ning.billing.invoice.api.DefaultInvoiceService;
import com.ning.billing.notificationq.api.NotificationQueue;
@@ -38,7 +38,7 @@ public class TestNextBillingDateNotifier extends InvoiceTestSuiteWithEmbeddedDB
public void testInvoiceNotifier() throws Exception {
final UUID accountId = UUID.randomUUID();
- final Subscription subscription = invoiceUtil.createSubscription();
+ final SubscriptionBase subscription = invoiceUtil.createSubscription();
final UUID subscriptionId = subscription.getId();
final DateTime now = clock.getUTCNow();
diff --git a/invoice/src/test/java/com/ning/billing/invoice/TestInvoiceDispatcher.java b/invoice/src/test/java/com/ning/billing/invoice/TestInvoiceDispatcher.java
index d2dbca6..1d28828 100644
--- a/invoice/src/test/java/com/ning/billing/invoice/TestInvoiceDispatcher.java
+++ b/invoice/src/test/java/com/ning/billing/invoice/TestInvoiceDispatcher.java
@@ -40,7 +40,7 @@ import com.ning.billing.catalog.api.PhaseType;
import com.ning.billing.catalog.api.Plan;
import com.ning.billing.catalog.api.PlanPhase;
import com.ning.billing.subscription.api.SubscriptionTransitionType;
-import com.ning.billing.subscription.api.user.Subscription;
+import com.ning.billing.subscription.api.SubscriptionBase;
import com.ning.billing.util.timezone.DateAndTimeZoneContext;
import com.ning.billing.invoice.api.Invoice;
import com.ning.billing.invoice.api.InvoiceApiException;
@@ -59,7 +59,7 @@ import com.ning.billing.util.svcapi.junction.BillingModeType;
public class TestInvoiceDispatcher extends InvoiceTestSuiteWithEmbeddedDB {
private Account account;
- private Subscription subscription;
+ private SubscriptionBase subscription;
@Override
@BeforeMethod(groups = "slow")
diff --git a/invoice/src/test/java/com/ning/billing/invoice/TestInvoiceHelper.java b/invoice/src/test/java/com/ning/billing/invoice/TestInvoiceHelper.java
index 653aa4e..d77f4db 100644
--- a/invoice/src/test/java/com/ning/billing/invoice/TestInvoiceHelper.java
+++ b/invoice/src/test/java/com/ning/billing/invoice/TestInvoiceHelper.java
@@ -39,7 +39,7 @@ import com.ning.billing.catalog.api.Currency;
import com.ning.billing.catalog.api.Plan;
import com.ning.billing.catalog.api.PlanPhase;
import com.ning.billing.subscription.api.SubscriptionTransitionType;
-import com.ning.billing.subscription.api.user.Subscription;
+import com.ning.billing.subscription.api.SubscriptionBase;
import com.ning.billing.invoice.api.Invoice;
import com.ning.billing.invoice.api.InvoiceApiException;
import com.ning.billing.invoice.api.InvoiceItem;
@@ -160,7 +160,7 @@ public class TestInvoiceHelper {
}
public UUID generateRegularInvoice(final Account account, final DateTime targetDate) throws Exception {
- final Subscription subscription = Mockito.mock(Subscription.class);
+ final SubscriptionBase subscription = Mockito.mock(SubscriptionBase.class);
Mockito.when(subscription.getId()).thenReturn(UUID.randomUUID());
Mockito.when(subscription.getBundleId()).thenReturn(new UUID(0L, 0L));
final BillingEventSet events = new MockBillingEventSet();
@@ -195,9 +195,9 @@ public class TestInvoiceHelper {
return invoice.getId();
}
- public Subscription createSubscription() throws SubscriptionUserApiException {
+ public SubscriptionBase createSubscription() throws SubscriptionUserApiException {
UUID uuid = UUID.randomUUID();
- final Subscription subscription = Mockito.mock(Subscription.class);
+ final SubscriptionBase subscription = Mockito.mock(SubscriptionBase.class);
Mockito.when(subscription.getId()).thenReturn(uuid);
Mockito.when(subscriptionApi.getSubscriptionFromId(Mockito.<UUID>any(), Mockito.<InternalTenantContext>any())).thenReturn(subscription);
return subscription;
@@ -287,7 +287,7 @@ public class TestInvoiceHelper {
return new LocalDate(year, month, day);
}
- public BillingEvent createMockBillingEvent(@Nullable final Account account, final Subscription subscription,
+ public BillingEvent createMockBillingEvent(@Nullable final Account account, final SubscriptionBase subscription,
final DateTime effectiveDate,
final Plan plan, final PlanPhase planPhase,
@Nullable final BigDecimal fixedPrice, @Nullable final BigDecimal recurringPrice,
@@ -308,7 +308,7 @@ public class TestInvoiceHelper {
}
@Override
- public Subscription getSubscription() {
+ public SubscriptionBase getSubscription() {
return subscription;
}
diff --git a/jaxrs/src/main/java/com/ning/billing/jaxrs/json/SubscriptionJsonNoEvents.java b/jaxrs/src/main/java/com/ning/billing/jaxrs/json/SubscriptionJsonNoEvents.java
index b56ae69..a625ae9 100644
--- a/jaxrs/src/main/java/com/ning/billing/jaxrs/json/SubscriptionJsonNoEvents.java
+++ b/jaxrs/src/main/java/com/ning/billing/jaxrs/json/SubscriptionJsonNoEvents.java
@@ -23,7 +23,7 @@ import javax.annotation.Nullable;
import org.joda.time.DateTime;
import com.ning.billing.catalog.api.Plan;
-import com.ning.billing.subscription.api.user.Subscription;
+import com.ning.billing.subscription.api.SubscriptionBase;
import com.ning.billing.util.audit.AuditLog;
import com.fasterxml.jackson.annotation.JsonCreator;
@@ -64,7 +64,7 @@ public class SubscriptionJsonNoEvents extends SubscriptionJsonSimple {
}
- public SubscriptionJsonNoEvents(final Subscription data, @Nullable final List<AuditLog> auditLogs) {
+ public SubscriptionJsonNoEvents(final SubscriptionBase data, @Nullable final List<AuditLog> auditLogs) {
this(data.getId().toString(),
data.getBundleId().toString(),
data.getStartDate(),
diff --git a/jaxrs/src/main/java/com/ning/billing/jaxrs/json/SubscriptionJsonWithEvents.java b/jaxrs/src/main/java/com/ning/billing/jaxrs/json/SubscriptionJsonWithEvents.java
index 6985ad0..cd3aa22 100644
--- a/jaxrs/src/main/java/com/ning/billing/jaxrs/json/SubscriptionJsonWithEvents.java
+++ b/jaxrs/src/main/java/com/ning/billing/jaxrs/json/SubscriptionJsonWithEvents.java
@@ -28,7 +28,7 @@ import org.joda.time.DateTime;
import com.ning.billing.catalog.api.PlanPhaseSpecifier;
import com.ning.billing.subscription.api.timeline.SubscriptionTimeline;
import com.ning.billing.subscription.api.timeline.SubscriptionTimeline.ExistingEvent;
-import com.ning.billing.subscription.api.user.Subscription;
+import com.ning.billing.subscription.api.SubscriptionBase;
import com.ning.billing.util.audit.AuditLog;
import com.ning.billing.clock.DefaultClock;
@@ -276,7 +276,7 @@ public class SubscriptionJsonWithEvents extends SubscriptionJsonSimple {
this.newEvents = newEvents;
}
- public SubscriptionJsonWithEvents(final Subscription data,
+ public SubscriptionJsonWithEvents(final SubscriptionBase data,
@Nullable final List<SubscriptionReadEventJson> events,
@Nullable final List<SubscriptionNewEventJson> newEvents,
@Nullable final List<SubscriptionDeletedEventJson> deletedEvents,
diff --git a/jaxrs/src/main/java/com/ning/billing/jaxrs/resources/BundleResource.java b/jaxrs/src/main/java/com/ning/billing/jaxrs/resources/BundleResource.java
index fc8d070..04d25a4 100644
--- a/jaxrs/src/main/java/com/ning/billing/jaxrs/resources/BundleResource.java
+++ b/jaxrs/src/main/java/com/ning/billing/jaxrs/resources/BundleResource.java
@@ -43,7 +43,7 @@ import com.ning.billing.subscription.api.transfer.SubscriptionTransferApi;
import com.ning.billing.subscription.api.transfer.SubscriptionTransferApiException;
import com.ning.billing.subscription.api.user.SubscriptionUserApi;
import com.ning.billing.subscription.api.user.SubscriptionUserApiException;
-import com.ning.billing.subscription.api.user.Subscription;
+import com.ning.billing.subscription.api.SubscriptionBase;
import com.ning.billing.subscription.api.user.SubscriptionBundle;
import com.ning.billing.jaxrs.json.BundleJsonNoSubscriptions;
import com.ning.billing.jaxrs.json.CustomFieldJson;
@@ -123,10 +123,10 @@ public class BundleResource extends JaxRsResourceBase {
if (bundle == null) {
return Response.status(Status.NO_CONTENT).build();
}
- final List<Subscription> subscriptions = subscriptionApi.getSubscriptionsForBundle(uuid, tenantContext);
- final Collection<SubscriptionJsonNoEvents> result = Collections2.transform(subscriptions, new Function<Subscription, SubscriptionJsonNoEvents>() {
+ final List<SubscriptionBase> subscriptions = null; // STEPH_ENT subscriptionApi.getSubscriptionsForBundle(uuid, tenantContext);
+ final Collection<SubscriptionJsonNoEvents> result = Collections2.transform(subscriptions, new Function<SubscriptionBase, SubscriptionJsonNoEvents>() {
@Override
- public SubscriptionJsonNoEvents apply(final Subscription input) {
+ public SubscriptionJsonNoEvents apply(final SubscriptionBase input) {
return new SubscriptionJsonNoEvents(input, null);
}
});
diff --git a/jaxrs/src/main/java/com/ning/billing/jaxrs/resources/OverdueResource.java b/jaxrs/src/main/java/com/ning/billing/jaxrs/resources/OverdueResource.java
index c774b8c..40d2a45 100644
--- a/jaxrs/src/main/java/com/ning/billing/jaxrs/resources/OverdueResource.java
+++ b/jaxrs/src/main/java/com/ning/billing/jaxrs/resources/OverdueResource.java
@@ -31,7 +31,7 @@ import com.ning.billing.account.api.AccountApiException;
import com.ning.billing.account.api.AccountUserApi;
import com.ning.billing.subscription.api.user.SubscriptionUserApi;
import com.ning.billing.subscription.api.user.SubscriptionUserApiException;
-import com.ning.billing.subscription.api.user.Subscription;
+import com.ning.billing.subscription.api.SubscriptionBase;
import com.ning.billing.subscription.api.user.SubscriptionBundle;
import com.ning.billing.jaxrs.json.OverdueStateJson;
import com.ning.billing.jaxrs.util.Context;
@@ -106,8 +106,8 @@ public class OverdueResource extends JaxRsResourceBase {
@javax.ws.rs.core.Context final HttpServletRequest request) throws SubscriptionUserApiException, OverdueException, OverdueApiException {
final TenantContext tenantContext = context.createContext(request);
- final Subscription subscription = subscriptionApi.getSubscriptionFromId(UUID.fromString(subscriptionId), tenantContext);
- final OverdueState<Subscription> overdueState = overdueApi.getOverdueStateFor(subscription, tenantContext);
+ final SubscriptionBase subscription = null; // STEPH_ENT subscriptionApi.getSubscriptionFromId(UUID.fromString(subscriptionId), tenantContext);
+ final OverdueState<SubscriptionBase> overdueState = overdueApi.getOverdueStateFor(subscription, tenantContext);
return Response.status(Status.OK).entity(new OverdueStateJson(overdueState)).build();
}
diff --git a/jaxrs/src/main/java/com/ning/billing/jaxrs/resources/SubscriptionResource.java b/jaxrs/src/main/java/com/ning/billing/jaxrs/resources/SubscriptionResource.java
index 9acd9a9..42b9eee 100644
--- a/jaxrs/src/main/java/com/ning/billing/jaxrs/resources/SubscriptionResource.java
+++ b/jaxrs/src/main/java/com/ning/billing/jaxrs/resources/SubscriptionResource.java
@@ -48,7 +48,7 @@ import com.ning.billing.catalog.api.PlanPhaseSpecifier;
import com.ning.billing.catalog.api.ProductCategory;
import com.ning.billing.subscription.api.user.SubscriptionUserApi;
import com.ning.billing.subscription.api.user.SubscriptionUserApiException;
-import com.ning.billing.subscription.api.user.Subscription;
+import com.ning.billing.subscription.api.SubscriptionBase;
import com.ning.billing.jaxrs.json.CustomFieldJson;
import com.ning.billing.jaxrs.json.SubscriptionJsonNoEvents;
import com.ning.billing.jaxrs.util.Context;
@@ -102,7 +102,7 @@ public class SubscriptionResource extends JaxRsResourceBase {
public Response getSubscription(@PathParam("subscriptionId") final String subscriptionId,
@javax.ws.rs.core.Context final HttpServletRequest request) throws SubscriptionUserApiException {
final UUID uuid = UUID.fromString(subscriptionId);
- final Subscription subscription = subscriptionApi.getSubscriptionFromId(uuid, context.createContext(request));
+ final SubscriptionBase subscription = null; // STEPH_ENT subscriptionApi.getSubscriptionFromId(uuid, context.createContext(request));
final SubscriptionJsonNoEvents json = new SubscriptionJsonNoEvents(subscription, null);
return Response.status(Status.OK).entity(json).build();
}
@@ -120,9 +120,9 @@ public class SubscriptionResource extends JaxRsResourceBase {
@javax.ws.rs.core.Context final HttpServletRequest request) throws SubscriptionUserApiException {
final CallContext callContext = context.createContext(createdBy, reason, comment, request);
- final SubscriptionCallCompletionCallback<Subscription> callback = new SubscriptionCallCompletionCallback<Subscription>() {
+ final SubscriptionCallCompletionCallback<SubscriptionBase> callback = new SubscriptionCallCompletionCallback<SubscriptionBase>() {
@Override
- public Subscription doOperation(final CallContext ctx) throws SubscriptionUserApiException, InterruptedException, TimeoutException {
+ public SubscriptionBase doOperation(final CallContext ctx) throws SubscriptionUserApiException, InterruptedException, TimeoutException {
final DateTime inputDate = (requestedDate != null) ? DATE_TIME_FORMATTER.parseDateTime(requestedDate) : null;
final UUID uuid = UUID.fromString(subscription.getBundleId());
@@ -130,7 +130,7 @@ public class SubscriptionResource extends JaxRsResourceBase {
final PlanPhaseSpecifier spec = new PlanPhaseSpecifier(subscription.getProductName(),
ProductCategory.valueOf(subscription.getProductCategory()),
BillingPeriod.valueOf(subscription.getBillingPeriod()), subscription.getPriceList(), null);
- return subscriptionApi.createSubscription(uuid, spec, inputDate, ctx);
+ return null; // STEPH_ENT subscriptionApi.createSubscription(uuid, spec, inputDate, ctx);
}
@Override
@@ -139,12 +139,12 @@ public class SubscriptionResource extends JaxRsResourceBase {
}
@Override
- public Response doResponseOk(final Subscription createdSubscription) {
+ public Response doResponseOk(final SubscriptionBase createdSubscription) {
return uriBuilder.buildResponse(SubscriptionResource.class, "getSubscription", createdSubscription.getId());
}
};
- final SubscriptionCallCompletion<Subscription> callCompletionCreation = new SubscriptionCallCompletion<Subscription>();
+ final SubscriptionCallCompletion<SubscriptionBase> callCompletionCreation = new SubscriptionCallCompletion<SubscriptionBase>();
return callCompletionCreation.withSynchronization(callback, timeoutSec, callCompletion, callContext);
}
@@ -172,7 +172,7 @@ public class SubscriptionResource extends JaxRsResourceBase {
public Response doOperation(final CallContext ctx) throws SubscriptionUserApiException, InterruptedException,
TimeoutException {
final UUID uuid = UUID.fromString(subscriptionId);
- final Subscription current = subscriptionApi.getSubscriptionFromId(uuid, callContext);
+ final SubscriptionBase current = null; // STEPH_ENT subscriptionApi.getSubscriptionFromId(uuid, callContext);
final DateTime inputDate = (requestedDate != null) ? DATE_TIME_FORMATTER.parseDateTime(requestedDate) : null;
if (policyString == null) {
@@ -215,7 +215,7 @@ public class SubscriptionResource extends JaxRsResourceBase {
@HeaderParam(HDR_COMMENT) final String comment,
@javax.ws.rs.core.Context final HttpServletRequest request) throws SubscriptionUserApiException {
final UUID uuid = UUID.fromString(subscriptionId);
- final Subscription current = subscriptionApi.getSubscriptionFromId(uuid, context.createContext(createdBy, reason, comment, request));
+ final SubscriptionBase current = null; // STEPH_ENT subscriptionApi.getSubscriptionFromId(uuid, context.createContext(createdBy, reason, comment, request));
current.uncancel(context.createContext(createdBy, reason, comment, request));
return Response.status(Status.OK).build();
@@ -246,7 +246,7 @@ public class SubscriptionResource extends JaxRsResourceBase {
TimeoutException {
final UUID uuid = UUID.fromString(subscriptionId);
- final Subscription current = subscriptionApi.getSubscriptionFromId(uuid, callContext);
+ final SubscriptionBase current = null; // STEPH_ENT subscriptionApi.getSubscriptionFromId(uuid, callContext);
final DateTime inputDate = (requestedDate != null) ? DATE_TIME_FORMATTER.parseDateTime(requestedDate) : null;
if (policyString == null) {
diff --git a/jaxrs/src/test/java/com/ning/billing/jaxrs/json/TestSubscriptionJsonNoEvents.java b/jaxrs/src/test/java/com/ning/billing/jaxrs/json/TestSubscriptionJsonNoEvents.java
index ecf96bb..8a1814a 100644
--- a/jaxrs/src/test/java/com/ning/billing/jaxrs/json/TestSubscriptionJsonNoEvents.java
+++ b/jaxrs/src/test/java/com/ning/billing/jaxrs/json/TestSubscriptionJsonNoEvents.java
@@ -32,7 +32,7 @@ import com.ning.billing.catalog.api.PlanPhase;
import com.ning.billing.catalog.api.PriceList;
import com.ning.billing.catalog.api.Product;
import com.ning.billing.catalog.api.ProductCategory;
-import com.ning.billing.subscription.api.user.Subscription;
+import com.ning.billing.subscription.api.SubscriptionBase;
import com.ning.billing.jaxrs.JaxrsTestSuiteNoDB;
import static com.ning.billing.jaxrs.JaxrsTestUtils.createAuditLogsJson;
@@ -89,7 +89,7 @@ public class TestSubscriptionJsonNoEvents extends JaxrsTestSuiteNoDB {
final PriceList priceList = Mockito.mock(PriceList.class);
- final Subscription subscription = Mockito.mock(Subscription.class);
+ final SubscriptionBase subscription = Mockito.mock(SubscriptionBase.class);
Mockito.when(subscription.getId()).thenReturn(UUID.randomUUID());
Mockito.when(subscription.getBundleId()).thenReturn(UUID.randomUUID());
Mockito.when(subscription.getStartDate()).thenReturn(new DateTime(DateTimeZone.UTC));
diff --git a/jaxrs/src/test/java/com/ning/billing/jaxrs/json/TestSubscriptionJsonWithEvents.java b/jaxrs/src/test/java/com/ning/billing/jaxrs/json/TestSubscriptionJsonWithEvents.java
index 0e89846..00c9193 100644
--- a/jaxrs/src/test/java/com/ning/billing/jaxrs/json/TestSubscriptionJsonWithEvents.java
+++ b/jaxrs/src/test/java/com/ning/billing/jaxrs/json/TestSubscriptionJsonWithEvents.java
@@ -31,7 +31,7 @@ import com.ning.billing.catalog.api.PlanPhaseSpecifier;
import com.ning.billing.catalog.api.ProductCategory;
import com.ning.billing.subscription.api.SubscriptionTransitionType;
import com.ning.billing.subscription.api.timeline.SubscriptionTimeline;
-import com.ning.billing.subscription.api.user.Subscription;
+import com.ning.billing.subscription.api.SubscriptionBase;
import com.ning.billing.jaxrs.JaxrsTestSuiteNoDB;
import com.ning.billing.util.audit.AuditLog;
import com.ning.billing.clock.DefaultClock;
@@ -87,7 +87,7 @@ public class TestSubscriptionJsonWithEvents extends JaxrsTestSuiteNoDB {
PhaseType.DISCOUNT.toString(),
auditLogs);
- final Subscription subscription = Mockito.mock(Subscription.class);
+ final SubscriptionBase subscription = Mockito.mock(SubscriptionBase.class);
Mockito.when(subscription.getId()).thenReturn(UUID.randomUUID());
final SubscriptionJsonWithEvents subscriptionJsonWithEvents = new SubscriptionJsonWithEvents(subscription,
diff --git a/junction/src/main/java/com/ning/billing/junction/plumbing/billing/BillCycleDayCalculator.java b/junction/src/main/java/com/ning/billing/junction/plumbing/billing/BillCycleDayCalculator.java
index c19269f..0039fc1 100644
--- a/junction/src/main/java/com/ning/billing/junction/plumbing/billing/BillCycleDayCalculator.java
+++ b/junction/src/main/java/com/ning/billing/junction/plumbing/billing/BillCycleDayCalculator.java
@@ -37,7 +37,7 @@ import com.ning.billing.catalog.api.PlanPhaseSpecifier;
import com.ning.billing.catalog.api.Product;
import com.ning.billing.subscription.api.SubscriptionTransitionType;
import com.ning.billing.subscription.api.user.SubscriptionUserApiException;
-import com.ning.billing.subscription.api.user.Subscription;
+import com.ning.billing.subscription.api.SubscriptionBase;
import com.ning.billing.subscription.api.user.SubscriptionBundle;
import com.ning.billing.util.callcontext.InternalCallContext;
import com.ning.billing.util.events.EffectiveSubscriptionInternalEvent;
@@ -59,7 +59,7 @@ public class BillCycleDayCalculator {
this.subscriptionApi = subscriptionApi;
}
- protected int calculateBcd(final SubscriptionBundle bundle, final Subscription subscription, final EffectiveSubscriptionInternalEvent transition, final Account account, final InternalCallContext context)
+ protected int calculateBcd(final SubscriptionBundle bundle, final SubscriptionBase subscription, final EffectiveSubscriptionInternalEvent transition, final Account account, final InternalCallContext context)
throws CatalogApiException, AccountApiException, SubscriptionUserApiException {
final Catalog catalog = catalogService.getFullCatalog();
@@ -87,7 +87,7 @@ public class BillCycleDayCalculator {
}
@VisibleForTesting
- int calculateBcdForAlignment(final BillingAlignment alignment, final SubscriptionBundle bundle, final Subscription subscription,
+ int calculateBcdForAlignment(final BillingAlignment alignment, final SubscriptionBundle bundle, final SubscriptionBase subscription,
final Account account, final Catalog catalog, final Plan plan, final InternalCallContext context) throws AccountApiException, SubscriptionUserApiException, CatalogApiException {
int result = 0;
switch (alignment) {
@@ -98,7 +98,7 @@ public class BillCycleDayCalculator {
}
break;
case BUNDLE:
- final Subscription baseSub = subscriptionApi.getBaseSubscription(bundle.getId(), context);
+ final SubscriptionBase baseSub = subscriptionApi.getBaseSubscription(bundle.getId(), context);
Plan basePlan = baseSub.getCurrentPlan();
if (basePlan == null) {
// The BP has been cancelled
@@ -119,7 +119,7 @@ public class BillCycleDayCalculator {
}
@VisibleForTesting
- int calculateBcdFromSubscription(final Subscription subscription, final Plan plan, final Account account, final Catalog catalog, final InternalCallContext context)
+ int calculateBcdFromSubscription(final SubscriptionBase subscription, final Plan plan, final Account account, final Catalog catalog, final InternalCallContext context)
throws AccountApiException, CatalogApiException {
// Retrieve the initial phase type for that subscription
// TODO - this should be extracted somewhere, along with this code above
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 7640d1b..e0444bf 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
@@ -34,7 +34,7 @@ import com.ning.billing.catalog.api.Currency;
import com.ning.billing.catalog.api.Plan;
import com.ning.billing.catalog.api.PlanPhase;
import com.ning.billing.subscription.api.SubscriptionTransitionType;
-import com.ning.billing.subscription.api.user.Subscription;
+import com.ning.billing.subscription.api.SubscriptionBase;
import com.ning.billing.entitlement.api.BlockingState;
import com.ning.billing.util.callcontext.InternalTenantContext;
import com.ning.billing.util.svcapi.junction.BillingEvent;
@@ -86,7 +86,7 @@ public class BlockingCalculator {
final Account account = billingEvents.first().getAccount();
- final Hashtable<UUID, List<Subscription>> bundleMap = createBundleSubscriptionMap(billingEvents);
+ final Hashtable<UUID, List<SubscriptionBase>> bundleMap = createBundleSubscriptionMap(billingEvents);
final SortedSet<BillingEvent> billingEventsToAdd = new TreeSet<BillingEvent>();
final SortedSet<BillingEvent> billingEventsToRemove = new TreeSet<BillingEvent>();
@@ -96,7 +96,7 @@ public class BlockingCalculator {
blockingEvents.addAll(blockingApi.getBlockingHistory(account.getId(), context));
final List<DisabledDuration> blockingDurations = createBlockingDurations(blockingEvents);
- for (final Subscription subscription : bundleMap.get(bundleId)) {
+ for (final SubscriptionBase subscription : bundleMap.get(bundleId)) {
billingEventsToAdd.addAll(createNewEvents(blockingDurations, billingEvents, account, subscription));
billingEventsToRemove.addAll(eventsToRemove(blockingDurations, billingEvents, subscription));
}
@@ -112,7 +112,7 @@ public class BlockingCalculator {
}
protected SortedSet<BillingEvent> eventsToRemove(final List<DisabledDuration> disabledDuration,
- final SortedSet<BillingEvent> billingEvents, final Subscription subscription) {
+ final SortedSet<BillingEvent> billingEvents, final SubscriptionBase subscription) {
final SortedSet<BillingEvent> result = new TreeSet<BillingEvent>();
final SortedSet<BillingEvent> filteredBillingEvents = filter(billingEvents, subscription);
@@ -130,7 +130,7 @@ public class BlockingCalculator {
return result;
}
- protected SortedSet<BillingEvent> createNewEvents(final List<DisabledDuration> disabledDuration, final SortedSet<BillingEvent> billingEvents, final Account account, final Subscription subscription) {
+ protected SortedSet<BillingEvent> createNewEvents(final List<DisabledDuration> disabledDuration, final SortedSet<BillingEvent> billingEvents, final Account account, final SubscriptionBase subscription) {
final SortedSet<BillingEvent> result = new TreeSet<BillingEvent>();
for (final DisabledDuration duration : disabledDuration) {
// The first one before the blocked duration
@@ -151,7 +151,7 @@ public class BlockingCalculator {
return result;
}
- protected BillingEvent precedingBillingEventForSubscription(final DateTime datetime, final SortedSet<BillingEvent> billingEvents, final Subscription subscription) {
+ protected BillingEvent precedingBillingEventForSubscription(final DateTime datetime, final SortedSet<BillingEvent> billingEvents, final SubscriptionBase subscription) {
if (datetime == null) { //second of a pair can be null if there's no re-enabling
return null;
}
@@ -174,7 +174,7 @@ public class BlockingCalculator {
return result;
}
- protected SortedSet<BillingEvent> filter(final SortedSet<BillingEvent> billingEvents, final Subscription subscription) {
+ protected SortedSet<BillingEvent> filter(final SortedSet<BillingEvent> billingEvents, final SubscriptionBase subscription) {
final SortedSet<BillingEvent> result = new TreeSet<BillingEvent>();
for (final BillingEvent event : billingEvents) {
if (event.getSubscription() == subscription) {
@@ -187,7 +187,7 @@ public class BlockingCalculator {
protected BillingEvent createNewDisableEvent(final DateTime odEventTime, final BillingEvent previousEvent) {
final Account account = previousEvent.getAccount();
final int billCycleDay = previousEvent.getBillCycleDayLocal();
- final Subscription subscription = previousEvent.getSubscription();
+ final SubscriptionBase subscription = previousEvent.getSubscription();
final DateTime effectiveDate = odEventTime;
final PlanPhase planPhase = previousEvent.getPlanPhase();
final Plan plan = previousEvent.getPlan();
@@ -215,7 +215,7 @@ public class BlockingCalculator {
// All fields are populated with the event state from before the blocking period, for invoice to resume invoicing
final Account account = previousEvent.getAccount();
final int billCycleDay = previousEvent.getBillCycleDayLocal();
- final Subscription subscription = previousEvent.getSubscription();
+ final SubscriptionBase subscription = previousEvent.getSubscription();
final DateTime effectiveDate = odEventTime;
final PlanPhase planPhase = previousEvent.getPlanPhase();
final Plan plan = previousEvent.getPlan();
@@ -235,13 +235,13 @@ public class BlockingCalculator {
description, totalOrdering, type, tz);
}
- protected Hashtable<UUID, List<Subscription>> createBundleSubscriptionMap(final SortedSet<BillingEvent> billingEvents) {
- final Hashtable<UUID, List<Subscription>> result = new Hashtable<UUID, List<Subscription>>();
+ protected Hashtable<UUID, List<SubscriptionBase>> createBundleSubscriptionMap(final SortedSet<BillingEvent> billingEvents) {
+ final Hashtable<UUID, List<SubscriptionBase>> result = new Hashtable<UUID, List<SubscriptionBase>>();
for (final BillingEvent event : billingEvents) {
final UUID bundleId = event.getSubscription().getBundleId();
- List<Subscription> subs = result.get(bundleId);
+ List<SubscriptionBase> subs = result.get(bundleId);
if (subs == null) {
- subs = new ArrayList<Subscription>();
+ subs = new ArrayList<SubscriptionBase>();
result.put(bundleId, subs);
}
if (!result.get(bundleId).contains(event.getSubscription())) {
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 18a65fa..75c198f 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
@@ -29,7 +29,7 @@ import com.ning.billing.catalog.api.Currency;
import com.ning.billing.catalog.api.Plan;
import com.ning.billing.catalog.api.PlanPhase;
import com.ning.billing.subscription.api.SubscriptionTransitionType;
-import com.ning.billing.subscription.api.user.Subscription;
+import com.ning.billing.subscription.api.SubscriptionBase;
import com.ning.billing.util.events.EffectiveSubscriptionInternalEvent;
import com.ning.billing.util.svcapi.junction.BillingEvent;
import com.ning.billing.util.svcapi.junction.BillingModeType;
@@ -37,7 +37,7 @@ import com.ning.billing.util.svcapi.junction.BillingModeType;
public class DefaultBillingEvent implements BillingEvent {
private final Account account;
private final int billCycleDayLocal;
- private final Subscription subscription;
+ private final SubscriptionBase subscription;
private final DateTime effectiveDate;
private final PlanPhase planPhase;
private final Plan plan;
@@ -51,7 +51,7 @@ public class DefaultBillingEvent implements BillingEvent {
private final Long totalOrdering;
private final DateTimeZone timeZone;
- public DefaultBillingEvent(final Account account, final EffectiveSubscriptionInternalEvent transition, final Subscription subscription, final int billCycleDayLocal, final Currency currency, final Catalog catalog) throws CatalogApiException {
+ public DefaultBillingEvent(final Account account, final EffectiveSubscriptionInternalEvent transition, final SubscriptionBase subscription, final int billCycleDayLocal, final Currency currency, final Catalog catalog) throws CatalogApiException {
this.account = account;
this.billCycleDayLocal = billCycleDayLocal;
@@ -85,7 +85,7 @@ public class DefaultBillingEvent implements BillingEvent {
timeZone = account.getTimeZone();
}
- public DefaultBillingEvent(final Account account, final Subscription subscription, final DateTime effectiveDate, final Plan plan, final PlanPhase planPhase,
+ public DefaultBillingEvent(final Account account, final SubscriptionBase subscription, final DateTime effectiveDate, final Plan plan, final PlanPhase planPhase,
final BigDecimal fixedPrice, final BigDecimal recurringPrice, final Currency currency,
final BillingPeriod billingPeriod, final int billCycleDayLocal, final BillingModeType billingModeType,
final String description, final long totalOrdering, final SubscriptionTransitionType type, final DateTimeZone timeZone) {
@@ -163,7 +163,7 @@ public class DefaultBillingEvent implements BillingEvent {
}
@Override
- public Subscription getSubscription() {
+ public SubscriptionBase getSubscription() {
return subscription;
}
diff --git a/junction/src/main/java/com/ning/billing/junction/plumbing/billing/DefaultInternalBillingApi.java b/junction/src/main/java/com/ning/billing/junction/plumbing/billing/DefaultInternalBillingApi.java
index bbf3984..14434f8 100644
--- a/junction/src/main/java/com/ning/billing/junction/plumbing/billing/DefaultInternalBillingApi.java
+++ b/junction/src/main/java/com/ning/billing/junction/plumbing/billing/DefaultInternalBillingApi.java
@@ -31,7 +31,7 @@ import com.ning.billing.account.api.AccountApiException;
import com.ning.billing.account.api.MutableAccountData;
import com.ning.billing.catalog.api.CatalogApiException;
import com.ning.billing.catalog.api.CatalogService;
-import com.ning.billing.subscription.api.user.Subscription;
+import com.ning.billing.subscription.api.SubscriptionBase;
import com.ning.billing.subscription.api.user.SubscriptionBundle;
import com.ning.billing.util.callcontext.InternalCallContext;
import com.ning.billing.util.events.EffectiveSubscriptionInternalEvent;
@@ -113,13 +113,13 @@ public class DefaultInternalBillingApi implements BillingInternalApi {
private void addBillingEventsForBundles(final List<SubscriptionBundle> bundles, final Account account, final InternalCallContext context,
final DefaultBillingEventSet result) {
for (final SubscriptionBundle bundle : bundles) {
- final List<Subscription> subscriptions = subscriptionApi.getSubscriptionsForBundle(bundle.getId(), context);
+ final List<SubscriptionBase> subscriptions = subscriptionApi.getSubscriptionsForBundle(bundle.getId(), context);
//Check if billing is off for the bundle
final List<Tag> bundleTags = tagApi.getTags(bundle.getId(), ObjectType.BUNDLE, context);
boolean found_AUTO_INVOICING_OFF = is_AUTO_INVOICING_OFF(bundleTags);
if (found_AUTO_INVOICING_OFF) {
- for (final Subscription subscription : subscriptions) { // billing is off so list sub ids in set to be excluded
+ for (final SubscriptionBase subscription : subscriptions) { // billing is off so list sub ids in set to be excluded
result.getSubscriptionIdsWithAutoInvoiceOff().add(subscription.getId());
}
} else { // billing is not off
@@ -128,8 +128,8 @@ public class DefaultInternalBillingApi implements BillingInternalApi {
}
}
- private void addBillingEventsForSubscription(final List<Subscription> subscriptions, final SubscriptionBundle bundle, final Account account, final InternalCallContext context, final DefaultBillingEventSet result) {
- for (final Subscription subscription : subscriptions) {
+ private void addBillingEventsForSubscription(final List<SubscriptionBase> subscriptions, final SubscriptionBundle bundle, final Account account, final InternalCallContext context, final DefaultBillingEventSet result) {
+ for (final SubscriptionBase subscription : subscriptions) {
for (final EffectiveSubscriptionInternalEvent transition : subscriptionApi.getBillingTransitions(subscription, context)) {
try {
final int bcdLocal = bcdCalculator.calculateBcd(bundle, subscription, transition, account, context);
diff --git a/junction/src/test/java/com/ning/billing/junction/JunctionTestSuiteNoDB.java b/junction/src/test/java/com/ning/billing/junction/JunctionTestSuiteNoDB.java
index 0477e9e..5987bf6 100644
--- a/junction/src/test/java/com/ning/billing/junction/JunctionTestSuiteNoDB.java
+++ b/junction/src/test/java/com/ning/billing/junction/JunctionTestSuiteNoDB.java
@@ -16,9 +16,10 @@
package com.ning.billing.junction;
-import com.google.inject.Guice;
-import com.google.inject.Inject;
-import com.google.inject.Injector;
+import org.testng.annotations.AfterMethod;
+import org.testng.annotations.BeforeClass;
+import org.testng.annotations.BeforeMethod;
+
import com.ning.billing.GuicyKillbillTestSuiteNoDB;
import com.ning.billing.bus.api.PersistentBus;
import com.ning.billing.catalog.api.CatalogService;
@@ -26,17 +27,15 @@ import com.ning.billing.entitlement.dao.BlockingStateDao;
import com.ning.billing.junction.glue.TestJunctionModuleNoDB;
import com.ning.billing.junction.plumbing.billing.BillCycleDayCalculator;
import com.ning.billing.junction.plumbing.billing.BlockingCalculator;
-import com.ning.billing.subscription.api.user.SubscriptionUserApi;
-import com.ning.billing.util.glue.RealImplementation;
import com.ning.billing.util.svcapi.account.AccountInternalApi;
import com.ning.billing.util.svcapi.junction.BillingInternalApi;
-import com.ning.billing.util.svcapi.junction.BlockingInternalApi;
import com.ning.billing.util.svcapi.subscription.SubscriptionInternalApi;
import com.ning.billing.util.svcapi.tag.TagInternalApi;
import com.ning.billing.util.tag.dao.TagDao;
-import org.testng.annotations.AfterMethod;
-import org.testng.annotations.BeforeClass;
-import org.testng.annotations.BeforeMethod;
+
+import com.google.inject.Guice;
+import com.google.inject.Inject;
+import com.google.inject.Injector;
public abstract class JunctionTestSuiteNoDB extends GuicyKillbillTestSuiteNoDB {
diff --git a/junction/src/test/java/com/ning/billing/junction/JunctionTestSuiteWithEmbeddedDB.java b/junction/src/test/java/com/ning/billing/junction/JunctionTestSuiteWithEmbeddedDB.java
index 98c7deb..a5d4df0 100644
--- a/junction/src/test/java/com/ning/billing/junction/JunctionTestSuiteWithEmbeddedDB.java
+++ b/junction/src/test/java/com/ning/billing/junction/JunctionTestSuiteWithEmbeddedDB.java
@@ -16,25 +16,25 @@
package com.ning.billing.junction;
-import com.google.inject.Guice;
-import com.google.inject.Inject;
-import com.google.inject.Injector;
+import org.testng.annotations.AfterMethod;
+import org.testng.annotations.BeforeClass;
+import org.testng.annotations.BeforeMethod;
+
import com.ning.billing.GuicyKillbillTestSuiteWithEmbeddedDB;
import com.ning.billing.bus.api.PersistentBus;
import com.ning.billing.catalog.api.CatalogService;
import com.ning.billing.junction.glue.TestJunctionModuleWithEmbeddedDB;
import com.ning.billing.junction.plumbing.billing.BlockingCalculator;
-import com.ning.billing.subscription.api.user.SubscriptionUserApi;
-import com.ning.billing.util.glue.RealImplementation;
import com.ning.billing.util.svcapi.account.AccountInternalApi;
import com.ning.billing.util.svcapi.junction.BillingInternalApi;
import com.ning.billing.util.svcapi.junction.BlockingInternalApi;
import com.ning.billing.util.svcapi.subscription.SubscriptionInternalApi;
import com.ning.billing.util.svcapi.tag.TagInternalApi;
import com.ning.billing.util.tag.dao.TagDao;
-import org.testng.annotations.AfterMethod;
-import org.testng.annotations.BeforeClass;
-import org.testng.annotations.BeforeMethod;
+
+import com.google.inject.Guice;
+import com.google.inject.Inject;
+import com.google.inject.Injector;
public abstract class JunctionTestSuiteWithEmbeddedDB extends GuicyKillbillTestSuiteWithEmbeddedDB {
diff --git a/junction/src/test/java/com/ning/billing/junction/plumbing/billing/TestBillCycleDayCalculator.java b/junction/src/test/java/com/ning/billing/junction/plumbing/billing/TestBillCycleDayCalculator.java
index be6a814..9feacff 100644
--- a/junction/src/test/java/com/ning/billing/junction/plumbing/billing/TestBillCycleDayCalculator.java
+++ b/junction/src/test/java/com/ning/billing/junction/plumbing/billing/TestBillCycleDayCalculator.java
@@ -31,7 +31,7 @@ import com.ning.billing.catalog.api.Catalog;
import com.ning.billing.catalog.api.CatalogApiException;
import com.ning.billing.catalog.api.CatalogService;
import com.ning.billing.catalog.api.Plan;
-import com.ning.billing.subscription.api.user.Subscription;
+import com.ning.billing.subscription.api.SubscriptionBase;
import com.ning.billing.subscription.api.user.SubscriptionBundle;
import com.ning.billing.junction.JunctionTestSuiteNoDB;
import com.ning.billing.util.callcontext.InternalTenantContext;
@@ -47,7 +47,7 @@ public class TestBillCycleDayCalculator extends JunctionTestSuiteNoDB {
// Create a Bundle associated with a subscription
final SubscriptionBundle bundle = Mockito.mock(SubscriptionBundle.class);
- final Subscription subscription = Mockito.mock(Subscription.class);
+ final SubscriptionBase subscription = Mockito.mock(SubscriptionBase.class);
Mockito.when(subscription.getStartDate()).thenReturn(bpStartDateUTC);
// subscription.getCurrentPlan() will return null as expected (cancelled BP)
@@ -126,7 +126,7 @@ public class TestBillCycleDayCalculator extends JunctionTestSuiteNoDB {
private void verifyBCDCalculation(final DateTimeZone accountTimeZone, final DateTime startDateUTC, final int bcdLocal) throws AccountApiException, CatalogApiException {
final BillCycleDayCalculator billCycleDayCalculator = new BillCycleDayCalculator(Mockito.mock(CatalogService.class), Mockito.mock(SubscriptionInternalApi.class));
- final Subscription subscription = Mockito.mock(Subscription.class);
+ final SubscriptionBase subscription = Mockito.mock(SubscriptionBase.class);
Mockito.when(subscription.getStartDate()).thenReturn(startDateUTC);
final Plan plan = Mockito.mock(Plan.class);
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 dc9bce8..b22c535 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
@@ -36,7 +36,7 @@ import com.ning.billing.entitlement.api.Type;
import com.ning.billing.mock.MockEffectiveSubscriptionEvent;
import com.ning.billing.mock.MockSubscription;
import com.ning.billing.subscription.api.SubscriptionTransitionType;
-import com.ning.billing.subscription.api.user.Subscription;
+import com.ning.billing.subscription.api.SubscriptionBase;
import com.ning.billing.subscription.api.user.SubscriptionBundle;
import com.ning.billing.subscription.api.user.SubscriptionState;
import com.ning.billing.util.api.TagApiException;
@@ -75,7 +75,7 @@ public class TestBillingApi extends JunctionTestSuiteNoDB {
private static final UUID bunId = new UUID(2L, 0L);
private List<EffectiveSubscriptionInternalEvent> effectiveSubscriptionTransitions;
- private Subscription subscription;
+ private SubscriptionBase subscription;
private MockCatalog catalog;
@BeforeMethod(groups = "fast")
@@ -89,15 +89,15 @@ public class TestBillingApi extends JunctionTestSuiteNoDB {
final DateTime subscriptionStartDate = clock.getUTCNow().minusDays(3);
subscription = new MockSubscription(subId, bunId, null, subscriptionStartDate, effectiveSubscriptionTransitions);
- final List<Subscription> subscriptions = ImmutableList.<Subscription>of(subscription);
+ final List<SubscriptionBase> subscriptions = ImmutableList.<SubscriptionBase>of(subscription);
Mockito.when(subscriptionInternalApi.getBundlesForAccount(Mockito.<UUID>any(), Mockito.<InternalTenantContext>any())).thenReturn(bundles);
Mockito.when(subscriptionInternalApi.getSubscriptionsForBundle(Mockito.<UUID>any(), Mockito.<InternalTenantContext>any())).thenReturn(subscriptions);
Mockito.when(subscriptionInternalApi.getSubscriptionFromId(Mockito.<UUID>any(), Mockito.<InternalTenantContext>any())).thenReturn(subscription);
Mockito.when(subscriptionInternalApi.getBundleFromId(Mockito.<UUID>any(), Mockito.<InternalTenantContext>any())).thenReturn(bundle);
Mockito.when(subscriptionInternalApi.getBaseSubscription(Mockito.<UUID>any(), Mockito.<InternalTenantContext>any())).thenReturn(subscription);
- Mockito.when(subscriptionInternalApi.getBillingTransitions(Mockito.<Subscription>any(), Mockito.<InternalTenantContext>any())).thenReturn(effectiveSubscriptionTransitions);
- Mockito.when(subscriptionInternalApi.getAllTransitions(Mockito.<Subscription>any(), Mockito.<InternalTenantContext>any())).thenReturn(effectiveSubscriptionTransitions);
+ Mockito.when(subscriptionInternalApi.getBillingTransitions(Mockito.<SubscriptionBase>any(), Mockito.<InternalTenantContext>any())).thenReturn(effectiveSubscriptionTransitions);
+ Mockito.when(subscriptionInternalApi.getAllTransitions(Mockito.<SubscriptionBase>any(), Mockito.<InternalTenantContext>any())).thenReturn(effectiveSubscriptionTransitions);
catalog = ((MockCatalog) catalogService.getCurrentCatalog());
// TODO The MockCatalog module returns two different things for full vs current catalog
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 4c19894..c87ff8f 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
@@ -29,7 +29,7 @@ import com.ning.billing.entitlement.api.BlockingState;
import com.ning.billing.entitlement.api.Type;
import com.ning.billing.junction.plumbing.billing.BlockingCalculator.DisabledDuration;
import com.ning.billing.subscription.api.SubscriptionTransitionType;
-import com.ning.billing.subscription.api.user.Subscription;
+import com.ning.billing.subscription.api.SubscriptionBase;
import com.ning.billing.util.svcapi.junction.BillingEvent;
import com.ning.billing.util.svcapi.junction.BillingModeType;
import com.ning.billing.util.svcapi.junction.DefaultBlockingState;
@@ -62,19 +62,19 @@ public class TestBlockingCalculator extends JunctionTestSuiteNoDB {
private final UUID bundleId2 = UUID.randomUUID();
private Account account;
- private Subscription subscription1;
- private Subscription subscription2;
- private Subscription subscription3;
- private Subscription subscription4;
+ private SubscriptionBase subscription1;
+ private SubscriptionBase subscription2;
+ private SubscriptionBase subscription3;
+ private SubscriptionBase subscription4;
@BeforeMethod(groups = "fast")
public void beforeMethod() throws Exception {
super.beforeMethod();
account = Mockito.mock(Account.class);
- subscription1 = Mockito.mock(Subscription.class);
- subscription2 = Mockito.mock(Subscription.class);
- subscription3 = Mockito.mock(Subscription.class);
- subscription4 = Mockito.mock(Subscription.class);
+ subscription1 = Mockito.mock(SubscriptionBase.class);
+ subscription2 = Mockito.mock(SubscriptionBase.class);
+ subscription3 = Mockito.mock(SubscriptionBase.class);
+ subscription4 = Mockito.mock(SubscriptionBase.class);
Mockito.when(account.getId()).thenReturn(UUID.randomUUID());
Mockito.when(subscription1.getBundleId()).thenReturn(bundleId1);
Mockito.when(subscription2.getBundleId()).thenReturn(bundleId1);
@@ -519,11 +519,11 @@ public class TestBlockingCalculator extends JunctionTestSuiteNoDB {
}
- protected BillingEvent createRealEvent(final DateTime effectiveDate, final Subscription subscription) {
+ protected BillingEvent createRealEvent(final DateTime effectiveDate, final SubscriptionBase subscription) {
return createRealEvent(effectiveDate, subscription, SubscriptionTransitionType.CHANGE);
}
- protected BillingEvent createRealEvent(final DateTime effectiveDate, final Subscription subscription, final SubscriptionTransitionType type) {
+ protected BillingEvent createRealEvent(final DateTime effectiveDate, final SubscriptionBase subscription, final SubscriptionTransitionType type) {
final Account account = this.account;
final Integer billCycleDay = 1;
final PlanPhase planPhase = new MockPlanPhase();
@@ -622,7 +622,7 @@ public class TestBlockingCalculator extends JunctionTestSuiteNoDB {
events.add(createBillingEvent(subscription3));
events.add(createBillingEvent(subscription4));
- final Hashtable<UUID, List<Subscription>> map = blockingCalculator.createBundleSubscriptionMap(events);
+ final Hashtable<UUID, List<SubscriptionBase>> map = blockingCalculator.createBundleSubscriptionMap(events);
assertNotNull(map);
assertEquals(map.keySet().size(), 2);
@@ -631,7 +631,7 @@ public class TestBlockingCalculator extends JunctionTestSuiteNoDB {
}
- private BillingEvent createBillingEvent(final Subscription subscription) {
+ private BillingEvent createBillingEvent(final SubscriptionBase subscription) {
final BillingEvent result = Mockito.mock(BillingEvent.class);
Mockito.when(result.getSubscription()).thenReturn(subscription);
Mockito.when(result.compareTo(Mockito.<BillingEvent>any())).thenReturn(1);
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 5a23dbe..9773172 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
@@ -41,7 +41,7 @@ import com.ning.billing.catalog.api.PhaseType;
import com.ning.billing.catalog.api.Plan;
import com.ning.billing.catalog.api.PlanPhase;
import com.ning.billing.subscription.api.SubscriptionTransitionType;
-import com.ning.billing.subscription.api.user.Subscription;
+import com.ning.billing.subscription.api.SubscriptionBase;
import com.ning.billing.junction.JunctionTestSuiteNoDB;
import com.ning.billing.mock.MockAccountBuilder;
import com.ning.billing.util.svcapi.junction.BillingEvent;
@@ -176,11 +176,11 @@ public class TestDefaultBillingEvent extends JunctionTestSuiteNoDB {
Assert.assertEquals(event.toString(), "DefaultBillingEvent{type=CREATE, effectiveDate=2012-01-01T00:02:04.000Z, planPhaseName=Test-trial, subscriptionId=00000000-0000-0000-0000-000000000000, totalOrdering=1, accountId=" + event.getAccount().getId().toString() + "}");
}
- private BillingEvent createEvent(final Subscription sub, final DateTime effectiveDate, final SubscriptionTransitionType type) {
+ private BillingEvent createEvent(final SubscriptionBase sub, final DateTime effectiveDate, final SubscriptionTransitionType type) {
return createEvent(sub, effectiveDate, type, 1L);
}
- private BillingEvent createEvent(final Subscription sub, final DateTime effectiveDate, final SubscriptionTransitionType type, final long totalOrdering) {
+ private BillingEvent createEvent(final SubscriptionBase sub, final DateTime effectiveDate, final SubscriptionTransitionType type, final long totalOrdering) {
final int billCycleDay = 1;
final Plan shotgun = new MockPlan();
@@ -200,8 +200,8 @@ public class TestDefaultBillingEvent extends JunctionTestSuiteNoDB {
BillingPeriod.MONTHLY, phaseType);
}
- private Subscription subscription(final UUID id) {
- final Subscription subscription = Mockito.mock(Subscription.class);
+ private SubscriptionBase subscription(final UUID id) {
+ final SubscriptionBase subscription = Mockito.mock(SubscriptionBase.class);
Mockito.when(subscription.getId()).thenReturn(id);
return subscription;
}
diff --git a/osgi-bundles/libs/killbill/src/main/java/com/ning/killbill/osgi/libs/killbill/OSGIKillbillAPI.java b/osgi-bundles/libs/killbill/src/main/java/com/ning/killbill/osgi/libs/killbill/OSGIKillbillAPI.java
index b021cec..5bf07b0 100644
--- a/osgi-bundles/libs/killbill/src/main/java/com/ning/killbill/osgi/libs/killbill/OSGIKillbillAPI.java
+++ b/osgi-bundles/libs/killbill/src/main/java/com/ning/killbill/osgi/libs/killbill/OSGIKillbillAPI.java
@@ -16,18 +16,20 @@
package com.ning.killbill.osgi.libs.killbill;
+import org.osgi.framework.BundleContext;
+import org.osgi.util.tracker.ServiceTracker;
+
import com.ning.billing.account.api.AccountUserApi;
import com.ning.billing.catalog.api.CatalogUserApi;
+import com.ning.billing.entitlement.api.EntitlementApi;
import com.ning.billing.invoice.api.InvoicePaymentApi;
import com.ning.billing.invoice.api.InvoiceUserApi;
-import com.ning.billing.entitlement.api.EntitlementApi;
import com.ning.billing.osgi.api.OSGIKillbill;
import com.ning.billing.osgi.api.config.PluginConfigServiceApi;
import com.ning.billing.overdue.OverdueUserApi;
import com.ning.billing.payment.api.PaymentApi;
import com.ning.billing.subscription.api.timeline.SubscriptionTimelineApi;
import com.ning.billing.subscription.api.transfer.SubscriptionTransferApi;
-import com.ning.billing.subscription.api.user.SubscriptionUserApi;
import com.ning.billing.tenant.api.TenantUserApi;
import com.ning.billing.usage.api.UsageUserApi;
import com.ning.billing.util.api.AuditUserApi;
@@ -35,8 +37,6 @@ import com.ning.billing.util.api.CustomFieldUserApi;
import com.ning.billing.util.api.ExportUserApi;
import com.ning.billing.util.api.RecordIdApi;
import com.ning.billing.util.api.TagUserApi;
-import org.osgi.framework.BundleContext;
-import org.osgi.util.tracker.ServiceTracker;
public class OSGIKillbillAPI extends OSGIKillbillLibraryBase implements OSGIKillbill {
diff --git a/overdue/src/main/java/com/ning/billing/overdue/applicator/OverdueStateApplicator.java b/overdue/src/main/java/com/ning/billing/overdue/applicator/OverdueStateApplicator.java
index 0cb10dc..cc91d3f 100644
--- a/overdue/src/main/java/com/ning/billing/overdue/applicator/OverdueStateApplicator.java
+++ b/overdue/src/main/java/com/ning/billing/overdue/applicator/OverdueStateApplicator.java
@@ -34,7 +34,7 @@ import com.ning.billing.bus.api.PersistentBus;
import com.ning.billing.catalog.api.ActionPolicy;
import com.ning.billing.catalog.api.ProductCategory;
import com.ning.billing.subscription.api.user.SubscriptionUserApiException;
-import com.ning.billing.subscription.api.user.Subscription;
+import com.ning.billing.subscription.api.SubscriptionBase;
import com.ning.billing.subscription.api.user.SubscriptionBundle;
import com.ning.billing.entitlement.api.Blockable;
import com.ning.billing.entitlement.api.BlockingApiException;
@@ -218,10 +218,10 @@ public class OverdueStateApplicator<T extends Blockable> {
default:
throw new IllegalStateException("Unexpected OverdueCancellationPolicy " + nextOverdueState.getSubscriptionCancellationPolicy());
}
- final List<Subscription> toBeCancelled = new LinkedList<Subscription>();
+ final List<SubscriptionBase> toBeCancelled = new LinkedList<SubscriptionBase>();
computeSubscriptionsToCancel(blockable, toBeCancelled, context);
- for (final Subscription cur : toBeCancelled) {
- // STEPH Need conversion toCallContext because we are calling a public API through the Subscription object
+ for (final SubscriptionBase cur : toBeCancelled) {
+ // STEPH Need conversion toCallContext because we are calling a public API through the SubscriptionBase object
cur.cancelWithPolicy(clock.getUTCNow(), actionPolicy, context.toCallContext());
}
} catch (SubscriptionUserApiException e) {
@@ -230,11 +230,11 @@ public class OverdueStateApplicator<T extends Blockable> {
}
@SuppressWarnings("unchecked")
- private void computeSubscriptionsToCancel(final T blockable, final List<Subscription> result, final InternalTenantContext context) throws SubscriptionUserApiException {
- if (blockable instanceof Subscription) {
- result.add((Subscription) blockable);
+ private void computeSubscriptionsToCancel(final T blockable, final List<SubscriptionBase> result, final InternalTenantContext context) throws SubscriptionUserApiException {
+ if (blockable instanceof SubscriptionBase) {
+ result.add((SubscriptionBase) blockable);
} else if (blockable instanceof SubscriptionBundle) {
- for (final Subscription cur : subscriptionInternalApi.getSubscriptionsForBundle(blockable.getId(), context)) {
+ for (final SubscriptionBase cur : subscriptionInternalApi.getSubscriptionsForBundle(blockable.getId(), context)) {
// Entitlement is smart enough and will cancel the associated add-ons
if (!ProductCategory.ADD_ON.equals(cur.getCategory())) {
computeSubscriptionsToCancel((T) cur, result, context);
@@ -263,7 +263,7 @@ public class OverdueStateApplicator<T extends Blockable> {
final Type overdueableType = Type.get(overdueable);
try {
if (Type.SUBSCRIPTION.equals(overdueableType)) {
- final UUID bundleId = ((Subscription) overdueable).getBundleId();
+ final UUID bundleId = ((SubscriptionBase) overdueable).getBundleId();
final SubscriptionBundle bundle = subscriptionInternalApi.getBundleFromId(bundleId, context);
account = accountApi.getAccountById(bundle.getAccountId(), context);
} else if (Type.SUBSCRIPTION_BUNDLE.equals(overdueableType)) {
diff --git a/overdue/src/main/java/com/ning/billing/overdue/calculator/BillingStateCalculatorBundle.java b/overdue/src/main/java/com/ning/billing/overdue/calculator/BillingStateCalculatorBundle.java
index be3e4b0..28de5b6 100644
--- a/overdue/src/main/java/com/ning/billing/overdue/calculator/BillingStateCalculatorBundle.java
+++ b/overdue/src/main/java/com/ning/billing/overdue/calculator/BillingStateCalculatorBundle.java
@@ -32,7 +32,7 @@ import com.ning.billing.catalog.api.PhaseType;
import com.ning.billing.catalog.api.PriceList;
import com.ning.billing.catalog.api.Product;
import com.ning.billing.subscription.api.user.SubscriptionUserApiException;
-import com.ning.billing.subscription.api.user.Subscription;
+import com.ning.billing.subscription.api.SubscriptionBase;
import com.ning.billing.subscription.api.user.SubscriptionBundle;
import com.ning.billing.invoice.api.Invoice;
import com.ning.billing.invoice.api.InvoiceItem;
@@ -68,7 +68,7 @@ public class BillingStateCalculatorBundle extends BillingStateCalculator<Subscri
final Account account = accountApi.getAccountById(bundle.getAccountId(), context);
final SortedSet<Invoice> unpaidInvoices = unpaidInvoicesForBundle(bundle.getId(), bundle.getAccountId(), account.getTimeZone(), context);
- final Subscription basePlan = getBasePlanIfExist(bundle.getId(), context);
+ final SubscriptionBase basePlan = getBasePlanIfExist(bundle.getId(), context);
final UUID id = bundle.getId();
final int numberOfUnpaidInvoices = unpaidInvoices.size();
@@ -133,9 +133,9 @@ public class BillingStateCalculatorBundle extends BillingStateCalculator<Subscri
return result;
}
- private Subscription getBasePlanIfExist(UUID bundleId, final InternalTenantContext context) throws SubscriptionUserApiException {
+ private SubscriptionBase getBasePlanIfExist(UUID bundleId, final InternalTenantContext context) throws SubscriptionUserApiException {
try {
- final Subscription basePlan = subscriptionApi.getBaseSubscription(bundleId, context);
+ final SubscriptionBase basePlan = subscriptionApi.getBaseSubscription(bundleId, context);
return basePlan;
} catch (SubscriptionUserApiException e) {
if (e.getCode() == ErrorCode.SUB_GET_NO_SUCH_BASE_SUBSCRIPTION.getCode()) {
diff --git a/overdue/src/test/java/com/ning/billing/ovedue/notification/TestDefaultOverdueCheckPoster.java b/overdue/src/test/java/com/ning/billing/ovedue/notification/TestDefaultOverdueCheckPoster.java
index cdd1d14..29c1e08 100644
--- a/overdue/src/test/java/com/ning/billing/ovedue/notification/TestDefaultOverdueCheckPoster.java
+++ b/overdue/src/test/java/com/ning/billing/ovedue/notification/TestDefaultOverdueCheckPoster.java
@@ -26,7 +26,7 @@ import org.testng.Assert;
import org.testng.annotations.BeforeMethod;
import org.testng.annotations.Test;
-import com.ning.billing.subscription.api.user.Subscription;
+import com.ning.billing.subscription.api.SubscriptionBase;
import com.ning.billing.subscription.api.user.SubscriptionBundle;
import com.ning.billing.entitlement.api.Blockable;
import com.ning.billing.entitlement.api.Type;
@@ -64,7 +64,7 @@ public class TestDefaultOverdueCheckPoster extends OverdueTestSuiteWithEmbeddedD
@Test(groups = "slow")
public void testShouldntInsertMultipleNotificationsPerOverdueable() throws Exception {
final UUID subscriptionId = UUID.randomUUID();
- final Blockable overdueable = Mockito.mock(Subscription.class);
+ final Blockable overdueable = Mockito.mock(SubscriptionBase.class);
Mockito.when(overdueable.getId()).thenReturn(subscriptionId);
insertOverdueCheckAndVerifyQueueContent(overdueable, 10, 10);
diff --git a/overdue/src/test/java/com/ning/billing/overdue/calculator/TestBillingStateCalculatorBundle.java b/overdue/src/test/java/com/ning/billing/overdue/calculator/TestBillingStateCalculatorBundle.java
index 1766d7f..00d1f50 100644
--- a/overdue/src/test/java/com/ning/billing/overdue/calculator/TestBillingStateCalculatorBundle.java
+++ b/overdue/src/test/java/com/ning/billing/overdue/calculator/TestBillingStateCalculatorBundle.java
@@ -34,7 +34,7 @@ import com.ning.billing.catalog.MockPlan;
import com.ning.billing.catalog.MockPriceList;
import com.ning.billing.catalog.api.Plan;
import com.ning.billing.catalog.api.PriceList;
-import com.ning.billing.subscription.api.user.Subscription;
+import com.ning.billing.subscription.api.SubscriptionBase;
import com.ning.billing.subscription.api.user.SubscriptionBundle;
import com.ning.billing.invoice.api.Invoice;
import com.ning.billing.invoice.api.InvoiceItem;
@@ -68,7 +68,7 @@ public class TestBillingStateCalculatorBundle extends TestBillingStateCalculator
Mockito.when(bundle.getId()).thenReturn(bundleId);
final SubscriptionInternalApi subscriptionApi = Mockito.mock(SubscriptionInternalApi.class);
- final Subscription subscription = Mockito.mock(Subscription.class);
+ final SubscriptionBase subscription = Mockito.mock(SubscriptionBase.class);
Mockito.when(subscriptionApi.getBaseSubscription(Mockito.eq(bundleId), Mockito.<InternalTenantContext>any())).thenReturn(subscription);
final BillingStateCalculatorBundle calc = new BillingStateCalculatorBundle(subscriptionApi, invoiceApi, accountApi, clock);
@@ -127,7 +127,7 @@ public class TestBillingStateCalculatorBundle extends TestBillingStateCalculator
Mockito.when(bundle.getId()).thenReturn(thisBundleId);
Mockito.when(bundle.getAccountId()).thenReturn(UUID.randomUUID());
- final Subscription subscription = Mockito.mock(Subscription.class);
+ final SubscriptionBase subscription = Mockito.mock(SubscriptionBase.class);
Mockito.when(subscriptionApi.getBaseSubscription(Mockito.<UUID>any(), Mockito.<InternalTenantContext>any())).thenReturn(subscription);
final Plan plan = MockPlan.createBicycleNoTrialEvergreen1USD();
@@ -162,7 +162,7 @@ public class TestBillingStateCalculatorBundle extends TestBillingStateCalculator
Mockito.when(bundle.getId()).thenReturn(thisBundleId);
Mockito.when(bundle.getAccountId()).thenReturn(UUID.randomUUID());
- final Subscription subscription = Mockito.mock(Subscription.class);
+ final SubscriptionBase subscription = Mockito.mock(SubscriptionBase.class);
Mockito.when(subscriptionApi.getBaseSubscription(Mockito.<UUID>any(), Mockito.<InternalTenantContext>any())).thenReturn(subscription);
final Plan plan = MockPlan.createBicycleNoTrialEvergreen1USD();
diff --git a/overdue/src/test/java/com/ning/billing/overdue/notification/TestOverdueCheckNotifier.java b/overdue/src/test/java/com/ning/billing/overdue/notification/TestOverdueCheckNotifier.java
index 7d6783f..e60ee9c 100644
--- a/overdue/src/test/java/com/ning/billing/overdue/notification/TestOverdueCheckNotifier.java
+++ b/overdue/src/test/java/com/ning/billing/overdue/notification/TestOverdueCheckNotifier.java
@@ -27,7 +27,7 @@ import org.testng.annotations.BeforeMethod;
import org.testng.annotations.Test;
import com.ning.billing.account.api.Account;
-import com.ning.billing.subscription.api.user.Subscription;
+import com.ning.billing.subscription.api.SubscriptionBase;
import com.ning.billing.entitlement.api.Blockable;
import com.ning.billing.ovedue.notification.DefaultOverdueCheckNotifier;
import com.ning.billing.ovedue.notification.OverdueCheckNotificationKey;
@@ -78,7 +78,7 @@ public class TestOverdueCheckNotifier extends OverdueTestSuiteWithEmbeddedDB {
final Account account = Mockito.mock(Account.class);
Mockito.when(accountApi.getAccountById(Mockito.<UUID>any(), Mockito.<InternalTenantContext>any())).thenReturn(account);
- final Subscription subscription = Mockito.mock(Subscription.class);
+ final SubscriptionBase subscription = Mockito.mock(SubscriptionBase.class);
Mockito.when(subscriptionApi.getSubscriptionFromId(Mockito.<UUID>any(), Mockito.<InternalTenantContext>any())).thenReturn(subscription);
mockListener = new OverdueListenerMock(internalCallContextFactory);
@@ -98,7 +98,7 @@ public class TestOverdueCheckNotifier extends OverdueTestSuiteWithEmbeddedDB {
@Test(groups = "slow")
public void test() throws Exception {
final UUID subscriptionId = new UUID(0L, 1L);
- final Blockable blockable = Mockito.mock(Subscription.class);
+ final Blockable blockable = Mockito.mock(SubscriptionBase.class);
Mockito.when(blockable.getId()).thenReturn(subscriptionId);
final DateTime now = clock.getUTCNow();
final DateTime readyTime = now.plusMillis(2000);
diff --git a/overdue/src/test/java/com/ning/billing/overdue/TestOverdueHelper.java b/overdue/src/test/java/com/ning/billing/overdue/TestOverdueHelper.java
index 300d763..7d9ad84 100644
--- a/overdue/src/test/java/com/ning/billing/overdue/TestOverdueHelper.java
+++ b/overdue/src/test/java/com/ning/billing/overdue/TestOverdueHelper.java
@@ -30,7 +30,7 @@ import com.ning.billing.account.api.Account;
import com.ning.billing.account.api.AccountApiException;
import com.ning.billing.catalog.MockPlan;
import com.ning.billing.catalog.MockPriceList;
-import com.ning.billing.subscription.api.user.Subscription;
+import com.ning.billing.subscription.api.SubscriptionBase;
import com.ning.billing.subscription.api.user.SubscriptionBundle;
import com.ning.billing.invoice.api.Invoice;
import com.ning.billing.invoice.api.InvoiceItem;
@@ -147,7 +147,7 @@ public class TestOverdueHelper {
invoices.add(invoice);
Mockito.when(invoiceInternalApi.getUnpaidInvoicesByAccountId(Mockito.<UUID>any(), Mockito.<LocalDate>any(), Mockito.<InternalTenantContext>any())).thenReturn(invoices);
- final Subscription base = Mockito.mock(Subscription.class);
+ final SubscriptionBase base = Mockito.mock(SubscriptionBase.class);
Mockito.when(base.getCurrentPlan()).thenReturn(MockPlan.createBicycleNoTrialEvergreen1USD());
Mockito.when(base.getCurrentPriceList()).thenReturn(new MockPriceList());
Mockito.when(base.getCurrentPhase()).thenReturn(MockPlan.createBicycleNoTrialEvergreen1USD().getFinalPhase());
diff --git a/subscription/src/main/java/com/ning/billing/subscription/alignment/PlanAligner.java b/subscription/src/main/java/com/ning/billing/subscription/alignment/PlanAligner.java
index b540f20..f8252e0 100644
--- a/subscription/src/main/java/com/ning/billing/subscription/alignment/PlanAligner.java
+++ b/subscription/src/main/java/com/ning/billing/subscription/alignment/PlanAligner.java
@@ -135,7 +135,7 @@ public class PlanAligner extends BaseAligner {
}
/**
- * Returns next Phase for that Subscription at a point in time
+ * Returns next Phase for that SubscriptionBase at a point in time
*
* @param subscription the subscription for which we need to compute the next Phase event
* @param requestedDate the requested date
diff --git a/subscription/src/main/java/com/ning/billing/subscription/api/SubscriptionApiBase.java b/subscription/src/main/java/com/ning/billing/subscription/api/SubscriptionApiBase.java
index 220426c..59a7209 100644
--- a/subscription/src/main/java/com/ning/billing/subscription/api/SubscriptionApiBase.java
+++ b/subscription/src/main/java/com/ning/billing/subscription/api/SubscriptionApiBase.java
@@ -24,7 +24,7 @@ import com.ning.billing.subscription.api.user.SubscriptionBuilder;
import com.ning.billing.subscription.api.user.SubscriptionData;
import com.ning.billing.subscription.engine.dao.SubscriptionDao;
import com.ning.billing.subscription.events.SubscriptionEvent;
-import com.ning.billing.subscription.api.user.Subscription;
+import com.ning.billing.subscription.api.SubscriptionBase;
import com.ning.billing.clock.Clock;
import com.google.common.base.Function;
@@ -45,16 +45,16 @@ public class SubscriptionApiBase {
this.catalogService = catalogService;
}
- protected List<Subscription> createSubscriptionsForApiUse(final List<Subscription> internalSubscriptions) {
- return new ArrayList<Subscription>(Collections2.transform(internalSubscriptions, new Function<Subscription, Subscription>() {
+ protected List<SubscriptionBase> createSubscriptionsForApiUse(final List<SubscriptionBase> internalSubscriptions) {
+ return new ArrayList<SubscriptionBase>(Collections2.transform(internalSubscriptions, new Function<SubscriptionBase, SubscriptionBase>() {
@Override
- public Subscription apply(final Subscription subscription) {
+ public SubscriptionBase apply(final SubscriptionBase subscription) {
return createSubscriptionForApiUse((SubscriptionData) subscription);
}
}));
}
- protected SubscriptionData createSubscriptionForApiUse(final Subscription internalSubscription) {
+ protected SubscriptionData createSubscriptionForApiUse(final SubscriptionBase internalSubscription) {
return new SubscriptionData((SubscriptionData) internalSubscription, apiService, clock);
}
diff --git a/subscription/src/main/java/com/ning/billing/subscription/api/svcs/DefaultSubscriptionInternalApi.java b/subscription/src/main/java/com/ning/billing/subscription/api/svcs/DefaultSubscriptionInternalApi.java
index 5729a38..a20d4fb 100644
--- a/subscription/src/main/java/com/ning/billing/subscription/api/svcs/DefaultSubscriptionInternalApi.java
+++ b/subscription/src/main/java/com/ning/billing/subscription/api/svcs/DefaultSubscriptionInternalApi.java
@@ -41,7 +41,7 @@ import com.ning.billing.subscription.api.SubscriptionApiBase;
import com.ning.billing.subscription.api.user.DefaultEffectiveSubscriptionEvent;
import com.ning.billing.subscription.api.user.DefaultSubscriptionApiService;
import com.ning.billing.subscription.api.user.DefaultSubscriptionStatusDryRun;
-import com.ning.billing.subscription.api.user.Subscription;
+import com.ning.billing.subscription.api.SubscriptionBase;
import com.ning.billing.subscription.api.user.SubscriptionBuilder;
import com.ning.billing.subscription.api.user.SubscriptionBundle;
import com.ning.billing.subscription.api.user.SubscriptionBundleData;
@@ -82,7 +82,7 @@ public class DefaultSubscriptionInternalApi extends SubscriptionApiBase implemen
}
@Override
- public Subscription createSubscription(final UUID bundleId, final PlanPhaseSpecifier spec, final DateTime requestedDateWithMs, final InternalCallContext context) throws SubscriptionUserApiException {
+ public SubscriptionBase createSubscription(final UUID bundleId, final PlanPhaseSpecifier spec, final DateTime requestedDateWithMs, final InternalCallContext context) throws SubscriptionUserApiException {
try {
final String realPriceList = (spec.getPriceListName() == null) ? PriceListSet.DEFAULT_PRICELIST_NAME : spec.getPriceListName();
final DateTime now = clock.getUTCNow();
@@ -115,7 +115,7 @@ public class DefaultSubscriptionInternalApi extends SubscriptionApiBase implemen
throw new SubscriptionUserApiException(ErrorCode.SUB_CREATE_BP_EXISTS, bundleId);
} else {
// If we do create on an existing CANCELLED BP, this is equivalent to call recreate on that Subscription.
- final Subscription recreatedSubscriptionForApiUse = createSubscriptionForApiUse(baseSubscription);
+ final SubscriptionBase recreatedSubscriptionForApiUse = createSubscriptionForApiUse(baseSubscription);
recreatedSubscriptionForApiUse.recreate(spec, requestedDate, context.toCallContext());
return recreatedSubscriptionForApiUse;
}
@@ -177,16 +177,16 @@ public class DefaultSubscriptionInternalApi extends SubscriptionApiBase implemen
}
@Override
- public List<Subscription> getSubscriptionsForBundle(UUID bundleId,
+ public List<SubscriptionBase> getSubscriptionsForBundle(UUID bundleId,
InternalTenantContext context) {
- final List<Subscription> internalSubscriptions = dao.getSubscriptions(bundleId, context);
+ final List<SubscriptionBase> internalSubscriptions = dao.getSubscriptions(bundleId, context);
return createSubscriptionsForApiUse(internalSubscriptions);
}
@Override
- public Subscription getBaseSubscription(UUID bundleId,
+ public SubscriptionBase getBaseSubscription(UUID bundleId,
InternalTenantContext context) throws SubscriptionUserApiException {
- final Subscription result = dao.getBaseSubscription(bundleId, context);
+ final SubscriptionBase result = dao.getBaseSubscription(bundleId, context);
if (result == null) {
throw new SubscriptionUserApiException(ErrorCode.SUB_GET_NO_SUCH_BASE_SUBSCRIPTION, bundleId);
}
@@ -195,9 +195,9 @@ public class DefaultSubscriptionInternalApi extends SubscriptionApiBase implemen
@Override
- public Subscription getSubscriptionFromId(UUID id,
+ public SubscriptionBase getSubscriptionFromId(UUID id,
InternalTenantContext context) throws SubscriptionUserApiException {
- final Subscription result = dao.getSubscriptionFromId(id, context);
+ final SubscriptionBase result = dao.getSubscriptionFromId(id, context);
if (result == null) {
throw new SubscriptionUserApiException(ErrorCode.SUB_INVALID_SUBSCRIPTION_ID, id);
}
@@ -230,13 +230,13 @@ public class DefaultSubscriptionInternalApi extends SubscriptionApiBase implemen
}
@Override
- public List<EffectiveSubscriptionInternalEvent> getAllTransitions(final Subscription subscription, final InternalTenantContext context) {
+ public List<EffectiveSubscriptionInternalEvent> getAllTransitions(final SubscriptionBase subscription, final InternalTenantContext context) {
final List<SubscriptionTransition> transitions = ((SubscriptionData) subscription).getAllTransitions();
return convertEffectiveSubscriptionInternalEventFromSubscriptionTransitions(subscription, context, transitions);
}
@Override
- public List<EffectiveSubscriptionInternalEvent> getBillingTransitions(final Subscription subscription, final InternalTenantContext context) {
+ public List<EffectiveSubscriptionInternalEvent> getBillingTransitions(final SubscriptionBase subscription, final InternalTenantContext context) {
final List<SubscriptionTransition> transitions = ((SubscriptionData) subscription).getBillingTransitions();
return convertEffectiveSubscriptionInternalEventFromSubscriptionTransitions(subscription, context, transitions);
}
@@ -246,8 +246,8 @@ public class DefaultSubscriptionInternalApi extends SubscriptionApiBase implemen
final List<SubscriptionBundle> bundles = getBundlesForAccount(accountId, context);
DateTime result = null;
for (final SubscriptionBundle bundle : bundles) {
- final List<Subscription> subscriptions = getSubscriptionsForBundle(bundle.getId(), context);
- for (final Subscription subscription : subscriptions) {
+ final List<SubscriptionBase> subscriptions = getSubscriptionsForBundle(bundle.getId(), context);
+ for (final SubscriptionBase subscription : subscriptions) {
final DateTime chargedThruDate = subscription.getChargedThroughDate();
if (result == null ||
(chargedThruDate != null && chargedThruDate.isBefore(result))) {
@@ -260,7 +260,7 @@ public class DefaultSubscriptionInternalApi extends SubscriptionApiBase implemen
@Override
public List<SubscriptionStatusDryRun> getDryRunChangePlanStatus(final UUID subscriptionId, @Nullable final String baseProductName, final DateTime requestedDate, final InternalTenantContext context) throws SubscriptionUserApiException {
- final Subscription subscription = dao.getSubscriptionFromId(subscriptionId, context);
+ final SubscriptionBase subscription = dao.getSubscriptionFromId(subscriptionId, context);
if (subscription == null) {
throw new SubscriptionUserApiException(ErrorCode.SUB_INVALID_SUBSCRIPTION_ID, subscriptionId);
}
@@ -270,8 +270,8 @@ public class DefaultSubscriptionInternalApi extends SubscriptionApiBase implemen
final List<SubscriptionStatusDryRun> result = new LinkedList<SubscriptionStatusDryRun>();
- final List<Subscription> bundleSubscriptions = dao.getSubscriptions(subscription.getBundleId(), context);
- for (final Subscription cur : bundleSubscriptions) {
+ final List<SubscriptionBase> bundleSubscriptions = dao.getSubscriptions(subscription.getBundleId(), context);
+ for (final SubscriptionBase cur : bundleSubscriptions) {
if (cur.getId().equals(subscriptionId)) {
continue;
}
@@ -300,7 +300,7 @@ public class DefaultSubscriptionInternalApi extends SubscriptionApiBase implemen
return result;
}
- private List<EffectiveSubscriptionInternalEvent> convertEffectiveSubscriptionInternalEventFromSubscriptionTransitions(final Subscription subscription,
+ private List<EffectiveSubscriptionInternalEvent> convertEffectiveSubscriptionInternalEventFromSubscriptionTransitions(final SubscriptionBase subscription,
final InternalTenantContext context, final List<SubscriptionTransition> transitions) {
return ImmutableList.<EffectiveSubscriptionInternalEvent>copyOf(Collections2.transform(transitions, new Function<SubscriptionTransition, EffectiveSubscriptionInternalEvent>() {
@Override
diff --git a/subscription/src/main/java/com/ning/billing/subscription/api/timeline/DefaultSubscriptionTimelineApi.java b/subscription/src/main/java/com/ning/billing/subscription/api/timeline/DefaultSubscriptionTimelineApi.java
index 9292639..f0d78ce 100644
--- a/subscription/src/main/java/com/ning/billing/subscription/api/timeline/DefaultSubscriptionTimelineApi.java
+++ b/subscription/src/main/java/com/ning/billing/subscription/api/timeline/DefaultSubscriptionTimelineApi.java
@@ -46,7 +46,7 @@ import com.ning.billing.subscription.events.SubscriptionEvent;
import com.ning.billing.subscription.glue.DefaultSubscriptionModule;
import com.ning.billing.subscription.api.SubscriptionTransitionType;
import com.ning.billing.subscription.api.timeline.SubscriptionTimeline.NewEvent;
-import com.ning.billing.subscription.api.user.Subscription;
+import com.ning.billing.subscription.api.SubscriptionBase;
import com.ning.billing.subscription.api.user.SubscriptionBundle;
import com.ning.billing.subscription.api.user.SubscriptionTransition;
import com.ning.billing.util.callcontext.CallContext;
@@ -126,10 +126,10 @@ public class DefaultSubscriptionTimelineApi extends SubscriptionApiBase implemen
}
}
- private List<SubscriptionDataRepair> convertToSubscriptionsDataRepair(List<Subscription> input) {
- return new ArrayList<SubscriptionDataRepair>(Collections2.transform(input, new Function<Subscription, SubscriptionDataRepair>() {
+ private List<SubscriptionDataRepair> convertToSubscriptionsDataRepair(List<SubscriptionBase> input) {
+ return new ArrayList<SubscriptionDataRepair>(Collections2.transform(input, new Function<SubscriptionBase, SubscriptionDataRepair>() {
@Override
- public SubscriptionDataRepair apply(@Nullable final Subscription subscription) {
+ public SubscriptionDataRepair apply(@Nullable final SubscriptionBase subscription) {
return convertToSubscriptionDataRepair((SubscriptionData) subscription);
}
}));
@@ -167,7 +167,7 @@ public class DefaultSubscriptionTimelineApi extends SubscriptionApiBase implemen
SubscriptionDataRepair baseSubscriptionRepair = null;
final List<SubscriptionDataRepair> addOnSubscriptionInRepair = new LinkedList<SubscriptionDataRepair>();
final List<SubscriptionDataRepair> inRepair = new LinkedList<SubscriptionDataRepair>();
- for (final Subscription cur : subscriptions) {
+ for (final SubscriptionBase cur : subscriptions) {
final SubscriptionTimeline curRepair = findAndCreateSubscriptionRepair(cur.getId(), input.getSubscriptions());
if (curRepair != null) {
final SubscriptionDataRepair curInputRepair = ((SubscriptionDataRepair) cur);
@@ -221,7 +221,7 @@ public class DefaultSubscriptionTimelineApi extends SubscriptionApiBase implemen
switch (repairType) {
case BASE_REPAIR:
// We need to add any existing addon that are not in the input repair list
- for (final Subscription cur : subscriptions) {
+ for (final SubscriptionBase cur : subscriptions) {
if (cur.getCategory() == ProductCategory.ADD_ON && !inRepair.contains(cur)) {
final SubscriptionDataRepair curOutputRepair = createSubscriptionDataRepair((SubscriptionDataRepair) cur, newBundleStartDate, null, ((SubscriptionDataRepair) cur).getEvents());
repairDao.initializeRepair(curOutputRepair.getId(), ((SubscriptionDataRepair) cur).getEvents(), tenantContext);
@@ -269,7 +269,7 @@ public class DefaultSubscriptionTimelineApi extends SubscriptionApiBase implemen
}
}
- private RepairType getRepairType(final Subscription firstSubscription, final boolean gotBaseSubscription) {
+ private RepairType getRepairType(final SubscriptionBase firstSubscription, final boolean gotBaseSubscription) {
if (firstSubscription.getCategory() == ProductCategory.BASE) {
return gotBaseSubscription ? RepairType.BASE_REPAIR : RepairType.ADD_ON_REPAIR;
} else {
@@ -298,7 +298,7 @@ public class DefaultSubscriptionTimelineApi extends SubscriptionApiBase implemen
throws SubscriptionRepairException {
for (final SubscriptionTimeline cur : input) {
boolean found = false;
- for (final Subscription s : subscriptions) {
+ for (final SubscriptionBase s : subscriptions) {
if (s.getId().equals(cur.getId())) {
found = true;
break;
@@ -393,7 +393,7 @@ public class DefaultSubscriptionTimelineApi extends SubscriptionApiBase implemen
private String getViewId(final DateTime lastUpdateBundleDate, final List<SubscriptionDataRepair> subscriptions) {
final StringBuilder tmp = new StringBuilder();
long lastOrderedId = -1;
- for (final Subscription cur : subscriptions) {
+ for (final SubscriptionBase cur : subscriptions) {
lastOrderedId = lastOrderedId < ((SubscriptionData) cur).getLastEventOrderedId() ? ((SubscriptionData) cur).getLastEventOrderedId() : lastOrderedId;
}
tmp.append(lastOrderedId);
@@ -446,7 +446,7 @@ public class DefaultSubscriptionTimelineApi extends SubscriptionApiBase implemen
result.add(cur);
}
- for (final Subscription cur : subscriptions) {
+ for (final SubscriptionBase cur : subscriptions) {
if (!repairIds.contains(cur.getId())) {
result.add(new DefaultSubscriptionTimeline((SubscriptionDataRepair) cur, catalogService.getFullCatalog()));
}
diff --git a/subscription/src/main/java/com/ning/billing/subscription/api/user/DefaultSubscriptionApiService.java b/subscription/src/main/java/com/ning/billing/subscription/api/user/DefaultSubscriptionApiService.java
index a234c48..fe39c2c 100644
--- a/subscription/src/main/java/com/ning/billing/subscription/api/user/DefaultSubscriptionApiService.java
+++ b/subscription/src/main/java/com/ning/billing/subscription/api/user/DefaultSubscriptionApiService.java
@@ -42,6 +42,7 @@ import com.ning.billing.catalog.api.ProductCategory;
import com.ning.billing.subscription.alignment.PlanAligner;
import com.ning.billing.subscription.alignment.TimedPhase;
import com.ning.billing.subscription.api.SubscriptionApiService;
+import com.ning.billing.subscription.api.SubscriptionBase;
import com.ning.billing.subscription.engine.addon.AddonUtils;
import com.ning.billing.subscription.engine.dao.SubscriptionDao;
import com.ning.billing.subscription.events.SubscriptionEvent;
@@ -374,12 +375,12 @@ public class DefaultSubscriptionApiService implements SubscriptionApiService {
final Product baseProduct = (baseSubscription.getState() == SubscriptionState.CANCELLED) ? null : baseSubscription.getCurrentPlan().getProduct();
- final List<Subscription> subscriptions = dao.getSubscriptions(baseSubscription.getBundleId(), context);
+ final List<SubscriptionBase> subscriptions = dao.getSubscriptions(baseSubscription.getBundleId(), context);
final List<SubscriptionData> subscriptionsToBeCancelled = new LinkedList<SubscriptionData>();
final List<SubscriptionEvent> cancelEvents = new LinkedList<SubscriptionEvent>();
- for (final Subscription subscription : subscriptions) {
+ for (final SubscriptionBase subscription : subscriptions) {
final SubscriptionData cur = (SubscriptionData) subscription;
if (cur.getState() == SubscriptionState.CANCELLED ||
cur.getCategory() != ProductCategory.ADD_ON) {
diff --git a/subscription/src/main/java/com/ning/billing/subscription/api/user/SubscriptionData.java b/subscription/src/main/java/com/ning/billing/subscription/api/user/SubscriptionData.java
index e173871..5c701db 100644
--- a/subscription/src/main/java/com/ning/billing/subscription/api/user/SubscriptionData.java
+++ b/subscription/src/main/java/com/ning/billing/subscription/api/user/SubscriptionData.java
@@ -37,7 +37,11 @@ import com.ning.billing.catalog.api.PlanPhase;
import com.ning.billing.catalog.api.PlanPhaseSpecifier;
import com.ning.billing.catalog.api.PriceList;
import com.ning.billing.catalog.api.ProductCategory;
+import com.ning.billing.clock.Clock;
+import com.ning.billing.entitlement.api.BlockingState;
import com.ning.billing.subscription.api.SubscriptionApiService;
+import com.ning.billing.subscription.api.SubscriptionBase;
+import com.ning.billing.subscription.api.SubscriptionTransitionType;
import com.ning.billing.subscription.api.user.SubscriptionTransitionDataIterator.Kind;
import com.ning.billing.subscription.api.user.SubscriptionTransitionDataIterator.Order;
import com.ning.billing.subscription.api.user.SubscriptionTransitionDataIterator.TimeLimit;
@@ -48,13 +52,10 @@ import com.ning.billing.subscription.events.phase.PhaseEvent;
import com.ning.billing.subscription.events.user.ApiEvent;
import com.ning.billing.subscription.events.user.ApiEventType;
import com.ning.billing.subscription.exceptions.SubscriptionError;
-import com.ning.billing.subscription.api.SubscriptionTransitionType;
-import com.ning.billing.entitlement.api.BlockingState;
import com.ning.billing.util.callcontext.CallContext;
-import com.ning.billing.clock.Clock;
import com.ning.billing.util.entity.EntityBase;
-public class SubscriptionData extends EntityBase implements Subscription {
+public class SubscriptionData extends EntityBase implements SubscriptionBase {
private static final Logger log = LoggerFactory.getLogger(SubscriptionData.class);
@@ -138,8 +139,8 @@ public class SubscriptionData extends EntityBase implements Subscription {
@Override
public SubscriptionState getState() {
- return (getPreviousTransition() == null) ? null
- : getPreviousTransition().getNextState();
+ return (getPreviousTransition() == null) ? null
+ : getPreviousTransition().getNextState();
}
@Override
@@ -149,32 +150,32 @@ public class SubscriptionData extends EntityBase implements Subscription {
}
final SubscriptionTransitionData initialTransition = (SubscriptionTransitionData) transitions.get(0);
switch (initialTransition.getApiEventType()) {
- case MIGRATE_BILLING:
- case MIGRATE_ENTITLEMENT:
- return SubscriptionSourceType.MIGRATED;
- case TRANSFER:
- return SubscriptionSourceType.TRANSFERED;
- default:
- return SubscriptionSourceType.NATIVE;
+ case MIGRATE_BILLING:
+ case MIGRATE_ENTITLEMENT:
+ return SubscriptionSourceType.MIGRATED;
+ case TRANSFER:
+ return SubscriptionSourceType.TRANSFERED;
+ default:
+ return SubscriptionSourceType.NATIVE;
}
}
@Override
public PlanPhase getCurrentPhase() {
return (getPreviousTransition() == null) ? null
- : getPreviousTransition().getNextPhase();
+ : getPreviousTransition().getNextPhase();
}
@Override
public Plan getCurrentPlan() {
return (getPreviousTransition() == null) ? null
- : getPreviousTransition().getNextPlan();
+ : getPreviousTransition().getNextPlan();
}
@Override
public PriceList getCurrentPriceList() {
return (getPreviousTransition() == null) ? null :
- getPreviousTransition().getNextPriceList();
+ getPreviousTransition().getNextPriceList();
}
@@ -223,19 +224,19 @@ public class SubscriptionData extends EntityBase implements Subscription {
@Override
public boolean changePlan(final String productName, final BillingPeriod term, final String priceList,
- final DateTime requestedDate, final CallContext context) throws SubscriptionUserApiException {
+ final DateTime requestedDate, final CallContext context) throws SubscriptionUserApiException {
return apiService.changePlan(this, productName, term, priceList, requestedDate, context);
}
@Override
public boolean changePlanWithPolicy(final String productName, final BillingPeriod term, final String priceList,
- final DateTime requestedDate, final ActionPolicy policy, final CallContext context) throws SubscriptionUserApiException {
+ final DateTime requestedDate, final ActionPolicy policy, final CallContext context) throws SubscriptionUserApiException {
return apiService.changePlanWithPolicy(this, productName, term, priceList, requestedDate, policy, context);
}
@Override
public boolean recreate(final PlanPhaseSpecifier spec, final DateTime requestedDate,
- final CallContext context) throws SubscriptionUserApiException {
+ final CallContext context) throws SubscriptionUserApiException {
return apiService.recreatePlan(this, spec, requestedDate, context);
}
@@ -353,7 +354,7 @@ public class SubscriptionData extends EntityBase implements Subscription {
final int prime = 31;
int result = 1;
result = prime * result
- + ((id == null) ? 0 : id.hashCode());
+ + ((id == null) ? 0 : id.hashCode());
return result;
}
@@ -399,7 +400,7 @@ public class SubscriptionData extends EntityBase implements Subscription {
// Since UNCANCEL are not part of the transitions, we compute a new 'UNCANCEL' transition based on the event right before that UNCANCEL
// This is used to be able to send a bus event for uncancellation
if (prev != null && event.getType() == EventType.API_USER && ((ApiEvent) event).getEventType() == ApiEventType.UNCANCEL) {
- final SubscriptionTransitionData withSeq = new SubscriptionTransitionData((SubscriptionTransitionData)prev, EventType.API_USER, ApiEventType.UNCANCEL, seqId);
+ final SubscriptionTransitionData withSeq = new SubscriptionTransitionData((SubscriptionTransitionData) prev, EventType.API_USER, ApiEventType.UNCANCEL, seqId);
return withSeq;
}
return null;
@@ -413,7 +414,7 @@ public class SubscriptionData extends EntityBase implements Subscription {
final SubscriptionTransitionDataIterator it = new SubscriptionTransitionDataIterator(
clock, transitions, Order.DESC_FROM_FUTURE, Kind.SUBSCRIPTION,
Visibility.FROM_DISK_ONLY, TimeLimit.ALL);
- return it.hasNext() ? ((SubscriptionTransitionData)it.next()).getTotalOrdering() : -1L;
+ return it.hasNext() ? ((SubscriptionTransitionData) it.next()).getTotalOrdering() : -1L;
}
public long getActiveVersion() {
@@ -436,8 +437,8 @@ public class SubscriptionData extends EntityBase implements Subscription {
if (!foundInitialEvent) {
foundInitialEvent = curTransition.getEventType() == EventType.API_USER &&
(curTransition.getApiEventType() == ApiEventType.CREATE ||
- curTransition.getApiEventType() == ApiEventType.MIGRATE_BILLING ||
- curTransition.getApiEventType() == ApiEventType.TRANSFER);
+ curTransition.getApiEventType() == ApiEventType.MIGRATE_BILLING ||
+ curTransition.getApiEventType() == ApiEventType.TRANSFER);
}
if (foundInitialEvent) {
result.add(curTransition);
@@ -453,19 +454,19 @@ public class SubscriptionData extends EntityBase implements Subscription {
}
final SubscriptionTransitionDataIterator it = new SubscriptionTransitionDataIterator(clock,
- transitions,
- Order.DESC_FROM_FUTURE,
- Kind.SUBSCRIPTION,
- Visibility.ALL,
- TimeLimit.PAST_OR_PRESENT_ONLY);
+ transitions,
+ Order.DESC_FROM_FUTURE,
+ Kind.SUBSCRIPTION,
+ Visibility.ALL,
+ TimeLimit.PAST_OR_PRESENT_ONLY);
while (it.hasNext()) {
final SubscriptionTransitionData cur = (SubscriptionTransitionData) it.next();
if (cur.getTransitionType() == SubscriptionTransitionType.CREATE
- || cur.getTransitionType() == SubscriptionTransitionType.RE_CREATE
- || cur.getTransitionType() == SubscriptionTransitionType.TRANSFER
- || cur.getTransitionType() == SubscriptionTransitionType.CHANGE
- || cur.getTransitionType() == SubscriptionTransitionType.MIGRATE_ENTITLEMENT) {
+ || cur.getTransitionType() == SubscriptionTransitionType.RE_CREATE
+ || cur.getTransitionType() == SubscriptionTransitionType.TRANSFER
+ || cur.getTransitionType() == SubscriptionTransitionType.CHANGE
+ || cur.getTransitionType() == SubscriptionTransitionType.MIGRATE_ENTITLEMENT) {
return cur;
}
}
@@ -478,7 +479,7 @@ public class SubscriptionData extends EntityBase implements Subscription {
}
public DateTime getPlanChangeEffectiveDate(final ActionPolicy policy,
- final DateTime requestedDate) {
+ final DateTime requestedDate) {
if (policy == ActionPolicy.IMMEDIATE) {
return requestedDate;
@@ -492,7 +493,7 @@ public class SubscriptionData extends EntityBase implements Subscription {
return requestedDate;
} else {
return chargedThroughDate.isBefore(requestedDate) ? requestedDate
- : chargedThroughDate;
+ : chargedThroughDate;
}
}
@@ -509,11 +510,11 @@ public class SubscriptionData extends EntityBase implements Subscription {
final SubscriptionTransitionData cur = (SubscriptionTransitionData) it.next();
if (cur.getTransitionType() == SubscriptionTransitionType.PHASE
- || cur.getTransitionType() == SubscriptionTransitionType.TRANSFER
- || cur.getTransitionType() == SubscriptionTransitionType.CREATE
- || cur.getTransitionType() == SubscriptionTransitionType.RE_CREATE
- || cur.getTransitionType() == SubscriptionTransitionType.CHANGE
- || cur.getTransitionType() == SubscriptionTransitionType.MIGRATE_ENTITLEMENT) {
+ || cur.getTransitionType() == SubscriptionTransitionType.TRANSFER
+ || cur.getTransitionType() == SubscriptionTransitionType.CREATE
+ || cur.getTransitionType() == SubscriptionTransitionType.RE_CREATE
+ || cur.getTransitionType() == SubscriptionTransitionType.CHANGE
+ || cur.getTransitionType() == SubscriptionTransitionType.MIGRATE_ENTITLEMENT) {
return cur.getEffectiveTransitionTime();
}
}
@@ -562,53 +563,53 @@ public class SubscriptionData extends EntityBase implements Subscription {
switch (cur.getType()) {
- case PHASE:
- final PhaseEvent phaseEV = (PhaseEvent) cur;
- nextPhaseName = phaseEV.getPhase();
- break;
-
- case API_USER:
- final ApiEvent userEV = (ApiEvent) cur;
- apiEventType = userEV.getEventType();
- isFromDisk = userEV.isFromDisk();
-
- switch (apiEventType) {
- case TRANSFER:
- case MIGRATE_BILLING:
- case MIGRATE_ENTITLEMENT:
- case CREATE:
- case RE_CREATE:
- prevEventId = null;
- prevCreatedDate = null;
- previousState = null;
- previousPlan = null;
- previousPhase = null;
- previousPriceList = null;
- nextState = SubscriptionState.ACTIVE;
- nextPlanName = userEV.getEventPlan();
- nextPhaseName = userEV.getEventPlanPhase();
- nextPriceListName = userEV.getPriceList();
- break;
- case CHANGE:
- nextPlanName = userEV.getEventPlan();
- nextPhaseName = userEV.getEventPlanPhase();
- nextPriceListName = userEV.getPriceList();
+ case PHASE:
+ final PhaseEvent phaseEV = (PhaseEvent) cur;
+ nextPhaseName = phaseEV.getPhase();
break;
- case CANCEL:
- nextState = SubscriptionState.CANCELLED;
- nextPlanName = null;
- nextPhaseName = null;
+
+ case API_USER:
+ final ApiEvent userEV = (ApiEvent) cur;
+ apiEventType = userEV.getEventType();
+ isFromDisk = userEV.isFromDisk();
+
+ switch (apiEventType) {
+ case TRANSFER:
+ case MIGRATE_BILLING:
+ case MIGRATE_ENTITLEMENT:
+ case CREATE:
+ case RE_CREATE:
+ prevEventId = null;
+ prevCreatedDate = null;
+ previousState = null;
+ previousPlan = null;
+ previousPhase = null;
+ previousPriceList = null;
+ nextState = SubscriptionState.ACTIVE;
+ nextPlanName = userEV.getEventPlan();
+ nextPhaseName = userEV.getEventPlanPhase();
+ nextPriceListName = userEV.getPriceList();
+ break;
+ case CHANGE:
+ nextPlanName = userEV.getEventPlan();
+ nextPhaseName = userEV.getEventPlanPhase();
+ nextPriceListName = userEV.getPriceList();
+ break;
+ case CANCEL:
+ nextState = SubscriptionState.CANCELLED;
+ nextPlanName = null;
+ nextPhaseName = null;
+ break;
+ case UNCANCEL:
+ default:
+ throw new SubscriptionError(String.format(
+ "Unexpected UserEvent type = %s", userEV
+ .getEventType().toString()));
+ }
break;
- case UNCANCEL:
default:
throw new SubscriptionError(String.format(
- "Unexpected UserEvent type = %s", userEV
- .getEventType().toString()));
- }
- break;
- default:
- throw new SubscriptionError(String.format(
- "Unexpected Event type = %s", cur.getType()));
+ "Unexpected Event type = %s", cur.getType()));
}
Plan nextPlan = null;
diff --git a/subscription/src/main/java/com/ning/billing/subscription/api/user/SubscriptionTransitionDataIterator.java b/subscription/src/main/java/com/ning/billing/subscription/api/user/SubscriptionTransitionDataIterator.java
index cdc4b00..93a5aa9 100644
--- a/subscription/src/main/java/com/ning/billing/subscription/api/user/SubscriptionTransitionDataIterator.java
+++ b/subscription/src/main/java/com/ning/billing/subscription/api/user/SubscriptionTransitionDataIterator.java
@@ -93,7 +93,7 @@ public class SubscriptionTransitionDataIterator implements Iterator<Subscription
}
private boolean shouldSkipForSubscriptionEvents(final SubscriptionTransitionData input) {
- // Subscription system knows about all events except for MIGRATE_BILLING
+ // SubscriptionBase system knows about all events except for MIGRATE_BILLING
return (input.getTransitionType() == SubscriptionTransitionType.MIGRATE_BILLING);
}
diff --git a/subscription/src/main/java/com/ning/billing/subscription/engine/dao/DefaultSubscriptionDao.java b/subscription/src/main/java/com/ning/billing/subscription/engine/dao/DefaultSubscriptionDao.java
index 7dcd9c7..c0c5de2 100644
--- a/subscription/src/main/java/com/ning/billing/subscription/engine/dao/DefaultSubscriptionDao.java
+++ b/subscription/src/main/java/com/ning/billing/subscription/engine/dao/DefaultSubscriptionDao.java
@@ -75,7 +75,7 @@ import com.ning.billing.notificationq.api.NotificationEvent;
import com.ning.billing.notificationq.api.NotificationQueue;
import com.ning.billing.notificationq.api.NotificationQueueService;
import com.ning.billing.notificationq.api.NotificationQueueService.NoSuchNotificationQueue;
-import com.ning.billing.subscription.api.user.Subscription;
+import com.ning.billing.subscription.api.SubscriptionBase;
import com.ning.billing.subscription.api.user.SubscriptionBundle;
import com.ning.billing.util.cache.CacheControllerDispatcher;
import com.ning.billing.util.callcontext.InternalCallContext;
@@ -214,15 +214,15 @@ public class DefaultSubscriptionDao implements SubscriptionDao {
}
@Override
- public Subscription getBaseSubscription(final UUID bundleId, final InternalTenantContext context) {
+ public SubscriptionBase getBaseSubscription(final UUID bundleId, final InternalTenantContext context) {
return getBaseSubscription(bundleId, true, context);
}
@Override
- public Subscription getSubscriptionFromId(final UUID subscriptionId, final InternalTenantContext context) {
- final Subscription shellSubscription = transactionalSqlDao.execute(new EntitySqlDaoTransactionWrapper<Subscription>() {
+ public SubscriptionBase getSubscriptionFromId(final UUID subscriptionId, final InternalTenantContext context) {
+ final SubscriptionBase shellSubscription = transactionalSqlDao.execute(new EntitySqlDaoTransactionWrapper<SubscriptionBase>() {
@Override
- public Subscription inTransaction(final EntitySqlDaoWrapperFactory<EntitySqlDao> entitySqlDaoWrapperFactory) throws Exception {
+ public SubscriptionBase inTransaction(final EntitySqlDaoWrapperFactory<EntitySqlDao> entitySqlDaoWrapperFactory) throws Exception {
final SubscriptionModelDao model = entitySqlDaoWrapperFactory.become(SubscriptionSqlDao.class).getById(subscriptionId.toString(), context);
return SubscriptionModelDao.toSubscription(model);
}
@@ -232,18 +232,18 @@ public class DefaultSubscriptionDao implements SubscriptionDao {
@Override
- public List<Subscription> getSubscriptions(final UUID bundleId, final InternalTenantContext context) {
+ public List<SubscriptionBase> getSubscriptions(final UUID bundleId, final InternalTenantContext context) {
return buildBundleSubscriptions(bundleId, getSubscriptionFromBundleId(bundleId, context), context);
}
- private List<Subscription> getSubscriptionFromBundleId(final UUID bundleId, final InternalTenantContext context) {
- return transactionalSqlDao.execute(new EntitySqlDaoTransactionWrapper<List<Subscription>>() {
+ private List<SubscriptionBase> getSubscriptionFromBundleId(final UUID bundleId, final InternalTenantContext context) {
+ return transactionalSqlDao.execute(new EntitySqlDaoTransactionWrapper<List<SubscriptionBase>>() {
@Override
- public List<Subscription> inTransaction(final EntitySqlDaoWrapperFactory<EntitySqlDao> entitySqlDaoWrapperFactory) throws Exception {
+ public List<SubscriptionBase> inTransaction(final EntitySqlDaoWrapperFactory<EntitySqlDao> entitySqlDaoWrapperFactory) throws Exception {
final List<SubscriptionModelDao> models = entitySqlDaoWrapperFactory.become(SubscriptionSqlDao.class).getSubscriptionsFromBundleId(bundleId.toString(), context);
- return new ArrayList<Subscription>(Collections2.transform(models, new Function<SubscriptionModelDao, Subscription>() {
+ return new ArrayList<SubscriptionBase>(Collections2.transform(models, new Function<SubscriptionModelDao, SubscriptionBase>() {
@Override
- public Subscription apply(@Nullable final SubscriptionModelDao input) {
+ public SubscriptionBase apply(@Nullable final SubscriptionModelDao input) {
return SubscriptionModelDao.toSubscription(input);
}
}));
@@ -253,11 +253,11 @@ public class DefaultSubscriptionDao implements SubscriptionDao {
@Override
- public List<Subscription> getSubscriptionsForAccountAndKey(final UUID accountId,
+ public List<SubscriptionBase> getSubscriptionsForAccountAndKey(final UUID accountId,
final String bundleKey, final InternalTenantContext context) {
- return transactionalSqlDao.execute(new EntitySqlDaoTransactionWrapper<List<Subscription>>() {
+ return transactionalSqlDao.execute(new EntitySqlDaoTransactionWrapper<List<SubscriptionBase>>() {
@Override
- public List<Subscription> inTransaction(final EntitySqlDaoWrapperFactory<EntitySqlDao> entitySqlDaoWrapperFactory) throws Exception {
+ public List<SubscriptionBase> inTransaction(final EntitySqlDaoWrapperFactory<EntitySqlDao> entitySqlDaoWrapperFactory) throws Exception {
final SubscriptionBundleModelDao bundleModel = entitySqlDaoWrapperFactory.become(BundleSqlDao.class).getBundleFromAccountAndKey(accountId.toString(), bundleKey, context);
if (bundleModel == null) {
return Collections.emptyList();
@@ -686,14 +686,14 @@ public class DefaultSubscriptionDao implements SubscriptionDao {
}
}
- private Subscription buildSubscription(final Subscription input, final InternalTenantContext context) {
+ private SubscriptionBase buildSubscription(final SubscriptionBase input, final InternalTenantContext context) {
if (input == null) {
return null;
}
- final List<Subscription> bundleInput = new ArrayList<Subscription>();
+ final List<SubscriptionBase> bundleInput = new ArrayList<SubscriptionBase>();
if (input.getCategory() == ProductCategory.ADD_ON) {
- final Subscription baseSubscription = getBaseSubscription(input.getBundleId(), false, context);
+ final SubscriptionBase baseSubscription = getBaseSubscription(input.getBundleId(), false, context);
if (baseSubscription == null) {
return null;
}
@@ -704,8 +704,8 @@ public class DefaultSubscriptionDao implements SubscriptionDao {
bundleInput.add(input);
}
- final List<Subscription> reloadedSubscriptions = buildBundleSubscriptions(input.getBundleId(), bundleInput, context);
- for (final Subscription cur : reloadedSubscriptions) {
+ final List<SubscriptionBase> reloadedSubscriptions = buildBundleSubscriptions(input.getBundleId(), bundleInput, context);
+ for (final SubscriptionBase cur : reloadedSubscriptions) {
if (cur.getId().equals(input.getId())) {
return cur;
}
@@ -714,15 +714,15 @@ public class DefaultSubscriptionDao implements SubscriptionDao {
throw new SubscriptionError("Unexpected code path in buildSubscription");
}
- private List<Subscription> buildBundleSubscriptions(final UUID bundleId, final List<Subscription> input, final InternalTenantContext context) {
+ private List<SubscriptionBase> buildBundleSubscriptions(final UUID bundleId, final List<SubscriptionBase> input, final InternalTenantContext context) {
if (input == null || input.size() == 0) {
return Collections.emptyList();
}
// Make sure BasePlan -- if exists-- is first
- Collections.sort(input, new Comparator<Subscription>() {
+ Collections.sort(input, new Comparator<SubscriptionBase>() {
@Override
- public int compare(final Subscription o1, final Subscription o2) {
+ public int compare(final SubscriptionBase o1, final SubscriptionBase o2) {
if (o1.getCategory() == ProductCategory.BASE) {
return -1;
} else if (o2.getCategory() == ProductCategory.BASE) {
@@ -734,10 +734,10 @@ public class DefaultSubscriptionDao implements SubscriptionDao {
});
SubscriptionEvent futureBaseEvent = null;
- final List<Subscription> result = new ArrayList<Subscription>(input.size());
- for (final Subscription cur : input) {
+ final List<SubscriptionBase> result = new ArrayList<SubscriptionBase>(input.size());
+ for (final SubscriptionBase cur : input) {
final List<SubscriptionEvent> events = getEventsForSubscription(cur.getId(), context);
- Subscription reloaded = createSubscriptionForInternalUse(cur, events);
+ SubscriptionBase reloaded = createSubscriptionForInternalUse(cur, events);
switch (cur.getCategory()) {
case BASE:
@@ -861,7 +861,7 @@ public class DefaultSubscriptionDao implements SubscriptionDao {
});
}
- private SubscriptionData createSubscriptionForInternalUse(final Subscription shellSubscription, final List<SubscriptionEvent> events) {
+ private SubscriptionData createSubscriptionForInternalUse(final SubscriptionBase shellSubscription, final List<SubscriptionEvent> events) {
final SubscriptionData result = new SubscriptionData(new SubscriptionBuilder(((SubscriptionData) shellSubscription)), null, clock);
if (events.size() > 0) {
result.rebuildTransitions(events, catalogService.getFullCatalog());
@@ -869,9 +869,9 @@ public class DefaultSubscriptionDao implements SubscriptionDao {
return result;
}
- private Subscription getBaseSubscription(final UUID bundleId, final boolean rebuildSubscription, final InternalTenantContext context) {
- final List<Subscription> subscriptions = getSubscriptionFromBundleId(bundleId, context);
- for (final Subscription cur : subscriptions) {
+ private SubscriptionBase getBaseSubscription(final UUID bundleId, final boolean rebuildSubscription, final InternalTenantContext context) {
+ final List<SubscriptionBase> subscriptions = getSubscriptionFromBundleId(bundleId, context);
+ for (final SubscriptionBase cur : subscriptions) {
if (cur.getCategory() == ProductCategory.BASE) {
return rebuildSubscription ? buildSubscription(cur, context) : cur;
}
diff --git a/subscription/src/main/java/com/ning/billing/subscription/engine/dao/model/SubscriptionModelDao.java b/subscription/src/main/java/com/ning/billing/subscription/engine/dao/model/SubscriptionModelDao.java
index 5777fb8..d9ae780 100644
--- a/subscription/src/main/java/com/ning/billing/subscription/engine/dao/model/SubscriptionModelDao.java
+++ b/subscription/src/main/java/com/ning/billing/subscription/engine/dao/model/SubscriptionModelDao.java
@@ -23,12 +23,12 @@ import org.joda.time.DateTime;
import com.ning.billing.catalog.api.ProductCategory;
import com.ning.billing.subscription.api.user.SubscriptionBuilder;
import com.ning.billing.subscription.api.user.SubscriptionData;
-import com.ning.billing.subscription.api.user.Subscription;
+import com.ning.billing.subscription.api.SubscriptionBase;
import com.ning.billing.util.dao.TableName;
import com.ning.billing.util.entity.EntityBase;
import com.ning.billing.util.entity.dao.EntityModelDao;
-public class SubscriptionModelDao extends EntityBase implements EntityModelDao<Subscription> {
+public class SubscriptionModelDao extends EntityBase implements EntityModelDao<SubscriptionBase> {
private UUID bundleId;
private ProductCategory category;
@@ -85,7 +85,7 @@ public class SubscriptionModelDao extends EntityBase implements EntityModelDao<S
return paidThroughDate;
}
- public static Subscription toSubscription(final SubscriptionModelDao src) {
+ public static SubscriptionBase toSubscription(final SubscriptionModelDao src) {
if (src == null) {
return null;
}
diff --git a/subscription/src/main/java/com/ning/billing/subscription/engine/dao/RepairSubscriptionDao.java b/subscription/src/main/java/com/ning/billing/subscription/engine/dao/RepairSubscriptionDao.java
index 4a3a2d7..cfe4db8 100644
--- a/subscription/src/main/java/com/ning/billing/subscription/engine/dao/RepairSubscriptionDao.java
+++ b/subscription/src/main/java/com/ning/billing/subscription/engine/dao/RepairSubscriptionDao.java
@@ -36,7 +36,7 @@ import com.ning.billing.subscription.api.user.SubscriptionBundleData;
import com.ning.billing.subscription.api.user.SubscriptionData;
import com.ning.billing.subscription.events.SubscriptionEvent;
import com.ning.billing.subscription.exceptions.SubscriptionError;
-import com.ning.billing.subscription.api.user.Subscription;
+import com.ning.billing.subscription.api.SubscriptionBase;
import com.ning.billing.subscription.api.user.SubscriptionBundle;
import com.ning.billing.util.callcontext.InternalCallContext;
import com.ning.billing.util.callcontext.InternalTenantContext;
@@ -239,7 +239,7 @@ public class RepairSubscriptionDao implements SubscriptionDao, RepairSubscriptio
}
@Override
- public Subscription getSubscriptionFromId(final UUID subscriptionId, final InternalTenantContext context) {
+ public SubscriptionBase getSubscriptionFromId(final UUID subscriptionId, final InternalTenantContext context) {
throw new SubscriptionError(NOT_IMPLEMENTED);
}
@@ -249,17 +249,17 @@ public class RepairSubscriptionDao implements SubscriptionDao, RepairSubscriptio
}
@Override
- public Subscription getBaseSubscription(final UUID bundleId, final InternalTenantContext context) {
+ public SubscriptionBase getBaseSubscription(final UUID bundleId, final InternalTenantContext context) {
throw new SubscriptionError(NOT_IMPLEMENTED);
}
@Override
- public List<Subscription> getSubscriptions(final UUID bundleId, final InternalTenantContext context) {
+ public List<SubscriptionBase> getSubscriptions(final UUID bundleId, final InternalTenantContext context) {
throw new SubscriptionError(NOT_IMPLEMENTED);
}
@Override
- public List<Subscription> getSubscriptionsForAccountAndKey(final UUID accountId,
+ public List<SubscriptionBase> getSubscriptionsForAccountAndKey(final UUID accountId,
final String bundleKey, final InternalTenantContext context) {
throw new SubscriptionError(NOT_IMPLEMENTED);
}
diff --git a/subscription/src/main/java/com/ning/billing/subscription/engine/dao/SubscriptionDao.java b/subscription/src/main/java/com/ning/billing/subscription/engine/dao/SubscriptionDao.java
index 9108b06..2a347a6 100644
--- a/subscription/src/main/java/com/ning/billing/subscription/engine/dao/SubscriptionDao.java
+++ b/subscription/src/main/java/com/ning/billing/subscription/engine/dao/SubscriptionDao.java
@@ -27,7 +27,7 @@ import com.ning.billing.subscription.api.transfer.TransferCancelData;
import com.ning.billing.subscription.api.user.SubscriptionBundleData;
import com.ning.billing.subscription.api.user.SubscriptionData;
import com.ning.billing.subscription.events.SubscriptionEvent;
-import com.ning.billing.subscription.api.user.Subscription;
+import com.ning.billing.subscription.api.SubscriptionBase;
import com.ning.billing.subscription.api.user.SubscriptionBundle;
import com.ning.billing.util.callcontext.InternalCallContext;
import com.ning.billing.util.callcontext.InternalTenantContext;
@@ -45,17 +45,17 @@ public interface SubscriptionDao {
public SubscriptionBundle createSubscriptionBundle(SubscriptionBundleData bundle, InternalCallContext context);
- public Subscription getSubscriptionFromId(UUID subscriptionId, InternalTenantContext context);
+ public SubscriptionBase getSubscriptionFromId(UUID subscriptionId, InternalTenantContext context);
// ACCOUNT retrieval
public UUID getAccountIdFromSubscriptionId(UUID subscriptionId, InternalTenantContext context);
- // Subscription retrieval
- public Subscription getBaseSubscription(UUID bundleId, InternalTenantContext context);
+ // SubscriptionBase retrieval
+ public SubscriptionBase getBaseSubscription(UUID bundleId, InternalTenantContext context);
- public List<Subscription> getSubscriptions(UUID bundleId, InternalTenantContext context);
+ public List<SubscriptionBase> getSubscriptions(UUID bundleId, InternalTenantContext context);
- public List<Subscription> getSubscriptionsForAccountAndKey(UUID accountId, String bundleKey, InternalTenantContext context);
+ public List<SubscriptionBase> getSubscriptionsForAccountAndKey(UUID accountId, String bundleKey, InternalTenantContext context);
// Update
public void updateChargedThroughDate(SubscriptionData subscription, InternalCallContext context);
@@ -71,7 +71,7 @@ public interface SubscriptionDao {
public List<SubscriptionEvent> getPendingEventsForSubscription(UUID subscriptionId, InternalTenantContext context);
- // Subscription creation, cancellation, changePlan apis
+ // SubscriptionBase creation, cancellation, changePlan apis
public void createSubscription(SubscriptionData subscription, List<SubscriptionEvent> initialEvents, InternalCallContext context);
public void recreateSubscription(SubscriptionData subscription, List<SubscriptionEvent> recreateEvents, InternalCallContext context);
diff --git a/subscription/src/main/java/com/ning/billing/subscription/engine/dao/SubscriptionSqlDao.java b/subscription/src/main/java/com/ning/billing/subscription/engine/dao/SubscriptionSqlDao.java
index 9e3d485..920c6dd 100644
--- a/subscription/src/main/java/com/ning/billing/subscription/engine/dao/SubscriptionSqlDao.java
+++ b/subscription/src/main/java/com/ning/billing/subscription/engine/dao/SubscriptionSqlDao.java
@@ -25,7 +25,7 @@ import org.skife.jdbi.v2.sqlobject.SqlQuery;
import org.skife.jdbi.v2.sqlobject.SqlUpdate;
import com.ning.billing.subscription.engine.dao.model.SubscriptionModelDao;
-import com.ning.billing.subscription.api.user.Subscription;
+import com.ning.billing.subscription.api.SubscriptionBase;
import com.ning.billing.util.audit.ChangeType;
import com.ning.billing.util.callcontext.InternalCallContext;
import com.ning.billing.util.callcontext.InternalTenantContext;
@@ -34,7 +34,7 @@ import com.ning.billing.util.entity.dao.EntitySqlDao;
import com.ning.billing.util.entity.dao.EntitySqlDaoStringTemplate;
@EntitySqlDaoStringTemplate
-public interface SubscriptionSqlDao extends EntitySqlDao<SubscriptionModelDao, Subscription> {
+public interface SubscriptionSqlDao extends EntitySqlDao<SubscriptionModelDao, SubscriptionBase> {
@SqlQuery
public List<SubscriptionModelDao> getSubscriptionsFromBundleId(@Bind("bundleId") String bundleId,
diff --git a/subscription/src/test/java/com/ning/billing/subscription/api/migration/TestMigration.java b/subscription/src/test/java/com/ning/billing/subscription/api/migration/TestMigration.java
index 9dc7fc4..107f8f7 100644
--- a/subscription/src/test/java/com/ning/billing/subscription/api/migration/TestMigration.java
+++ b/subscription/src/test/java/com/ning/billing/subscription/api/migration/TestMigration.java
@@ -33,7 +33,7 @@ import com.ning.billing.subscription.api.migration.SubscriptionMigrationApi.Acco
import com.ning.billing.subscription.api.user.SubscriptionData;
import com.ning.billing.subscription.api.user.SubscriptionTransitionData;
import com.ning.billing.subscription.events.user.ApiEventType;
-import com.ning.billing.subscription.api.user.Subscription;
+import com.ning.billing.subscription.api.SubscriptionBase;
import com.ning.billing.subscription.api.user.SubscriptionBundle;
import com.ning.billing.subscription.api.user.SubscriptionState;
import com.ning.billing.subscription.api.user.SubscriptionTransition;
@@ -62,9 +62,9 @@ public class TestMigration extends SubscriptionTestSuiteWithEmbeddedDB {
assertEquals(bundles.size(), 1);
final SubscriptionBundle bundle = bundles.get(0);
- final List<Subscription> subscriptions = subscriptionInternalApi.getSubscriptionsForBundle(bundle.getId(), internalCallContext);
+ final List<SubscriptionBase> subscriptions = subscriptionInternalApi.getSubscriptionsForBundle(bundle.getId(), internalCallContext);
assertEquals(subscriptions.size(), 1);
- final Subscription subscription = subscriptions.get(0);
+ final SubscriptionBase subscription = subscriptions.get(0);
assertTrue(subscription.getStartDate().compareTo(startDate) == 0);
assertEquals(subscription.getEndDate(), null);
assertEquals(subscription.getCurrentPriceList().getName(), PriceListSet.DEFAULT_PRICELIST_NAME);
@@ -97,10 +97,10 @@ public class TestMigration extends SubscriptionTestSuiteWithEmbeddedDB {
assertEquals(bundles.size(), 1);
final SubscriptionBundle bundle = bundles.get(0);
- final List<Subscription> subscriptions = subscriptionInternalApi.getSubscriptionsForBundle(bundle.getId(), internalCallContext);
+ final List<SubscriptionBase> subscriptions = subscriptionInternalApi.getSubscriptionsForBundle(bundle.getId(), internalCallContext);
assertEquals(subscriptions.size(), 2);
- final Subscription baseSubscription = (subscriptions.get(0).getCurrentPlan().getProduct().getCategory() == ProductCategory.BASE) ?
+ final SubscriptionBase baseSubscription = (subscriptions.get(0).getCurrentPlan().getProduct().getCategory() == ProductCategory.BASE) ?
subscriptions.get(0) : subscriptions.get(1);
assertTrue(baseSubscription.getStartDate().compareTo(initalBPStart) == 0);
assertEquals(baseSubscription.getEndDate(), null);
@@ -110,7 +110,7 @@ public class TestMigration extends SubscriptionTestSuiteWithEmbeddedDB {
assertEquals(baseSubscription.getCurrentPlan().getName(), "shotgun-annual");
assertEquals(baseSubscription.getChargedThroughDate(), initalBPStart.plusYears(1));
- final Subscription aoSubscription = (subscriptions.get(0).getCurrentPlan().getProduct().getCategory() == ProductCategory.ADD_ON) ?
+ final SubscriptionBase aoSubscription = (subscriptions.get(0).getCurrentPlan().getProduct().getCategory() == ProductCategory.ADD_ON) ?
subscriptions.get(0) : subscriptions.get(1);
// initalAddonStart.plusMonths(1).minusMonths(1) may be different from initalAddonStart, depending on exact date
// e.g : March 31 + 1 month => April 30 and April 30 - 1 month = March 30 which is != March 31 !!!!
@@ -146,9 +146,9 @@ public class TestMigration extends SubscriptionTestSuiteWithEmbeddedDB {
final SubscriptionBundle bundle = bundles.get(0);
//assertEquals(bundle.getStartDate(), effectiveDate);
- final List<Subscription> subscriptions = subscriptionInternalApi.getSubscriptionsForBundle(bundle.getId(), internalCallContext);
+ final List<SubscriptionBase> subscriptions = subscriptionInternalApi.getSubscriptionsForBundle(bundle.getId(), internalCallContext);
assertEquals(subscriptions.size(), 1);
- final Subscription subscription = subscriptions.get(0);
+ final SubscriptionBase subscription = subscriptions.get(0);
assertTrue(subscription.getStartDate().compareTo(startDate) == 0);
assertEquals(subscription.getCurrentPriceList().getName(), PriceListSet.DEFAULT_PRICELIST_NAME);
assertEquals(subscription.getCurrentPhase().getPhaseType(), PhaseType.EVERGREEN);
@@ -191,9 +191,9 @@ public class TestMigration extends SubscriptionTestSuiteWithEmbeddedDB {
assertEquals(bundles.size(), 1);
final SubscriptionBundle bundle = bundles.get(0);
- final List<Subscription> subscriptions = subscriptionInternalApi.getSubscriptionsForBundle(bundle.getId(), internalCallContext);
+ final List<SubscriptionBase> subscriptions = subscriptionInternalApi.getSubscriptionsForBundle(bundle.getId(), internalCallContext);
assertEquals(subscriptions.size(), 1);
- final Subscription subscription = subscriptions.get(0);
+ final SubscriptionBase subscription = subscriptions.get(0);
assertEquals(subscription.getStartDate(), trialDate);
assertEquals(subscription.getEndDate(), null);
@@ -239,9 +239,9 @@ public class TestMigration extends SubscriptionTestSuiteWithEmbeddedDB {
assertEquals(bundles.size(), 1);
final SubscriptionBundle bundle = bundles.get(0);
- final List<Subscription> subscriptions = subscriptionInternalApi.getSubscriptionsForBundle(bundle.getId(), internalCallContext);
+ final List<SubscriptionBase> subscriptions = subscriptionInternalApi.getSubscriptionsForBundle(bundle.getId(), internalCallContext);
assertEquals(subscriptions.size(), 1);
- final Subscription subscription = subscriptions.get(0);
+ final SubscriptionBase subscription = subscriptions.get(0);
//assertDateWithin(subscription.getStartDate(), beforeMigration, afterMigration);
assertEquals(subscription.getEndDate(), null);
assertEquals(subscription.getCurrentPriceList().getName(), PriceListSet.DEFAULT_PRICELIST_NAME);
@@ -287,7 +287,7 @@ public class TestMigration extends SubscriptionTestSuiteWithEmbeddedDB {
final List<SubscriptionBundle> bundles = subscriptionInternalApi.getBundlesForAccount(toBeMigrated.getAccountKey(), internalCallContext);
assertEquals(bundles.size(), 1);
- final List<Subscription> subscriptions = subscriptionInternalApi.getSubscriptionsForBundle(bundles.get(0).getId(), internalCallContext);
+ final List<SubscriptionBase> subscriptions = subscriptionInternalApi.getSubscriptionsForBundle(bundles.get(0).getId(), internalCallContext);
assertEquals(subscriptions.size(), 1);
final SubscriptionData subscription = (SubscriptionData) subscriptions.get(0);
diff --git a/subscription/src/test/java/com/ning/billing/subscription/api/timeline/TestRepairBP.java b/subscription/src/test/java/com/ning/billing/subscription/api/timeline/TestRepairBP.java
index 2d01bea..46fd410 100644
--- a/subscription/src/test/java/com/ning/billing/subscription/api/timeline/TestRepairBP.java
+++ b/subscription/src/test/java/com/ning/billing/subscription/api/timeline/TestRepairBP.java
@@ -43,7 +43,7 @@ import com.ning.billing.subscription.api.SubscriptionTransitionType;
import com.ning.billing.subscription.api.timeline.SubscriptionTimeline.DeletedEvent;
import com.ning.billing.subscription.api.timeline.SubscriptionTimeline.ExistingEvent;
import com.ning.billing.subscription.api.timeline.SubscriptionTimeline.NewEvent;
-import com.ning.billing.subscription.api.user.Subscription;
+import com.ning.billing.subscription.api.SubscriptionBase;
import com.ning.billing.subscription.api.user.SubscriptionState;
import com.ning.billing.subscription.api.user.SubscriptionUserApiException;
@@ -61,7 +61,7 @@ public class TestRepairBP extends SubscriptionTestSuiteWithEmbeddedDB {
final String basePriceList = PriceListSet.DEFAULT_PRICELIST_NAME;
// CREATE BP
- final Subscription baseSubscription = testUtil.createSubscription(bundle, baseProduct, baseTerm, basePriceList);
+ final SubscriptionBase baseSubscription = testUtil.createSubscription(bundle, baseProduct, baseTerm, basePriceList);
final String aoProduct = "Telescopic-Scope";
final BillingPeriod aoTerm = BillingPeriod.MONTHLY;
@@ -123,7 +123,7 @@ public class TestRepairBP extends SubscriptionTestSuiteWithEmbeddedDB {
final DateTime startDate = clock.getUTCNow();
// CREATE BP
- final Subscription baseSubscription = testUtil.createSubscription(bundle, baseProduct, BillingPeriod.MONTHLY, PriceListSet.DEFAULT_PRICELIST_NAME, startDate);
+ final SubscriptionBase baseSubscription = testUtil.createSubscription(bundle, baseProduct, BillingPeriod.MONTHLY, PriceListSet.DEFAULT_PRICELIST_NAME, startDate);
// Stays in trial-- for instance
final Interval it = new Interval(clock.getUTCNow(), clock.getUTCNow().plusDays(10));
@@ -286,7 +286,7 @@ public class TestRepairBP extends SubscriptionTestSuiteWithEmbeddedDB {
private UUID testBPRepairCreate(final boolean inTrial, final DateTime startDate, final int clockShift,
final String baseProduct, final String newBaseProduct, final List<ExistingEvent> expectedEvents) throws Exception {
// CREATE BP
- final Subscription baseSubscription = testUtil.createSubscription(bundle, baseProduct, BillingPeriod.MONTHLY, PriceListSet.DEFAULT_PRICELIST_NAME, startDate);
+ final SubscriptionBase baseSubscription = testUtil.createSubscription(bundle, baseProduct, BillingPeriod.MONTHLY, PriceListSet.DEFAULT_PRICELIST_NAME, startDate);
// MOVE CLOCK
if (clockShift > 0) {
@@ -458,7 +458,7 @@ public class TestRepairBP extends SubscriptionTestSuiteWithEmbeddedDB {
private UUID testBPRepairAddChange(final boolean inTrial, final DateTime startDate, final int clockShift,
final String baseProduct, final String newBaseProduct, final List<ExistingEvent> expectedEvents, final int expectedTransitions) throws Exception {
// CREATE BP
- final Subscription baseSubscription = testUtil.createSubscription(bundle, baseProduct, BillingPeriod.MONTHLY, PriceListSet.DEFAULT_PRICELIST_NAME, startDate);
+ final SubscriptionBase baseSubscription = testUtil.createSubscription(bundle, baseProduct, BillingPeriod.MONTHLY, PriceListSet.DEFAULT_PRICELIST_NAME, startDate);
// MOVE CLOCK
if (!inTrial) {
@@ -567,7 +567,7 @@ public class TestRepairBP extends SubscriptionTestSuiteWithEmbeddedDB {
final DateTime startDate = clock.getUTCNow();
// CREATE BP
- Subscription baseSubscription = testUtil.createSubscription(bundle, "Shotgun", BillingPeriod.MONTHLY, PriceListSet.DEFAULT_PRICELIST_NAME, startDate);
+ SubscriptionBase baseSubscription = testUtil.createSubscription(bundle, "Shotgun", BillingPeriod.MONTHLY, PriceListSet.DEFAULT_PRICELIST_NAME, startDate);
// MOVE CLOCK -- OUT OF TRIAL
testListener.pushExpectedEvent(NextEvent.PHASE);
@@ -636,7 +636,7 @@ public class TestRepairBP extends SubscriptionTestSuiteWithEmbeddedDB {
final TestWithException test = new TestWithException();
final DateTime startDate = clock.getUTCNow();
- final Subscription baseSubscription = testUtil.createSubscription(bundle, "Shotgun", BillingPeriod.MONTHLY, PriceListSet.DEFAULT_PRICELIST_NAME, startDate);
+ final SubscriptionBase baseSubscription = testUtil.createSubscription(bundle, "Shotgun", BillingPeriod.MONTHLY, PriceListSet.DEFAULT_PRICELIST_NAME, startDate);
test.withException(new TestWithExceptionCallback() {
@Override
@@ -669,7 +669,7 @@ public class TestRepairBP extends SubscriptionTestSuiteWithEmbeddedDB {
final TestWithException test = new TestWithException();
final DateTime startDate = clock.getUTCNow();
- final Subscription baseSubscription = testUtil.createSubscription(bundle, "Shotgun", BillingPeriod.MONTHLY, PriceListSet.DEFAULT_PRICELIST_NAME, startDate);
+ final SubscriptionBase baseSubscription = testUtil.createSubscription(bundle, "Shotgun", BillingPeriod.MONTHLY, PriceListSet.DEFAULT_PRICELIST_NAME, startDate);
test.withException(new TestWithExceptionCallback() {
@Override
diff --git a/subscription/src/test/java/com/ning/billing/subscription/api/timeline/TestRepairWithAO.java b/subscription/src/test/java/com/ning/billing/subscription/api/timeline/TestRepairWithAO.java
index 29060f1..cc9299b 100644
--- a/subscription/src/test/java/com/ning/billing/subscription/api/timeline/TestRepairWithAO.java
+++ b/subscription/src/test/java/com/ning/billing/subscription/api/timeline/TestRepairWithAO.java
@@ -634,7 +634,7 @@ public class TestRepairWithAO extends SubscriptionTestSuiteWithEmbeddedDB {
// Telescopic-Scope -> Laser-Scope
// Tiered ADON logic
// . Both multi phase
- // . Telescopic-Scope (bundle align) and Laser-Scope is Subscription align
+ // . Telescopic-Scope (bundle align) and Laser-Scope is SubscriptionBase align
//
@Test(groups = "slow")
public void testRepairChangeAOOK() throws Exception {
@@ -688,7 +688,7 @@ public class TestRepairWithAO extends SubscriptionTestSuiteWithEmbeddedDB {
ProductCategory.ADD_ON, PriceListSet.DEFAULT_PRICELIST_NAME, BillingPeriod.MONTHLY, aoChangeDate));
expected.add(testUtil.createExistingEventForAssertion(SubscriptionTransitionType.PHASE, "Laser-Scope", PhaseType.EVERGREEN,
ProductCategory.ADD_ON, PriceListSet.DEFAULT_PRICELIST_NAME, BillingPeriod.MONTHLY,
- aoSubscription.getStartDate().plusMonths(1) /* Subscription alignment */));
+ aoSubscription.getStartDate().plusMonths(1) /* SubscriptionBase alignment */));
int index = 0;
for (final ExistingEvent e : expected) {
diff --git a/subscription/src/test/java/com/ning/billing/subscription/api/timeline/TestRepairWithError.java b/subscription/src/test/java/com/ning/billing/subscription/api/timeline/TestRepairWithError.java
index b3cf6b0..a6d9070 100644
--- a/subscription/src/test/java/com/ning/billing/subscription/api/timeline/TestRepairWithError.java
+++ b/subscription/src/test/java/com/ning/billing/subscription/api/timeline/TestRepairWithError.java
@@ -40,7 +40,7 @@ import com.ning.billing.subscription.api.user.TestSubscriptionHelper.TestWithExc
import com.ning.billing.subscription.api.SubscriptionTransitionType;
import com.ning.billing.subscription.api.timeline.SubscriptionTimeline.DeletedEvent;
import com.ning.billing.subscription.api.timeline.SubscriptionTimeline.NewEvent;
-import com.ning.billing.subscription.api.user.Subscription;
+import com.ning.billing.subscription.api.SubscriptionBase;
import com.ning.billing.subscription.api.user.SubscriptionUserApiException;
import static org.testng.Assert.assertTrue;
@@ -50,7 +50,7 @@ public class TestRepairWithError extends SubscriptionTestSuiteNoDB {
private static final String baseProduct = "Shotgun";
private TestWithException test;
- private Subscription baseSubscription;
+ private SubscriptionBase baseSubscription;
@Override
@BeforeMethod(alwaysRun = true)
diff --git a/subscription/src/test/java/com/ning/billing/subscription/api/transfer/TestTransfer.java b/subscription/src/test/java/com/ning/billing/subscription/api/transfer/TestTransfer.java
index 911cf65..3932a84 100644
--- a/subscription/src/test/java/com/ning/billing/subscription/api/transfer/TestTransfer.java
+++ b/subscription/src/test/java/com/ning/billing/subscription/api/transfer/TestTransfer.java
@@ -36,7 +36,7 @@ import com.ning.billing.subscription.api.migration.SubscriptionMigrationApi.Acco
import com.ning.billing.subscription.api.migration.SubscriptionMigrationApiException;
import com.ning.billing.subscription.api.user.SubscriptionData;
import com.ning.billing.subscription.api.SubscriptionTransitionType;
-import com.ning.billing.subscription.api.user.Subscription;
+import com.ning.billing.subscription.api.SubscriptionBase;
import com.ning.billing.subscription.api.user.SubscriptionBundle;
import com.ning.billing.subscription.api.user.SubscriptionState;
@@ -69,9 +69,9 @@ public class TestTransfer extends SubscriptionTestSuiteWithEmbeddedDB {
assertEquals(bundles.size(), 1);
final SubscriptionBundle bundle = bundles.get(0);
- final List<Subscription> subscriptions = subscriptionInternalApi.getSubscriptionsForBundle(bundle.getId(), internalCallContext);
+ final List<SubscriptionBase> subscriptions = subscriptionInternalApi.getSubscriptionsForBundle(bundle.getId(), internalCallContext);
assertEquals(subscriptions.size(), 1);
- final Subscription subscription = subscriptions.get(0);
+ 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);
@@ -96,7 +96,7 @@ public class TestTransfer extends SubscriptionTestSuiteWithEmbeddedDB {
transferApi.transferBundle(bundle.getAccountId(), newAccountId, bundle.getExternalKey(), transferRequestedDate, false, true, callContext);
assertTrue(testListener.isCompleted(3000));
- final Subscription oldBaseSubscription = subscriptionInternalApi.getBaseSubscription(bundle.getId(), internalCallContext);
+ final SubscriptionBase oldBaseSubscription = subscriptionInternalApi.getBaseSubscription(bundle.getId(), internalCallContext);
assertTrue(oldBaseSubscription.getState() == SubscriptionState.CANCELLED);
// The MIGRATE_BILLING event should have been invalidated
assertEquals(subscriptionInternalApi.getBillingTransitions(oldBaseSubscription, internalCallContext).size(), 0);
@@ -119,7 +119,7 @@ public class TestTransfer extends SubscriptionTestSuiteWithEmbeddedDB {
final String basePriceList = PriceListSet.DEFAULT_PRICELIST_NAME;
// CREATE BP
- final Subscription baseSubscription = testUtil.createSubscription(bundle, baseProduct, baseTerm, basePriceList);
+ final SubscriptionBase baseSubscription = testUtil.createSubscription(bundle, baseProduct, baseTerm, basePriceList);
final DateTime evergreenPhaseDate = ((SubscriptionData) baseSubscription).getPendingTransition().getEffectiveTransitionTime();
@@ -136,7 +136,7 @@ public class TestTransfer extends SubscriptionTestSuiteWithEmbeddedDB {
final DateTime afterTransferDate = clock.getUTCNow();
// CHECK OLD BASE IS CANCEL AT THE TRANSFER DATE
- final Subscription oldBaseSubscription = subscriptionInternalApi.getSubscriptionFromId(baseSubscription.getId(), internalCallContext);
+ final SubscriptionBase oldBaseSubscription = subscriptionInternalApi.getSubscriptionFromId(baseSubscription.getId(), internalCallContext);
assertNotNull(oldBaseSubscription.getEndDate());
testUtil.assertDateWithin(oldBaseSubscription.getEndDate(), beforeTransferDate, afterTransferDate);
assertTrue(oldBaseSubscription.getEndDate().compareTo(transferRequestedDate) == 0);
@@ -144,10 +144,10 @@ public class TestTransfer extends SubscriptionTestSuiteWithEmbeddedDB {
// CHECK NEW BUNDLE EXIST, WITH ONE SUBSCRIPTION STARTING ON TRANSFER_DATE
final SubscriptionBundle newBundle = subscriptionInternalApi.getBundleForAccountAndKey(newAccountId, bundle.getExternalKey(), internalCallContext);
- final List<Subscription> subscriptions = subscriptionInternalApi.getSubscriptionsForBundle(newBundle.getId(), internalCallContext);
+ final List<SubscriptionBase> subscriptions = subscriptionInternalApi.getSubscriptionsForBundle(newBundle.getId(), internalCallContext);
assertEquals(subscriptions.size(), 1);
- final Subscription newBaseSubscription = subscriptions.get(0);
+ final SubscriptionBase newBaseSubscription = subscriptions.get(0);
assertTrue(((SubscriptionData) newBaseSubscription).getAlignStartDate().compareTo(((SubscriptionData) oldBaseSubscription).getAlignStartDate()) == 0);
// CHECK NEXT PENDING PHASE IS ALIGNED WITH OLD SUBSCRIPTION START DATE
@@ -170,7 +170,7 @@ public class TestTransfer extends SubscriptionTestSuiteWithEmbeddedDB {
final String basePriceList = PriceListSet.DEFAULT_PRICELIST_NAME;
// CREATE BP
- final Subscription baseSubscription = testUtil.createSubscription(bundle, baseProduct, baseTerm, basePriceList);
+ final SubscriptionBase baseSubscription = testUtil.createSubscription(bundle, baseProduct, baseTerm, basePriceList);
final DateTime ctd = baseSubscription.getStartDate().plusDays(30);
subscriptionInternalApi.setChargedThroughDate(baseSubscription.getId(), ctd, internalCallContext);
@@ -186,17 +186,17 @@ public class TestTransfer extends SubscriptionTestSuiteWithEmbeddedDB {
assertTrue(testListener.isCompleted(3000));
// CHECK OLD BASE IS CANCEL AT THE TRANSFER DATE
- final Subscription oldBaseSubscription = subscriptionInternalApi.getSubscriptionFromId(baseSubscription.getId(), internalCallContext);
+ final SubscriptionBase oldBaseSubscription = subscriptionInternalApi.getSubscriptionFromId(baseSubscription.getId(), internalCallContext);
assertNotNull(oldBaseSubscription.getFutureEndDate());
assertTrue(oldBaseSubscription.getFutureEndDate().compareTo(ctd) == 0);
// CHECK NEW BUNDLE EXIST, WITH ONE SUBSCRIPTION STARTING ON TRANSFER_DATE
final SubscriptionBundle newBundle = subscriptionInternalApi.getBundleForAccountAndKey(newAccountId, bundle.getExternalKey(), internalCallContext);
- final List<Subscription> subscriptions = subscriptionInternalApi.getSubscriptionsForBundle(newBundle.getId(), internalCallContext);
+ final List<SubscriptionBase> subscriptions = subscriptionInternalApi.getSubscriptionsForBundle(newBundle.getId(), internalCallContext);
assertEquals(subscriptions.size(), 1);
- final Subscription newBaseSubscription = subscriptions.get(0);
+ final SubscriptionBase newBaseSubscription = subscriptions.get(0);
assertTrue(((SubscriptionData) newBaseSubscription).getAlignStartDate().compareTo(((SubscriptionData) oldBaseSubscription).getAlignStartDate()) == 0);
// CHECK NEXT PENDING PHASE IS ALIGNED WITH OLD SUBSCRIPTION START DATE
@@ -219,7 +219,7 @@ public class TestTransfer extends SubscriptionTestSuiteWithEmbeddedDB {
final String basePriceList = PriceListSet.DEFAULT_PRICELIST_NAME;
// CREATE BP
- final Subscription baseSubscription = testUtil.createSubscription(bundle, baseProduct, baseTerm, basePriceList);
+ final SubscriptionBase baseSubscription = testUtil.createSubscription(bundle, baseProduct, baseTerm, basePriceList);
// MOVE AFTER TRIAL
testListener.pushExpectedEvent(NextEvent.PHASE);
@@ -235,7 +235,7 @@ public class TestTransfer extends SubscriptionTestSuiteWithEmbeddedDB {
final DateTime afterTransferDate = clock.getUTCNow();
// CHECK OLD BASE IS CANCEL AT THE TRANSFER DATE
- final Subscription oldBaseSubscription = subscriptionInternalApi.getSubscriptionFromId(baseSubscription.getId(), internalCallContext);
+ final SubscriptionBase oldBaseSubscription = subscriptionInternalApi.getSubscriptionFromId(baseSubscription.getId(), internalCallContext);
assertNotNull(oldBaseSubscription.getEndDate());
testUtil.assertDateWithin(oldBaseSubscription.getEndDate(), beforeTransferDate, afterTransferDate);
assertTrue(oldBaseSubscription.getEndDate().compareTo(transferRequestedDate) == 0);
@@ -243,10 +243,10 @@ public class TestTransfer extends SubscriptionTestSuiteWithEmbeddedDB {
// CHECK NEW BUNDLE EXIST, WITH ONE SUBSCRIPTION STARTING ON TRANSFER_DATE
final SubscriptionBundle newBundle = subscriptionInternalApi.getBundleForAccountAndKey(newAccountId, bundle.getExternalKey(), internalCallContext);
- final List<Subscription> subscriptions = subscriptionInternalApi.getSubscriptionsForBundle(newBundle.getId(), internalCallContext);
+ final List<SubscriptionBase> subscriptions = subscriptionInternalApi.getSubscriptionsForBundle(newBundle.getId(), internalCallContext);
assertEquals(subscriptions.size(), 1);
- final Subscription newBaseSubscription = subscriptions.get(0);
+ final SubscriptionBase newBaseSubscription = subscriptions.get(0);
assertTrue(((SubscriptionData) newBaseSubscription).getAlignStartDate().compareTo(((SubscriptionData) baseSubscription).getAlignStartDate()) == 0);
// CHECK ONLY ONE PHASE EXISTS
@@ -267,7 +267,7 @@ public class TestTransfer extends SubscriptionTestSuiteWithEmbeddedDB {
final String basePriceList = PriceListSet.DEFAULT_PRICELIST_NAME;
// CREATE BP
- final Subscription baseSubscription = testUtil.createSubscription(bundle, baseProduct, baseTerm, basePriceList);
+ final SubscriptionBase baseSubscription = testUtil.createSubscription(bundle, baseProduct, baseTerm, basePriceList);
// MOVE AFTER TRIAL
testListener.pushExpectedEvent(NextEvent.PHASE);
@@ -285,17 +285,17 @@ public class TestTransfer extends SubscriptionTestSuiteWithEmbeddedDB {
assertTrue(testListener.isCompleted(3000));
// CHECK OLD BASE IS CANCEL AT THE TRANSFER DATE
- final Subscription oldBaseSubscription = subscriptionInternalApi.getSubscriptionFromId(baseSubscription.getId(), internalCallContext);
+ final SubscriptionBase oldBaseSubscription = subscriptionInternalApi.getSubscriptionFromId(baseSubscription.getId(), internalCallContext);
assertNotNull(oldBaseSubscription.getFutureEndDate());
assertTrue(oldBaseSubscription.getFutureEndDate().compareTo(ctd) == 0);
// CHECK NEW BUNDLE EXIST, WITH ONE SUBSCRIPTION STARTING ON TRANSFER_DATE
final SubscriptionBundle newBundle = subscriptionInternalApi.getBundleForAccountAndKey(newAccountId, bundle.getExternalKey(), internalCallContext);
- final List<Subscription> subscriptions = subscriptionInternalApi.getSubscriptionsForBundle(newBundle.getId(), internalCallContext);
+ final List<SubscriptionBase> subscriptions = subscriptionInternalApi.getSubscriptionsForBundle(newBundle.getId(), internalCallContext);
assertEquals(subscriptions.size(), 1);
- final Subscription newBaseSubscription = subscriptions.get(0);
+ final SubscriptionBase newBaseSubscription = subscriptions.get(0);
assertTrue(((SubscriptionData) newBaseSubscription).getAlignStartDate().compareTo(((SubscriptionData) baseSubscription).getAlignStartDate()) == 0);
// CHECK ONLY ONE PHASE EXISTS
@@ -322,7 +322,7 @@ public class TestTransfer extends SubscriptionTestSuiteWithEmbeddedDB {
final DateTime newCtd = newBaseSubscription.getStartDate().plusYears(1);
subscriptionInternalApi.setChargedThroughDate(newBaseSubscription.getId(), newCtd, internalCallContext);
- final Subscription newBaseSubscriptionWithCtd = subscriptionInternalApi.getSubscriptionFromId(newBaseSubscription.getId(), internalCallContext);
+ final SubscriptionBase newBaseSubscriptionWithCtd = subscriptionInternalApi.getSubscriptionFromId(newBaseSubscription.getId(), internalCallContext);
final String newBaseProduct2 = "Pistol";
final BillingPeriod newBaseTerm2 = BillingPeriod.ANNUAL;
@@ -347,7 +347,7 @@ public class TestTransfer extends SubscriptionTestSuiteWithEmbeddedDB {
final String basePriceList = PriceListSet.DEFAULT_PRICELIST_NAME;
// CREATE BP
- final Subscription baseSubscription = testUtil.createSubscription(bundle, baseProduct, baseTerm, basePriceList);
+ final SubscriptionBase baseSubscription = testUtil.createSubscription(bundle, baseProduct, baseTerm, basePriceList);
// MOVE 3 DAYS AND CREATE AO1
clock.addDays(3);
@@ -383,12 +383,12 @@ public class TestTransfer extends SubscriptionTestSuiteWithEmbeddedDB {
// RETRIEVE NEW BUNDLE AND CHECK SUBSCRIPTIONS
final SubscriptionBundle newBundle = subscriptionInternalApi.getBundleForAccountAndKey(newAccountId, bundle.getExternalKey(), internalCallContext);
- final List<Subscription> subscriptions = subscriptionInternalApi.getSubscriptionsForBundle(newBundle.getId(), internalCallContext);
+ final List<SubscriptionBase> subscriptions = subscriptionInternalApi.getSubscriptionsForBundle(newBundle.getId(), internalCallContext);
assertEquals(subscriptions.size(), 3);
boolean foundBP = false;
boolean foundAO1 = false;
boolean foundAO2 = false;
- for (final Subscription cur : subscriptions) {
+ for (final SubscriptionBase cur : subscriptions) {
final Plan curPlan = cur.getCurrentPlan();
final Product curProduct = curPlan.getProduct();
if (curProduct.getName().equals(baseProduct)) {
@@ -441,7 +441,7 @@ public class TestTransfer extends SubscriptionTestSuiteWithEmbeddedDB {
final String basePriceList = PriceListSet.DEFAULT_PRICELIST_NAME;
// CREATE BP
- final Subscription baseSubscription = testUtil.createSubscription(bundle, baseProduct, baseTerm, basePriceList);
+ final SubscriptionBase baseSubscription = testUtil.createSubscription(bundle, baseProduct, baseTerm, basePriceList);
// MOVE 3 DAYS AND CREATE AO1
clock.addDays(3);
@@ -473,7 +473,7 @@ public class TestTransfer extends SubscriptionTestSuiteWithEmbeddedDB {
assertTrue(testListener.isCompleted(3000));
final SubscriptionBundle newBundle = subscriptionInternalApi.getBundleForAccountAndKey(newAccountId, bundle.getExternalKey(), internalCallContext);
- final List<Subscription> subscriptions = subscriptionInternalApi.getSubscriptionsForBundle(newBundle.getId(), internalCallContext);
+ final List<SubscriptionBase> subscriptions = subscriptionInternalApi.getSubscriptionsForBundle(newBundle.getId(), internalCallContext);
assertEquals(subscriptions.size(), 1);
}
@@ -487,7 +487,7 @@ public class TestTransfer extends SubscriptionTestSuiteWithEmbeddedDB {
final String basePriceList = PriceListSet.DEFAULT_PRICELIST_NAME;
// CREATE BP
- Subscription baseSubscription = testUtil.createSubscription(bundle, baseProduct, baseTerm, basePriceList);
+ SubscriptionBase baseSubscription = testUtil.createSubscription(bundle, baseProduct, baseTerm, basePriceList);
testListener.pushExpectedEvent(NextEvent.PHASE);
clock.addDays(30);
@@ -516,7 +516,7 @@ public class TestTransfer extends SubscriptionTestSuiteWithEmbeddedDB {
assertTrue(testListener.isCompleted(3000));
final SubscriptionBundle newBundle = subscriptionInternalApi.getBundleForAccountAndKey(newAccountId, bundle.getExternalKey(), internalCallContext);
- final List<Subscription> subscriptions = subscriptionInternalApi.getSubscriptionsForBundle(newBundle.getId(), internalCallContext);
+ final List<SubscriptionBase> subscriptions = subscriptionInternalApi.getSubscriptionsForBundle(newBundle.getId(), internalCallContext);
assertEquals(subscriptions.size(), 1);
}
}
diff --git a/subscription/src/test/java/com/ning/billing/subscription/api/user/TestUserApiError.java b/subscription/src/test/java/com/ning/billing/subscription/api/user/TestUserApiError.java
index c96ea8d..64f1575 100644
--- a/subscription/src/test/java/com/ning/billing/subscription/api/user/TestUserApiError.java
+++ b/subscription/src/test/java/com/ning/billing/subscription/api/user/TestUserApiError.java
@@ -34,6 +34,7 @@ import com.ning.billing.catalog.api.Duration;
import com.ning.billing.catalog.api.PlanPhase;
import com.ning.billing.catalog.api.PriceListSet;
import com.ning.billing.subscription.SubscriptionTestSuiteNoDB;
+import com.ning.billing.subscription.api.SubscriptionBase;
import com.ning.billing.subscription.exceptions.SubscriptionError;
import com.ning.billing.util.callcontext.TenantContext;
@@ -139,7 +140,7 @@ public class TestUserApiError extends SubscriptionTestSuiteNoDB {
@Test(groups = "fast")
public void testChangeSubscriptionNonActive() {
try {
- final Subscription subscription = testUtil.createSubscription(bundle, "Shotgun", BillingPeriod.ANNUAL, PriceListSet.DEFAULT_PRICELIST_NAME);
+ final SubscriptionBase subscription = testUtil.createSubscription(bundle, "Shotgun", BillingPeriod.ANNUAL, PriceListSet.DEFAULT_PRICELIST_NAME);
testListener.pushExpectedEvent(NextEvent.CANCEL);
subscription.cancel(clock.getUTCNow(), callContext);
@@ -160,7 +161,7 @@ public class TestUserApiError extends SubscriptionTestSuiteNoDB {
@Test(groups = "fast")
public void testChangeSubscriptionWithPolicy() throws Exception {
- final Subscription subscription = testUtil.createSubscription(bundle, "Shotgun", BillingPeriod.ANNUAL, PriceListSet.DEFAULT_PRICELIST_NAME);
+ final SubscriptionBase subscription = testUtil.createSubscription(bundle, "Shotgun", BillingPeriod.ANNUAL, PriceListSet.DEFAULT_PRICELIST_NAME);
try {
subscription.changePlanWithPolicy("Shotgun", BillingPeriod.MONTHLY, PriceListSet.DEFAULT_PRICELIST_NAME, clock.getUTCNow(), ActionPolicy.ILLEGAL, callContext);
@@ -177,7 +178,7 @@ public class TestUserApiError extends SubscriptionTestSuiteNoDB {
@Test(groups = "fast")
public void testChangeSubscriptionFutureCancelled() {
try {
- Subscription subscription = testUtil.createSubscription(bundle, "Shotgun", BillingPeriod.MONTHLY, PriceListSet.DEFAULT_PRICELIST_NAME);
+ SubscriptionBase subscription = testUtil.createSubscription(bundle, "Shotgun", BillingPeriod.MONTHLY, PriceListSet.DEFAULT_PRICELIST_NAME);
final PlanPhase trialPhase = subscription.getCurrentPhase();
// MOVE TO NEXT PHASE
@@ -220,7 +221,7 @@ public class TestUserApiError extends SubscriptionTestSuiteNoDB {
@Test(groups = "fast")
public void testUncancelBadState() {
try {
- final Subscription subscription = testUtil.createSubscription(bundle, "Shotgun", BillingPeriod.MONTHLY, PriceListSet.DEFAULT_PRICELIST_NAME);
+ final SubscriptionBase subscription = testUtil.createSubscription(bundle, "Shotgun", BillingPeriod.MONTHLY, PriceListSet.DEFAULT_PRICELIST_NAME);
try {
subscription.uncancel(callContext);
diff --git a/subscription/src/test/java/com/ning/billing/subscription/engine/dao/MockSubscriptionDaoMemory.java b/subscription/src/test/java/com/ning/billing/subscription/engine/dao/MockSubscriptionDaoMemory.java
index 206f5ac..4ae0d52 100644
--- a/subscription/src/test/java/com/ning/billing/subscription/engine/dao/MockSubscriptionDaoMemory.java
+++ b/subscription/src/test/java/com/ning/billing/subscription/engine/dao/MockSubscriptionDaoMemory.java
@@ -52,7 +52,7 @@ import com.ning.billing.notificationq.api.NotificationEvent;
import com.ning.billing.notificationq.api.NotificationQueue;
import com.ning.billing.notificationq.api.NotificationQueueService;
import com.ning.billing.notificationq.api.NotificationQueueService.NoSuchNotificationQueue;
-import com.ning.billing.subscription.api.user.Subscription;
+import com.ning.billing.subscription.api.SubscriptionBase;
import com.ning.billing.subscription.api.user.SubscriptionBundle;
import com.ning.billing.util.callcontext.InternalCallContext;
import com.ning.billing.util.callcontext.InternalTenantContext;
@@ -66,7 +66,7 @@ public class MockSubscriptionDaoMemory implements SubscriptionDao {
protected static final Logger log = LoggerFactory.getLogger(SubscriptionDao.class);
private final List<SubscriptionBundle> bundles;
- private final List<Subscription> subscriptions;
+ private final List<SubscriptionBase> subscriptions;
private final TreeSet<SubscriptionEvent> events;
private final Clock clock;
private final NotificationQueueService notificationQueueService;
@@ -81,7 +81,7 @@ public class MockSubscriptionDaoMemory implements SubscriptionDao {
this.catalogService = catalogService;
this.notificationQueueService = notificationQueueService;
this.bundles = new ArrayList<SubscriptionBundle>();
- this.subscriptions = new ArrayList<Subscription>();
+ this.subscriptions = new ArrayList<SubscriptionBase>();
this.events = new TreeSet<SubscriptionEvent>();
}
@@ -140,8 +140,8 @@ public class MockSubscriptionDaoMemory implements SubscriptionDao {
}
@Override
- public Subscription getSubscriptionFromId(final UUID subscriptionId, final InternalTenantContext context) {
- for (final Subscription cur : subscriptions) {
+ public SubscriptionBase getSubscriptionFromId(final UUID subscriptionId, final InternalTenantContext context) {
+ for (final SubscriptionBase cur : subscriptions) {
if (cur.getId().equals(subscriptionId)) {
return buildSubscription((SubscriptionData) cur, context);
}
@@ -155,7 +155,7 @@ public class MockSubscriptionDaoMemory implements SubscriptionDao {
}
@Override
- public List<Subscription> getSubscriptionsForAccountAndKey(final UUID accountId, final String bundleKey, final InternalTenantContext context) {
+ public List<SubscriptionBase> getSubscriptionsForAccountAndKey(final UUID accountId, final String bundleKey, final InternalTenantContext context) {
for (final SubscriptionBundle cur : bundles) {
if (cur.getExternalKey().equals(bundleKey) && cur.getAccountId().equals(bundleKey)) {
@@ -174,7 +174,7 @@ public class MockSubscriptionDaoMemory implements SubscriptionDao {
recordFutureNotificationFromTransaction(null, cur.getEffectiveDate(), new SubscriptionNotificationKey(cur.getId()), context);
}
}
- final Subscription updatedSubscription = buildSubscription(subscription, context);
+ final SubscriptionBase updatedSubscription = buildSubscription(subscription, context);
subscriptions.add(updatedSubscription);
}
@@ -189,9 +189,9 @@ public class MockSubscriptionDaoMemory implements SubscriptionDao {
}
@Override
- public List<Subscription> getSubscriptions(final UUID bundleId, final InternalTenantContext context) {
- final List<Subscription> results = new ArrayList<Subscription>();
- for (final Subscription cur : subscriptions) {
+ public List<SubscriptionBase> getSubscriptions(final UUID bundleId, final InternalTenantContext context) {
+ final List<SubscriptionBase> results = new ArrayList<SubscriptionBase>();
+ for (final SubscriptionBase cur : subscriptions) {
if (cur.getBundleId().equals(bundleId)) {
results.add(buildSubscription((SubscriptionData) cur, context));
}
@@ -228,8 +228,8 @@ public class MockSubscriptionDaoMemory implements SubscriptionDao {
}
@Override
- public Subscription getBaseSubscription(final UUID bundleId, final InternalTenantContext context) {
- for (final Subscription cur : subscriptions) {
+ public SubscriptionBase getBaseSubscription(final UUID bundleId, final InternalTenantContext context) {
+ for (final SubscriptionBase cur : subscriptions) {
if (cur.getBundleId().equals(bundleId) &&
cur.getCurrentPlan().getProduct().getCategory() == ProductCategory.BASE) {
return buildSubscription((SubscriptionData) cur, context);
@@ -244,7 +244,7 @@ public class MockSubscriptionDaoMemory implements SubscriptionDao {
insertEvent(nextPhase, context);
}
- private Subscription buildSubscription(final SubscriptionData in, final InternalTenantContext context) {
+ private SubscriptionBase buildSubscription(final SubscriptionData in, final InternalTenantContext context) {
final SubscriptionData subscription = new SubscriptionData(new SubscriptionBuilder(in), null, clock);
if (events.size() > 0) {
subscription.rebuildTransitions(getEventsForSubscription(in.getId(), context), catalogService.getFullCatalog());
@@ -256,9 +256,9 @@ public class MockSubscriptionDaoMemory implements SubscriptionDao {
@Override
public void updateChargedThroughDate(final SubscriptionData subscription, final InternalCallContext context) {
boolean found = false;
- final Iterator<Subscription> it = subscriptions.iterator();
+ final Iterator<SubscriptionBase> it = subscriptions.iterator();
while (it.hasNext()) {
- final Subscription cur = it.next();
+ final SubscriptionBase cur = it.next();
if (cur.getId().equals(subscription.getId())) {
found = true;
it.remove();
@@ -308,7 +308,7 @@ public class MockSubscriptionDaoMemory implements SubscriptionDao {
}
private void cancelNextPhaseEvent(final UUID subscriptionId, final InternalTenantContext context) {
- final Subscription curSubscription = getSubscriptionFromId(subscriptionId, context);
+ final SubscriptionBase curSubscription = getSubscriptionFromId(subscriptionId, context);
if (curSubscription.getCurrentPhase() == null ||
curSubscription.getCurrentPhase().getDuration().getUnit() == TimeUnit.UNLIMITED) {
return;
diff --git a/subscription/src/test/java/com/ning/billing/subscription/SubscriptionTestInitializer.java b/subscription/src/test/java/com/ning/billing/subscription/SubscriptionTestInitializer.java
index 3b14e73..f132760 100644
--- a/subscription/src/test/java/com/ning/billing/subscription/SubscriptionTestInitializer.java
+++ b/subscription/src/test/java/com/ning/billing/subscription/SubscriptionTestInitializer.java
@@ -24,8 +24,6 @@ import com.ning.billing.catalog.api.CatalogService;
import com.ning.billing.clock.ClockMock;
import com.ning.billing.subscription.api.SubscriptionService;
import com.ning.billing.subscription.api.user.SubscriptionBundle;
-import com.ning.billing.subscription.api.user.SubscriptionUserApi;
-import com.ning.billing.util.callcontext.CallContext;
import com.ning.billing.util.callcontext.InternalCallContext;
import com.ning.billing.util.svcapi.subscription.SubscriptionInternalApi;
import com.ning.billing.util.svcsapi.bus.BusService;
diff --git a/subscription/src/test/java/com/ning/billing/subscription/SubscriptionTestSuiteNoDB.java b/subscription/src/test/java/com/ning/billing/subscription/SubscriptionTestSuiteNoDB.java
index adf2d97..3e1a9d5 100644
--- a/subscription/src/test/java/com/ning/billing/subscription/SubscriptionTestSuiteNoDB.java
+++ b/subscription/src/test/java/com/ning/billing/subscription/SubscriptionTestSuiteNoDB.java
@@ -39,14 +39,13 @@ import com.ning.billing.catalog.api.CatalogService;
import com.ning.billing.clock.ClockMock;
import com.ning.billing.subscription.api.SubscriptionService;
import com.ning.billing.subscription.api.migration.SubscriptionMigrationApi;
+import com.ning.billing.subscription.api.timeline.SubscriptionTimelineApi;
+import com.ning.billing.subscription.api.transfer.SubscriptionTransferApi;
+import com.ning.billing.subscription.api.user.SubscriptionBundle;
import com.ning.billing.subscription.api.user.TestSubscriptionHelper;
import com.ning.billing.subscription.engine.dao.MockSubscriptionDaoMemory;
import com.ning.billing.subscription.engine.dao.SubscriptionDao;
import com.ning.billing.subscription.glue.TestDefaultSubscriptionModuleNoDB;
-import com.ning.billing.subscription.api.timeline.SubscriptionTimelineApi;
-import com.ning.billing.subscription.api.transfer.SubscriptionTransferApi;
-import com.ning.billing.subscription.api.user.SubscriptionBundle;
-import com.ning.billing.subscription.api.user.SubscriptionUserApi;
import com.ning.billing.util.config.SubscriptionConfig;
import com.ning.billing.util.svcapi.subscription.SubscriptionInternalApi;
import com.ning.billing.util.svcsapi.bus.BusService;
diff --git a/subscription/src/test/java/com/ning/billing/subscription/SubscriptionTestSuiteWithEmbeddedDB.java b/subscription/src/test/java/com/ning/billing/subscription/SubscriptionTestSuiteWithEmbeddedDB.java
index 46aef16..c3e7b3a 100644
--- a/subscription/src/test/java/com/ning/billing/subscription/SubscriptionTestSuiteWithEmbeddedDB.java
+++ b/subscription/src/test/java/com/ning/billing/subscription/SubscriptionTestSuiteWithEmbeddedDB.java
@@ -36,13 +36,12 @@ import com.ning.billing.catalog.api.CatalogService;
import com.ning.billing.clock.ClockMock;
import com.ning.billing.subscription.api.SubscriptionService;
import com.ning.billing.subscription.api.migration.SubscriptionMigrationApi;
-import com.ning.billing.subscription.api.user.TestSubscriptionHelper;
-import com.ning.billing.subscription.engine.dao.SubscriptionDao;
-import com.ning.billing.subscription.glue.TestDefaultSubscriptionModuleWithEmbeddedDB;
import com.ning.billing.subscription.api.timeline.SubscriptionTimelineApi;
import com.ning.billing.subscription.api.transfer.SubscriptionTransferApi;
import com.ning.billing.subscription.api.user.SubscriptionBundle;
-import com.ning.billing.subscription.api.user.SubscriptionUserApi;
+import com.ning.billing.subscription.api.user.TestSubscriptionHelper;
+import com.ning.billing.subscription.engine.dao.SubscriptionDao;
+import com.ning.billing.subscription.glue.TestDefaultSubscriptionModuleWithEmbeddedDB;
import com.ning.billing.util.config.SubscriptionConfig;
import com.ning.billing.util.svcapi.subscription.SubscriptionInternalApi;
import com.ning.billing.util.svcsapi.bus.BusService;
diff --git a/util/src/main/java/com/ning/billing/util/svcapi/junction/BillingEvent.java b/util/src/main/java/com/ning/billing/util/svcapi/junction/BillingEvent.java
index 425d051..1c7d1c3 100644
--- a/util/src/main/java/com/ning/billing/util/svcapi/junction/BillingEvent.java
+++ b/util/src/main/java/com/ning/billing/util/svcapi/junction/BillingEvent.java
@@ -27,7 +27,7 @@ import com.ning.billing.catalog.api.Currency;
import com.ning.billing.catalog.api.Plan;
import com.ning.billing.catalog.api.PlanPhase;
import com.ning.billing.subscription.api.SubscriptionTransitionType;
-import com.ning.billing.subscription.api.user.Subscription;
+import com.ning.billing.subscription.api.SubscriptionBase;
public interface BillingEvent extends Comparable<BillingEvent> {
@@ -46,7 +46,7 @@ public interface BillingEvent extends Comparable<BillingEvent> {
/**
* @return the subscription
*/
- public Subscription getSubscription();
+ public SubscriptionBase getSubscription();
/**
* @return the date for when that event became effective
diff --git a/util/src/main/java/com/ning/billing/util/svcapi/subscription/SubscriptionInternalApi.java b/util/src/main/java/com/ning/billing/util/svcapi/subscription/SubscriptionInternalApi.java
index ef4d4c1..711f1cc 100644
--- a/util/src/main/java/com/ning/billing/util/svcapi/subscription/SubscriptionInternalApi.java
+++ b/util/src/main/java/com/ning/billing/util/svcapi/subscription/SubscriptionInternalApi.java
@@ -24,7 +24,7 @@ import javax.annotation.Nullable;
import org.joda.time.DateTime;
import com.ning.billing.catalog.api.PlanPhaseSpecifier;
-import com.ning.billing.subscription.api.user.Subscription;
+import com.ning.billing.subscription.api.SubscriptionBase;
import com.ning.billing.subscription.api.user.SubscriptionBundle;
import com.ning.billing.subscription.api.user.SubscriptionStatusDryRun;
import com.ning.billing.subscription.api.user.SubscriptionUserApiException;
@@ -37,7 +37,7 @@ import com.ning.billing.util.events.EffectiveSubscriptionInternalEvent;
public interface SubscriptionInternalApi {
- public Subscription createSubscription(final UUID bundleId, final PlanPhaseSpecifier spec, final DateTime requestedDateWithMs,
+ public SubscriptionBase createSubscription(final UUID bundleId, final PlanPhaseSpecifier spec, final DateTime requestedDateWithMs,
final InternalCallContext context) throws SubscriptionUserApiException;
@@ -49,11 +49,11 @@ public interface SubscriptionInternalApi {
public List<SubscriptionBundle> getBundlesForAccount(final UUID accountId, final InternalTenantContext context);
- public List<Subscription> getSubscriptionsForBundle(final UUID bundleId, final InternalTenantContext context);
+ public List<SubscriptionBase> getSubscriptionsForBundle(final UUID bundleId, final InternalTenantContext context);
- public Subscription getBaseSubscription(final UUID bundleId, final InternalTenantContext context) throws SubscriptionUserApiException;
+ public SubscriptionBase getBaseSubscription(final UUID bundleId, final InternalTenantContext context) throws SubscriptionUserApiException;
- public Subscription getSubscriptionFromId(final UUID id, final InternalTenantContext context) throws SubscriptionUserApiException;
+ public SubscriptionBase getSubscriptionFromId(final UUID id, final InternalTenantContext context) throws SubscriptionUserApiException;
public SubscriptionBundle getBundleFromId(final UUID id, final InternalTenantContext context) throws SubscriptionUserApiException;
@@ -61,9 +61,9 @@ public interface SubscriptionInternalApi {
public void setChargedThroughDate(final UUID subscriptionId, final DateTime chargedThruDate, final InternalCallContext context);
- public List<EffectiveSubscriptionInternalEvent> getAllTransitions(final Subscription subscription, final InternalTenantContext context);
+ public List<EffectiveSubscriptionInternalEvent> getAllTransitions(final SubscriptionBase subscription, final InternalTenantContext context);
- public List<EffectiveSubscriptionInternalEvent> getBillingTransitions(final Subscription subscription, final InternalTenantContext context);
+ public List<EffectiveSubscriptionInternalEvent> getBillingTransitions(final SubscriptionBase subscription, final InternalTenantContext context);
public DateTime getNextBillingDate(final UUID accountId, final InternalTenantContext context);
diff --git a/util/src/test/java/com/ning/billing/mock/glue/MockEntitlementModule.java b/util/src/test/java/com/ning/billing/mock/glue/MockEntitlementModule.java
index fdd1c1e..b2bcba3 100644
--- a/util/src/test/java/com/ning/billing/mock/glue/MockEntitlementModule.java
+++ b/util/src/test/java/com/ning/billing/mock/glue/MockEntitlementModule.java
@@ -16,13 +16,13 @@
package com.ning.billing.mock.glue;
-import com.google.inject.AbstractModule;
-import com.ning.billing.account.api.AccountUserApi;
-import com.ning.billing.glue.EntitlementModule;
+import org.mockito.Mockito;
+
import com.ning.billing.entitlement.api.EntitlementApi;
-import com.ning.billing.subscription.api.user.SubscriptionUserApi;
+import com.ning.billing.glue.EntitlementModule;
import com.ning.billing.util.svcapi.junction.BlockingInternalApi;
-import org.mockito.Mockito;
+
+import com.google.inject.AbstractModule;
public class MockEntitlementModule extends AbstractModule implements EntitlementModule {
diff --git a/util/src/test/java/com/ning/billing/mock/glue/MockSubscriptionModule.java b/util/src/test/java/com/ning/billing/mock/glue/MockSubscriptionModule.java
index 7e32b7c..ea89e2a 100644
--- a/util/src/test/java/com/ning/billing/mock/glue/MockSubscriptionModule.java
+++ b/util/src/test/java/com/ning/billing/mock/glue/MockSubscriptionModule.java
@@ -23,13 +23,12 @@ import com.ning.billing.subscription.api.SubscriptionService;
import com.ning.billing.subscription.api.migration.SubscriptionMigrationApi;
import com.ning.billing.subscription.api.timeline.SubscriptionTimelineApi;
import com.ning.billing.subscription.api.transfer.SubscriptionTransferApi;
-import com.ning.billing.subscription.api.user.SubscriptionUserApi;
-import com.ning.billing.util.glue.RealImplementation;
import com.ning.billing.util.svcapi.subscription.SubscriptionInternalApi;
import com.google.inject.AbstractModule;
public class MockSubscriptionModule extends AbstractModule implements SubscriptionModule {
+
@Override
public void installSubscriptionService() {
bind(SubscriptionService.class).toInstance(Mockito.mock(SubscriptionService.class));
diff --git a/util/src/test/java/com/ning/billing/mock/MockSubscription.java b/util/src/test/java/com/ning/billing/mock/MockSubscription.java
index 675b89d..c24507b 100644
--- a/util/src/test/java/com/ning/billing/mock/MockSubscription.java
+++ b/util/src/test/java/com/ning/billing/mock/MockSubscription.java
@@ -31,7 +31,7 @@ import com.ning.billing.catalog.api.PlanPhaseSpecifier;
import com.ning.billing.catalog.api.PriceList;
import com.ning.billing.catalog.api.ProductCategory;
import com.ning.billing.subscription.api.user.SubscriptionUserApiException;
-import com.ning.billing.subscription.api.user.Subscription;
+import com.ning.billing.subscription.api.SubscriptionBase;
import com.ning.billing.subscription.api.user.SubscriptionSourceType;
import com.ning.billing.subscription.api.user.SubscriptionState;
import com.ning.billing.subscription.api.user.SubscriptionTransition;
@@ -41,7 +41,7 @@ import com.ning.billing.util.events.EffectiveSubscriptionInternalEvent;
import com.google.common.collect.ImmutableList;
-public class MockSubscription implements Subscription {
+public class MockSubscription implements SubscriptionBase {
private final UUID id;
private final UUID bundleId;
@@ -71,7 +71,7 @@ public class MockSubscription implements Subscription {
this.transitions = ImmutableList.<EffectiveSubscriptionInternalEvent>of();
}
- Subscription sub = Mockito.mock(Subscription.class);
+ SubscriptionBase sub = Mockito.mock(SubscriptionBase.class);
@Override
public boolean cancel(final DateTime requestedDate, final CallContext context) throws SubscriptionUserApiException {