killbill-memoizeit
Changes
beatrix/src/test/java/org/killbill/billing/beatrix/integration/TestMigrationSubscriptions.java 45(+41 -4)
entitlement/src/main/java/org/killbill/billing/entitlement/api/DefaultEntitlementApi.java 67(+0 -67)
entitlement/src/test/java/org/killbill/billing/entitlement/api/TestDefaultEntitlementApi.java 98(+0 -98)
subscription/src/main/java/org/killbill/billing/subscription/api/SubscriptionBaseApiService.java 5(+0 -5)
Details
diff --git a/api/src/main/java/org/killbill/billing/subscription/api/SubscriptionBaseInternalApi.java b/api/src/main/java/org/killbill/billing/subscription/api/SubscriptionBaseInternalApi.java
index f4427c1..4beaf36 100644
--- a/api/src/main/java/org/killbill/billing/subscription/api/SubscriptionBaseInternalApi.java
+++ b/api/src/main/java/org/killbill/billing/subscription/api/SubscriptionBaseInternalApi.java
@@ -36,7 +36,6 @@ import org.killbill.billing.catalog.api.PlanPhaseSpecifier;
import org.killbill.billing.catalog.api.PlanSpecifier;
import org.killbill.billing.entitlement.api.BaseEntitlementWithAddOnsSpecifier;
import org.killbill.billing.entitlement.api.EntitlementAOStatusDryRun;
-import org.killbill.billing.entitlement.api.EntitlementSpecifier;
import org.killbill.billing.events.EffectiveSubscriptionInternalEvent;
import org.killbill.billing.invoice.api.DryRunArguments;
import org.killbill.billing.subscription.api.user.SubscriptionBaseApiException;
@@ -49,9 +48,6 @@ public interface SubscriptionBaseInternalApi {
public SubscriptionBase createSubscription(UUID bundleId, PlanPhaseSpecifier spec, List<PlanPhasePriceOverride> overrides, DateTime requestedDateWithMs,
final boolean isMigrated, InternalCallContext context) throws SubscriptionBaseApiException;
- public List<SubscriptionBase> createBaseSubscriptionWithAddOns(UUID bundleId, Iterable<EntitlementSpecifier> entitlements, DateTime requestedDateWithMs,
- final boolean isMigrated, InternalCallContext context) throws SubscriptionBaseApiException;
-
public List<SubscriptionBase> createBaseSubscriptionsWithAddOns(UUID accountId, Iterable<BaseEntitlementWithAddOnsSpecifier> baseEntitlementWithAddOnsSpecifier,
InternalCallContext contextWithValidAccountRecordId) throws SubscriptionBaseApiException;
diff --git a/beatrix/src/test/java/org/killbill/billing/beatrix/integration/TestMigrationSubscriptions.java b/beatrix/src/test/java/org/killbill/billing/beatrix/integration/TestMigrationSubscriptions.java
index 3069314..19d8e2b 100644
--- a/beatrix/src/test/java/org/killbill/billing/beatrix/integration/TestMigrationSubscriptions.java
+++ b/beatrix/src/test/java/org/killbill/billing/beatrix/integration/TestMigrationSubscriptions.java
@@ -20,6 +20,7 @@ package org.killbill.billing.beatrix.integration;
import java.math.BigDecimal;
import java.util.ArrayList;
import java.util.List;
+import java.util.UUID;
import org.joda.time.LocalDate;
import org.killbill.billing.account.api.Account;
@@ -30,6 +31,7 @@ import org.killbill.billing.catalog.api.BillingPeriod;
import org.killbill.billing.catalog.api.PhaseType;
import org.killbill.billing.catalog.api.PlanPhaseSpecifier;
import org.killbill.billing.catalog.api.PriceListSet;
+import org.killbill.billing.entitlement.api.BaseEntitlementWithAddOnsSpecifier;
import org.killbill.billing.entitlement.api.DefaultEntitlementSpecifier;
import org.killbill.billing.entitlement.api.Entitlement;
import org.killbill.billing.entitlement.api.Entitlement.EntitlementState;
@@ -234,13 +236,48 @@ public class TestMigrationSubscriptions extends TestIntegrationBase {
specifierList.add(baseEntitlementSpecifier);
specifierList.add(addOnEntitlementSpecifier1);
- busHandler.pushExpectedEvents(NextEvent.BLOCK, NextEvent.BLOCK);
- final Entitlement baseEntitlement = entitlementApi.createBaseEntitlementWithAddOns(account.getId(), externalKey, specifierList, entitlementMigrationDate, billingMigrationDate, false, ImmutableList.<PluginProperty>of(), callContext);
+ busHandler.pushExpectedEvents(NextEvent.CREATE, NextEvent.CREATE, NextEvent.BLOCK, NextEvent.BLOCK,
+ NextEvent.NULL_INVOICE, NextEvent.INVOICE, NextEvent.INVOICE,
+ NextEvent.PAYMENT, NextEvent.INVOICE_PAYMENT, NextEvent.PAYMENT, NextEvent.INVOICE_PAYMENT);
+ BaseEntitlementWithAddOnsSpecifier baseEntitlementWithAddOnsSpecifier = new BaseEntitlementWithAddOnsSpecifier() {
+ @Override
+ public UUID getBundleId() {
+ return null;
+ }
+ @Override
+ public String getExternalKey() {
+ return externalKey;
+ }
+ @Override
+ public Iterable<EntitlementSpecifier> getEntitlementSpecifier() {
+ return specifierList;
+ }
+ @Override
+ public LocalDate getEntitlementEffectiveDate() {
+ return entitlementMigrationDate;
+ }
+ @Override
+ public LocalDate getBillingEffectiveDate() {
+ return billingMigrationDate;
+ }
+ @Override
+ public boolean isMigrated() {
+ return false;
+ }
+ };
+ List<BaseEntitlementWithAddOnsSpecifier> baseEntitlementWithAddOnsSpecifierList = new ArrayList<BaseEntitlementWithAddOnsSpecifier>();
+ baseEntitlementWithAddOnsSpecifierList.add(baseEntitlementWithAddOnsSpecifier);
+
+ final List<Entitlement> baseEntitlement = entitlementApi.createBaseEntitlementsWithAddOns(
+ account.getId(),
+ baseEntitlementWithAddOnsSpecifierList,
+ ImmutableList.<PluginProperty>of(),
+ callContext);
assertListenerStatus();
- Assert.assertEquals(baseEntitlement.getState(), EntitlementState.ACTIVE);
+ Assert.assertEquals(baseEntitlement.get(0).getState(), EntitlementState.ACTIVE);
// Billing starts straight on EVERGREEN
- busHandler.pushExpectedEvents(NextEvent.CREATE, NextEvent.CREATE, NextEvent.INVOICE, NextEvent.NULL_INVOICE, NextEvent.PAYMENT, NextEvent.INVOICE_PAYMENT);
+ busHandler.pushExpectedEvents(NextEvent.INVOICE, NextEvent.INVOICE, NextEvent.PAYMENT, NextEvent.INVOICE_PAYMENT, NextEvent.PAYMENT, NextEvent.INVOICE_PAYMENT);
clock.addMonths(1);
assertListenerStatus();
}
diff --git a/beatrix/src/test/java/org/killbill/billing/beatrix/integration/TestSubscription.java b/beatrix/src/test/java/org/killbill/billing/beatrix/integration/TestSubscription.java
index 21cfc7d..8b5ca40 100644
--- a/beatrix/src/test/java/org/killbill/billing/beatrix/integration/TestSubscription.java
+++ b/beatrix/src/test/java/org/killbill/billing/beatrix/integration/TestSubscription.java
@@ -54,7 +54,6 @@ import com.google.common.collect.ImmutableList;
import static org.testng.Assert.assertEquals;
import static org.testng.Assert.assertNotNull;
-import static org.testng.Assert.assertTrue;
public class TestSubscription extends TestIntegrationBase {
@@ -190,62 +189,6 @@ public class TestSubscription extends TestIntegrationBase {
}
@Test(groups = "slow")
- public void testCreateSubscriptionWithAddOns() throws Exception {
- final LocalDate initialDate = new LocalDate(2015, 10, 1);
- clock.setDay(initialDate);
-
- final Account account = createAccountWithNonOsgiPaymentMethod(getAccountData(1));
-
- final PlanPhaseSpecifier baseSpec = new PlanPhaseSpecifier("Shotgun", BillingPeriod.MONTHLY, PriceListSet.DEFAULT_PRICELIST_NAME, null);
- final PlanPhaseSpecifier addOnSpec1 = new PlanPhaseSpecifier("Telescopic-Scope", BillingPeriod.MONTHLY, PriceListSet.DEFAULT_PRICELIST_NAME, null);
- final PlanPhaseSpecifier addOnSpec2 = new PlanPhaseSpecifier("Laser-Scope", BillingPeriod.MONTHLY, PriceListSet.DEFAULT_PRICELIST_NAME, null);
-
- final String externalKey = "baseExternalKey";
- EntitlementSpecifier baseEntitlementSpecifier = new DefaultEntitlementSpecifier(baseSpec, null);
- EntitlementSpecifier addOnEntitlementSpecifier1 = new DefaultEntitlementSpecifier(addOnSpec1, null);
- EntitlementSpecifier addOnEntitlementSpecifier2 = new DefaultEntitlementSpecifier(addOnSpec2, null);
-
- final List<EntitlementSpecifier> specifierList = new ArrayList<EntitlementSpecifier>();
- specifierList.add(baseEntitlementSpecifier);
- specifierList.add(addOnEntitlementSpecifier1);
- specifierList.add(addOnEntitlementSpecifier2);
-
- busHandler.pushExpectedEvents(NextEvent.CREATE, NextEvent.BLOCK, NextEvent.CREATE, NextEvent.BLOCK, NextEvent.CREATE, NextEvent.BLOCK, NextEvent.NULL_INVOICE, NextEvent.NULL_INVOICE, NextEvent.INVOICE, NextEvent.PAYMENT, NextEvent.INVOICE_PAYMENT);
- final Entitlement entitlement = entitlementApi.createBaseEntitlementWithAddOns(account.getId(), externalKey, specifierList, initialDate, initialDate, false, ImmutableList.<PluginProperty>of(), callContext);
- assertListenerStatus();
- checkNoMoreInvoiceToGenerate(account);
-
- assertNotNull(entitlement);
-
- final List<Entitlement> allEntitlementsForBundle = entitlementApi.getAllEntitlementsForBundle(entitlement.getBundleId(), callContext);
- assertTrue(allEntitlementsForBundle.size() == 3);
-
- final Entitlement baseEntitlement = allEntitlementsForBundle.get(0);
- final Entitlement addOnEntitlement1 = allEntitlementsForBundle.get(1);
- final Entitlement addOnEntitlement2 = allEntitlementsForBundle.get(2);
-
- assertEquals(baseEntitlement.getLastActiveProduct().getName(), "Shotgun");
- assertEquals(baseEntitlement.getLastActiveProductCategory(), ProductCategory.BASE);
-
- assertEquals(addOnEntitlement1.getLastActiveProduct().getName(), "Telescopic-Scope");
- assertEquals(addOnEntitlement1.getLastActiveProductCategory(), ProductCategory.ADD_ON);
-
- assertEquals(addOnEntitlement2.getLastActiveProduct().getName(), "Laser-Scope");
- assertEquals(addOnEntitlement2.getLastActiveProductCategory(), ProductCategory.ADD_ON);
-
- final List<Invoice> invoices = invoiceUserApi.getInvoicesByAccount(account.getId(), false, callContext);
- assertTrue(invoices.size() == 1); // ONLY ONE INVOICE
- assertTrue(invoices.get(0).getInvoiceItems().size() == 3);
-
- final ImmutableList<ExpectedInvoiceItemCheck> toBeChecked = ImmutableList.<ExpectedInvoiceItemCheck>of(
- new ExpectedInvoiceItemCheck(initialDate, new LocalDate(2015, 10, 31), InvoiceItemType.RECURRING, new BigDecimal("387.05")), // amount=387.05, rate=399.95 -> Telescopic-Scope
- new ExpectedInvoiceItemCheck(initialDate, new LocalDate(2015, 10, 31), InvoiceItemType.RECURRING, new BigDecimal("967.69")), // amount=967.69, rate=999.95 -> Laser-Scope
- new ExpectedInvoiceItemCheck(initialDate, null, InvoiceItemType.FIXED, new BigDecimal("0"))); // Shotgun
-
- invoiceChecker.checkInvoice(invoices.get(0).getId(), callContext, toBeChecked);
- }
-
- @Test(groups = "slow")
public void testCreateMultipleSubscriptionsWithAddOns() throws Exception {
final LocalDate initialDate = new LocalDate(2015, 10, 1);
clock.setDay(initialDate);
@@ -393,38 +336,6 @@ public class TestSubscription extends TestIntegrationBase {
}
@Test(groups = "slow")
- public void testCreateSubscriptionWithAddOnsWithLimitException() throws Exception {
- final LocalDate initialDate = new LocalDate(2015, 10, 1);
- clock.setDay(initialDate);
-
- final Account account = createAccountWithNonOsgiPaymentMethod(getAccountData(1));
-
- final PlanPhaseSpecifier baseSpec = new PlanPhaseSpecifier("Shotgun", BillingPeriod.MONTHLY, PriceListSet.DEFAULT_PRICELIST_NAME, null);
- final PlanPhaseSpecifier addOnSpec1 = new PlanPhaseSpecifier("Laser-Scope", BillingPeriod.MONTHLY, PriceListSet.DEFAULT_PRICELIST_NAME, null);
- final PlanPhaseSpecifier addOnSpec2 = new PlanPhaseSpecifier("Laser-Scope", BillingPeriod.MONTHLY, PriceListSet.DEFAULT_PRICELIST_NAME, null);
- final PlanPhaseSpecifier addOnSpec3 = new PlanPhaseSpecifier("Laser-Scope", BillingPeriod.MONTHLY, PriceListSet.DEFAULT_PRICELIST_NAME, null);
-
- final String externalKey = "baseExternalKey";
- EntitlementSpecifier baseEntitlementSpecifier = new DefaultEntitlementSpecifier(baseSpec, null);
- EntitlementSpecifier addOnEntitlementSpecifier1 = new DefaultEntitlementSpecifier(addOnSpec1, null);
- EntitlementSpecifier addOnEntitlementSpecifier2 = new DefaultEntitlementSpecifier(addOnSpec2, null);
- EntitlementSpecifier addOnEntitlementSpecifier3 = new DefaultEntitlementSpecifier(addOnSpec3, null);
-
- final List<EntitlementSpecifier> specifierList = new ArrayList<EntitlementSpecifier>();
- specifierList.add(baseEntitlementSpecifier);
- specifierList.add(addOnEntitlementSpecifier1);
- specifierList.add(addOnEntitlementSpecifier2);
- specifierList.add(addOnEntitlementSpecifier3);
-
- // Trying to add the third add_on with the same plan should throw an exception (the limit is 2 for this plan)
- try {
- entitlementApi.createBaseEntitlementWithAddOns(account.getId(), externalKey, specifierList, initialDate, initialDate, false, ImmutableList.<PluginProperty>of(), callContext);
- } catch (final EntitlementApiException e) {
- assertEquals(e.getCode(), ErrorCode.SUB_CREATE_AO_MAX_PLAN_ALLOWED_BY_BUNDLE.getCode());
- }
- }
-
- @Test(groups = "slow")
public void testCreateBaseSubscriptionAndAddOnsWithLimitException() throws Exception {
final LocalDate initialDate = new LocalDate(2015, 10, 1);
clock.setDay(initialDate);
diff --git a/entitlement/src/main/java/org/killbill/billing/entitlement/api/DefaultEntitlementApi.java b/entitlement/src/main/java/org/killbill/billing/entitlement/api/DefaultEntitlementApi.java
index e9bfcfa..a258797 100644
--- a/entitlement/src/main/java/org/killbill/billing/entitlement/api/DefaultEntitlementApi.java
+++ b/entitlement/src/main/java/org/killbill/billing/entitlement/api/DefaultEntitlementApi.java
@@ -71,7 +71,6 @@ import com.google.common.collect.Iterables;
import com.google.common.collect.Lists;
import static org.killbill.billing.entitlement.logging.EntitlementLoggingHelper.logCreateEntitlement;
-import static org.killbill.billing.entitlement.logging.EntitlementLoggingHelper.logCreateEntitlementWithAOs;
import static org.killbill.billing.entitlement.logging.EntitlementLoggingHelper.logCreateEntitlementsWithAOs;
import static org.killbill.billing.entitlement.logging.EntitlementLoggingHelper.logPauseResumeEntitlement;
import static org.killbill.billing.entitlement.logging.EntitlementLoggingHelper.logTransferEntitlement;
@@ -191,72 +190,6 @@ public class DefaultEntitlementApi extends DefaultEntitlementApiBase implements
}
@Override
- public Entitlement createBaseEntitlementWithAddOns(final UUID accountId, final String externalKey, final Iterable<EntitlementSpecifier> entitlementSpecifiers,
- @Nullable LocalDate entitlementEffectiveDate, @Nullable LocalDate billingEffectiveDate, final boolean isMigrated,
- final Iterable<PluginProperty> properties, final CallContext callContext)
- throws EntitlementApiException {
-
- logCreateEntitlementWithAOs(log, externalKey, entitlementSpecifiers, entitlementEffectiveDate, billingEffectiveDate);
-
-
- final List<EntitlementSpecifier> entitlementSpecifierList = new ArrayList<EntitlementSpecifier>();
- Iterables.addAll(entitlementSpecifierList, entitlementSpecifiers);
- final BaseEntitlementWithAddOnsSpecifier baseEntitlementWithAddOnsSpecifier = new DefaultBaseEntitlementWithAddOnsSpecifier(
- null,
- externalKey,
- entitlementSpecifierList,
- entitlementEffectiveDate,
- billingEffectiveDate,
- isMigrated);
- final List<BaseEntitlementWithAddOnsSpecifier> baseEntitlementWithAddOnsSpecifierList = new ArrayList<BaseEntitlementWithAddOnsSpecifier>();
- baseEntitlementWithAddOnsSpecifierList.add(baseEntitlementWithAddOnsSpecifier);
-
- final EntitlementContext pluginContext = new DefaultEntitlementContext(OperationType.CREATE_SUBSCRIPTIONS_WITH_AO,
- accountId,
- null,
- baseEntitlementWithAddOnsSpecifierList,
- null,
- properties,
- callContext);
-
- final WithEntitlementPlugin<Entitlement> createBaseEntitlementWithAddOn = new WithEntitlementPlugin<Entitlement>() {
- @Override
- public Entitlement doCall(final EntitlementApi entitlementApi, final EntitlementContext updatedPluginContext) throws EntitlementApiException {
- final InternalCallContext contextWithValidAccountRecordId = internalCallContextFactory.createInternalCallContext(accountId, callContext);
-
- try {
- if (entitlementUtils.getFirstActiveSubscriptionIdForKeyOrNull(externalKey, contextWithValidAccountRecordId) != null) {
- throw new EntitlementApiException(new SubscriptionBaseApiException(ErrorCode.SUB_CREATE_ACTIVE_BUNDLE_KEY_EXISTS, externalKey));
- }
-
- final SubscriptionBaseBundle bundle = subscriptionBaseInternalApi.createBundleForAccount(accountId, externalKey, contextWithValidAccountRecordId);
-
- final DateTime billingRequestedDate = dateHelper.fromLocalDateAndReferenceTime(updatedPluginContext.getBaseEntitlementWithAddOnsSpecifiers().iterator().next().getBillingEffectiveDate(), contextWithValidAccountRecordId);
- final List<SubscriptionBase> subscriptionBases = subscriptionBaseInternalApi.createBaseSubscriptionWithAddOns(bundle.getId(), entitlementSpecifiers, billingRequestedDate, isMigrated, contextWithValidAccountRecordId);
-
- final List<BlockingState> blockingStates = new ArrayList<BlockingState>();
- for (final SubscriptionBase cur : subscriptionBases) {
- final BlockingState blockingState = new DefaultBlockingState(cur.getId(), BlockingStateType.SUBSCRIPTION, DefaultEntitlementApi.ENT_STATE_START, EntitlementService.ENTITLEMENT_SERVICE_NAME, false, false, false, cur.getAllTransitions().get(0).getEffectiveTransitionTime());
- blockingStates.add(blockingState);
- }
- final SubscriptionBase subscriptionBaseBP = subscriptionBases.get(0);
- entitlementUtils.setBlockingStatesAndPostBlockingTransitionEvent(blockingStates, subscriptionBaseBP.getBundleId(), contextWithValidAccountRecordId);
-
-
- return new DefaultEntitlement(accountId, subscriptionBaseBP.getId(), eventsStreamBuilder, entitlementApi, pluginExecution,
- blockingStateDao, subscriptionBaseInternalApi, checker, notificationQueueService,
- entitlementUtils, dateHelper, clock, securityApi, internalCallContextFactory, callContext);
-
- } catch (final SubscriptionBaseApiException e) {
- throw new EntitlementApiException(e);
- }
-
- }
- };
- return pluginExecution.executeWithPlugin(createBaseEntitlementWithAddOn, pluginContext);
- }
-
- @Override
public List<Entitlement> createBaseEntitlementsWithAddOns(final UUID accountId, final Iterable<BaseEntitlementWithAddOnsSpecifier> baseEntitlementSpecifiersWithAddOns, final Iterable<PluginProperty> properties, final CallContext callContext) throws EntitlementApiException {
logCreateEntitlementsWithAOs(log, baseEntitlementSpecifiersWithAddOns);
diff --git a/entitlement/src/test/java/org/killbill/billing/entitlement/api/TestDefaultEntitlementApi.java b/entitlement/src/test/java/org/killbill/billing/entitlement/api/TestDefaultEntitlementApi.java
index fe59e7d..979dde2 100644
--- a/entitlement/src/test/java/org/killbill/billing/entitlement/api/TestDefaultEntitlementApi.java
+++ b/entitlement/src/test/java/org/killbill/billing/entitlement/api/TestDefaultEntitlementApi.java
@@ -500,104 +500,6 @@ public class TestDefaultEntitlementApi extends EntitlementTestSuiteWithEmbeddedD
}
@Test(groups = "slow")
- public void testCreateBaseEntitlementWithAddOns() throws AccountApiException, EntitlementApiException, SubscriptionBaseApiException {
- final LocalDate initialDate = new LocalDate(2013, 8, 7);
- clock.setDay(initialDate);
-
- final Account account = createAccount(getAccountData(7));
-
- final PlanPhaseSpecifier baseSpec = new PlanPhaseSpecifier("Pistol", BillingPeriod.MONTHLY, PriceListSet.DEFAULT_PRICELIST_NAME, null);
- final PlanPhaseSpecifier addOnSpec = new PlanPhaseSpecifier("Cleaning", BillingPeriod.MONTHLY, PriceListSet.DEFAULT_PRICELIST_NAME, null);
-
- final String externalKey = "baseExternalKey";
- EntitlementSpecifier baseEntitlementSpecifier = new DefaultEntitlementSpecifier(baseSpec, null);
- EntitlementSpecifier addOnEntitlementSpecifier = new DefaultEntitlementSpecifier(addOnSpec, null);
-
- final List<EntitlementSpecifier> specifierList = new ArrayList<EntitlementSpecifier>();
- specifierList.add(baseEntitlementSpecifier);
- specifierList.add(addOnEntitlementSpecifier);
-
- testListener.pushExpectedEvents(NextEvent.CREATE, NextEvent.BLOCK, NextEvent.CREATE, NextEvent.BLOCK);
- final Entitlement entitlement = entitlementApi.createBaseEntitlementWithAddOns(account.getId(), externalKey, specifierList, initialDate, initialDate, false, ImmutableList.<PluginProperty>of(), callContext);
- assertListenerStatus();
-
- assertNotNull(entitlement);
-
- final List<Entitlement> allEntitlementsForBundle = entitlementApi.getAllEntitlementsForBundle(entitlement.getBundleId(), callContext);
- assertTrue(allEntitlementsForBundle.size() == 2);
-
- final Entitlement baseEntitlement = allEntitlementsForBundle.get(0);
- final Entitlement addOnEntitlement = allEntitlementsForBundle.get(1);
-
- assertEquals(baseEntitlement.getLastActiveProduct().getName(), "Pistol");
- assertEquals(baseEntitlement.getLastActiveProductCategory(), ProductCategory.BASE);
-
- assertEquals(addOnEntitlement.getLastActiveProduct().getName(), "Cleaning");
- assertEquals(addOnEntitlement.getLastActiveProductCategory(), ProductCategory.ADD_ON);
-
- }
-
- @Test(groups = "slow")
- public void testCreateBaseEntitlementWithInvalidAddOn() throws AccountApiException, EntitlementApiException {
- final LocalDate initialDate = new LocalDate(2013, 8, 7);
- clock.setDay(initialDate);
-
- final Account account = createAccount(getAccountData(7));
-
- final PlanPhaseSpecifier baseSpec = new PlanPhaseSpecifier("Pistol", BillingPeriod.MONTHLY, PriceListSet.DEFAULT_PRICELIST_NAME, null);
- final PlanPhaseSpecifier addOnSpec = new PlanPhaseSpecifier("Invalid", BillingPeriod.MONTHLY, PriceListSet.DEFAULT_PRICELIST_NAME, null);
-
- final String externalKey = "baseExternalKey";
- EntitlementSpecifier baseEntitlementSpecifier = new DefaultEntitlementSpecifier(baseSpec, null);
- EntitlementSpecifier addOnEntitlementSpecifier = new DefaultEntitlementSpecifier(addOnSpec, null);
-
- final List<EntitlementSpecifier> specifierList = new ArrayList<EntitlementSpecifier>();
- specifierList.add(baseEntitlementSpecifier);
- specifierList.add(addOnEntitlementSpecifier);
-
- try {
- entitlementApi.createBaseEntitlementWithAddOns(account.getId(), externalKey, specifierList, initialDate, initialDate, false, ImmutableList.<PluginProperty>of(), callContext);
- fail();
- } catch (EntitlementApiException e) {
- assertEquals(e.getMessage(), "Could not find any product named 'Invalid'");
- }
-
- final List<Entitlement> allEntitlementsForAccount = entitlementApi.getAllEntitlementsForAccountId(account.getId(), callContext);
- assertTrue(allEntitlementsForAccount.size() == 0);
-
- }
-
- @Test(groups = "slow")
- public void testCreateBaseEntitlementWithoutBaseEntitlement() throws AccountApiException, EntitlementApiException {
- final LocalDate initialDate = new LocalDate(2013, 8, 7);
- clock.setDay(initialDate);
-
- final Account account = createAccount(getAccountData(7));
-
- final PlanPhaseSpecifier baseSpec = new PlanPhaseSpecifier("Cleaning", BillingPeriod.MONTHLY, PriceListSet.DEFAULT_PRICELIST_NAME, null);
- final PlanPhaseSpecifier addOnSpec = new PlanPhaseSpecifier("Bullets", BillingPeriod.MONTHLY, PriceListSet.DEFAULT_PRICELIST_NAME, null);
-
- final String externalKey = "addOnExternalKey";
- EntitlementSpecifier addOnEntitlementSpecifier1 = new DefaultEntitlementSpecifier(baseSpec, null);
- EntitlementSpecifier addOnEntitlementSpecifier2 = new DefaultEntitlementSpecifier(addOnSpec, null);
-
- final List<EntitlementSpecifier> specifierList = new ArrayList<EntitlementSpecifier>();
- specifierList.add(addOnEntitlementSpecifier1);
- specifierList.add(addOnEntitlementSpecifier2);
-
- try {
- entitlementApi.createBaseEntitlementWithAddOns(account.getId(), externalKey, specifierList, initialDate, initialDate, false, ImmutableList.<PluginProperty>of(), callContext);
- fail();
- } catch (EntitlementApiException e) {
- assertEquals(e.getMessage(), "Missing Base Subscription.");
- }
-
- final List<Entitlement> allEntitlementsForAccount = entitlementApi.getAllEntitlementsForAccountId(account.getId(), callContext);
- assertTrue(allEntitlementsForAccount.size() == 0);
- }
-
-
- @Test(groups = "slow")
public void testCreateBaseWithDifferentInTheFuture() throws AccountApiException, EntitlementApiException, SubscriptionApiException {
final LocalDate initialDate = new LocalDate(2013, 8, 7);
clock.setDay(initialDate);
diff --git a/subscription/src/main/java/org/killbill/billing/subscription/api/SubscriptionBaseApiService.java b/subscription/src/main/java/org/killbill/billing/subscription/api/SubscriptionBaseApiService.java
index c367ebd..40d5060 100644
--- a/subscription/src/main/java/org/killbill/billing/subscription/api/SubscriptionBaseApiService.java
+++ b/subscription/src/main/java/org/killbill/billing/subscription/api/SubscriptionBaseApiService.java
@@ -25,7 +25,6 @@ import org.joda.time.DateTime;
import org.killbill.billing.callcontext.InternalCallContext;
import org.killbill.billing.callcontext.InternalTenantContext;
import org.killbill.billing.catalog.api.BillingActionPolicy;
-import org.killbill.billing.catalog.api.BillingPeriod;
import org.killbill.billing.catalog.api.CatalogApiException;
import org.killbill.billing.catalog.api.PhaseType;
import org.killbill.billing.catalog.api.Plan;
@@ -36,7 +35,6 @@ import org.killbill.billing.subscription.api.user.DefaultSubscriptionBase;
import org.killbill.billing.subscription.api.user.SubscriptionAndAddOnsSpecifier;
import org.killbill.billing.subscription.api.user.SubscriptionBaseApiException;
import org.killbill.billing.subscription.api.user.SubscriptionBuilder;
-import org.killbill.billing.subscription.api.user.SubscriptionSpecifier;
import org.killbill.billing.subscription.events.SubscriptionBaseEvent;
import org.killbill.billing.util.callcontext.CallContext;
import org.killbill.billing.util.callcontext.TenantContext;
@@ -48,9 +46,6 @@ public interface SubscriptionBaseApiService {
CallContext context)
throws SubscriptionBaseApiException;
- public List<DefaultSubscriptionBase> createPlans(Iterable<SubscriptionSpecifier> subscriptions, CallContext context)
- throws SubscriptionBaseApiException;
-
public List<DefaultSubscriptionBase> createPlansWithAddOns(UUID accountId, Iterable<SubscriptionAndAddOnsSpecifier> subscriptionsAndAddOns, CallContext context)
throws SubscriptionBaseApiException;
diff --git a/subscription/src/main/java/org/killbill/billing/subscription/api/svcs/DefaultSubscriptionInternalApi.java b/subscription/src/main/java/org/killbill/billing/subscription/api/svcs/DefaultSubscriptionInternalApi.java
index a33fbe7..c4ac5c7 100644
--- a/subscription/src/main/java/org/killbill/billing/subscription/api/svcs/DefaultSubscriptionInternalApi.java
+++ b/subscription/src/main/java/org/killbill/billing/subscription/api/svcs/DefaultSubscriptionInternalApi.java
@@ -197,42 +197,6 @@ public class DefaultSubscriptionInternalApi extends SubscriptionApiBase implemen
}
}
- @Override
- public List<SubscriptionBase> createBaseSubscriptionWithAddOns(final UUID bundleId, final Iterable<EntitlementSpecifier> entitlements, final DateTime requestedDateWithMs, final boolean isMigrated, final InternalCallContext context) throws SubscriptionBaseApiException {
-
- final DateTime now = clock.getUTCNow();
- final DateTime effectiveDate = (requestedDateWithMs != null) ? DefaultClock.truncateMs(requestedDateWithMs) : now;
-
- try {
- final Catalog catalog = catalogService.getFullCatalog(true, true, context);
- final CallContext callContext = internalCallContextFactory.createCallContext(context);
-
- final SubscriptionBaseBundle bundle = dao.getSubscriptionBundleFromId(bundleId, context);
- if (bundle == null) {
- throw new SubscriptionBaseApiException(ErrorCode.SUB_CREATE_NO_BUNDLE, bundleId);
- }
-
- final List<SubscriptionSpecifier> subscriptions = verifyAndBuildSubscriptionSpecifiers(bundleId,
- entitlements,
- isMigrated,
- context,
- now,
- effectiveDate,
- catalog,
- callContext);
-
- final List<DefaultSubscriptionBase> result = apiService.createPlans(subscriptions, callContext);
- return ImmutableList.copyOf(Iterables.transform(result, new Function<DefaultSubscriptionBase, SubscriptionBase>() {
- @Override
- public SubscriptionBase apply(final DefaultSubscriptionBase input) {
- return input;
- }
- }));
- } catch (final CatalogApiException e) {
- throw new SubscriptionBaseApiException(e);
- }
- }
-
private List<SubscriptionSpecifier> verifyAndBuildSubscriptionSpecifiers(final UUID bundleId, final Iterable<EntitlementSpecifier> entitlements, final boolean isMigrated, final InternalCallContext context, final DateTime now, final DateTime effectiveDate, final Catalog catalog, final CallContext callContext) throws SubscriptionBaseApiException, CatalogApiException {
final List<SubscriptionSpecifier> subscriptions = new ArrayList<SubscriptionSpecifier>();
boolean first = true;
diff --git a/subscription/src/main/java/org/killbill/billing/subscription/api/user/DefaultSubscriptionBaseApiService.java b/subscription/src/main/java/org/killbill/billing/subscription/api/user/DefaultSubscriptionBaseApiService.java
index b4115db..8b5d0b6 100644
--- a/subscription/src/main/java/org/killbill/billing/subscription/api/user/DefaultSubscriptionBaseApiService.java
+++ b/subscription/src/main/java/org/killbill/billing/subscription/api/user/DefaultSubscriptionBaseApiService.java
@@ -117,20 +117,6 @@ public class DefaultSubscriptionBaseApiService implements SubscriptionBaseApiSer
}
@Override
- public List<DefaultSubscriptionBase> createPlans(final Iterable<SubscriptionSpecifier> subscriptions, final CallContext context) throws SubscriptionBaseApiException {
- Map<UUID, List<SubscriptionBaseEvent>> eventsMap = new HashMap<UUID, List<SubscriptionBaseEvent>>();
- List<DefaultSubscriptionBase> subscriptionBaseList = new ArrayList<DefaultSubscriptionBase>();
- createEvents(subscriptions, context, eventsMap, subscriptionBaseList);
-
- final InternalCallContext internalCallContext = createCallContextFromBundleId(subscriptionBaseList.get(0).getBundleId(), context);
- dao.createSubscriptionsWithAddOns(subscriptionBaseList, eventsMap, internalCallContext);
-
- final DefaultSubscriptionBase baseSubscription = findBaseSubscription(subscriptionBaseList);
- rebuildTransitions(internalCallContext, subscriptionBaseList, baseSubscription);
- return subscriptionBaseList;
- }
-
- @Override
public List<DefaultSubscriptionBase> createPlansWithAddOns(final UUID accountId, final Iterable<SubscriptionAndAddOnsSpecifier> subscriptionsAndAddOns, final CallContext context) throws SubscriptionBaseApiException {
Map<UUID, List<SubscriptionBaseEvent>> eventsMap = new HashMap<UUID, List<SubscriptionBaseEvent>>();
List<List<DefaultSubscriptionBase>> subscriptionBaseAndAddOnsList = new ArrayList<List<DefaultSubscriptionBase>>();