Skip to content

Commit

Permalink
catalog: Modify catalog api to take as an input a PlanSpecifier (and …
Browse files Browse the repository at this point in the history
…not a {Product, Billingperiod, PriceList}

Also, the PlanSpecifier was changed to not include the ProductCategory (since this is not a mandatory argument to select a Plan
for operations such as creating/changing Plan)
  • Loading branch information
sbrossie committed Jul 21, 2016
1 parent c9bc498 commit 154cd50
Show file tree
Hide file tree
Showing 45 changed files with 184 additions and 372 deletions.
Expand Up @@ -24,6 +24,7 @@
import org.joda.time.DateTime; import org.joda.time.DateTime;


import org.killbill.billing.catalog.api.PlanPhaseSpecifier; import org.killbill.billing.catalog.api.PlanPhaseSpecifier;
import org.killbill.billing.catalog.api.ProductCategory;
import org.killbill.billing.subscription.api.SubscriptionBaseTransitionType; import org.killbill.billing.subscription.api.SubscriptionBaseTransitionType;
import org.killbill.billing.util.entity.Entity; import org.killbill.billing.util.entity.Entity;


Expand Down Expand Up @@ -59,6 +60,12 @@ public interface ExistingEvent {
*/ */
public SubscriptionBaseTransitionType getSubscriptionTransitionType(); public SubscriptionBaseTransitionType getSubscriptionTransitionType();


/**
*
* @return the product category
*/
public ProductCategory getProductCategory();

/** /**
* @return the date at which this event was effective * @return the date at which this event was effective
*/ */
Expand Down
Expand Up @@ -166,7 +166,7 @@ public void testBundleTransferWithBPMonthlyOnlyWIthCancellationImm() throws Exce
// //
// CREATE SUBSCRIPTION AND EXPECT BOTH EVENTS: NextEvent.CREATE, NextEvent.BLOCK NextEvent.INVOICE // CREATE SUBSCRIPTION AND EXPECT BOTH EVENTS: NextEvent.CREATE, NextEvent.BLOCK NextEvent.INVOICE
// //
final PlanPhaseSpecifier bpPlanPhaseSpecifier = new PlanPhaseSpecifier(productName, ProductCategory.BASE, term, planSetName, null); final PlanPhaseSpecifier bpPlanPhaseSpecifier = new PlanPhaseSpecifier(productName, term, planSetName, null);


final DefaultEntitlement bpEntitlement = createBaseEntitlementAndCheckForCompletion(account.getId(), "externalKey", productName, ProductCategory.BASE, term, NextEvent.CREATE, NextEvent.BLOCK, NextEvent.INVOICE); final DefaultEntitlement bpEntitlement = createBaseEntitlementAndCheckForCompletion(account.getId(), "externalKey", productName, ProductCategory.BASE, term, NextEvent.CREATE, NextEvent.BLOCK, NextEvent.INVOICE);
assertNotNull(bpEntitlement); assertNotNull(bpEntitlement);
Expand Down
Expand Up @@ -79,7 +79,7 @@ public void testRetirePlan() throws Exception {


// Catalog v2 should start now. // Catalog v2 should start now.


final PlanPhaseSpecifier spec = new PlanPhaseSpecifier(productName, ProductCategory.BASE, term, PriceListSet.DEFAULT_PRICELIST_NAME, null); final PlanPhaseSpecifier spec = new PlanPhaseSpecifier(productName, term, PriceListSet.DEFAULT_PRICELIST_NAME, null);
try { try {
entitlementApi.createBaseEntitlement(account.getId(), spec, "externalKey2", null, null, null, false, ImmutableList.<PluginProperty>of(), callContext); entitlementApi.createBaseEntitlement(account.getId(), spec, "externalKey2", null, null, null, false, ImmutableList.<PluginProperty>of(), callContext);
fail(); // force to fail is there is not an exception fail(); // force to fail is there is not an exception
Expand Down Expand Up @@ -135,7 +135,7 @@ public void testRetireProduct() throws Exception {


// Catalog v3 should start now. // Catalog v3 should start now.


final PlanPhaseSpecifier spec = new PlanPhaseSpecifier(productName, ProductCategory.BASE, term, PriceListSet.DEFAULT_PRICELIST_NAME, null); final PlanPhaseSpecifier spec = new PlanPhaseSpecifier(productName, term, PriceListSet.DEFAULT_PRICELIST_NAME, null);
try { try {
entitlementApi.createBaseEntitlement(account.getId(), spec, "externalKey2", null, null, null, false, ImmutableList.<PluginProperty>of(), callContext); entitlementApi.createBaseEntitlement(account.getId(), spec, "externalKey2", null, null, null, false, ImmutableList.<PluginProperty>of(), callContext);
fail(); // force to fail is there is not an exception fail(); // force to fail is there is not an exception
Expand Down Expand Up @@ -170,7 +170,7 @@ public void testRetirePriceList() throws Exception {


final String productName = "Pistol"; final String productName = "Pistol";
final BillingPeriod term = BillingPeriod.MONTHLY; final BillingPeriod term = BillingPeriod.MONTHLY;
final PlanPhaseSpecifier spec = new PlanPhaseSpecifier(productName, ProductCategory.BASE, term, "SpecialDiscount", null); final PlanPhaseSpecifier spec = new PlanPhaseSpecifier(productName, term, "SpecialDiscount", null);


busHandler.pushExpectedEvents(NextEvent.CREATE, NextEvent.BLOCK, NextEvent.INVOICE); busHandler.pushExpectedEvents(NextEvent.CREATE, NextEvent.BLOCK, NextEvent.INVOICE);
final Entitlement bpEntitlement = entitlementApi.createBaseEntitlement(account.getId(), spec, "externalKey", null, null, null, false, ImmutableList.<PluginProperty>of(), callContext); final Entitlement bpEntitlement = entitlementApi.createBaseEntitlement(account.getId(), spec, "externalKey", null, null, null, false, ImmutableList.<PluginProperty>of(), callContext);
Expand Down
Expand Up @@ -606,7 +606,7 @@ protected DefaultEntitlement createBaseEntitlementWithPriceOverrideAndCheckForCo
@Override @Override
public Entitlement apply(@Nullable final Void dontcare) { public Entitlement apply(@Nullable final Void dontcare) {
try { try {
final PlanPhaseSpecifier spec = new PlanPhaseSpecifier(productName, productCategory, billingPeriod, PriceListSet.DEFAULT_PRICELIST_NAME, null); final PlanPhaseSpecifier spec = new PlanPhaseSpecifier(productName, billingPeriod, PriceListSet.DEFAULT_PRICELIST_NAME, null);
final Entitlement entitlement = entitlementApi.createBaseEntitlement(accountId, spec, bundleExternalKey, overrides, null, null, false, ImmutableList.<PluginProperty>of(), callContext); final Entitlement entitlement = entitlementApi.createBaseEntitlement(accountId, spec, bundleExternalKey, overrides, null, null, false, ImmutableList.<PluginProperty>of(), callContext);
assertNotNull(entitlement); assertNotNull(entitlement);
return entitlement; return entitlement;
Expand Down Expand Up @@ -640,7 +640,7 @@ protected DefaultEntitlement addAOEntitlementAndCheckForCompletion(final UUID bu
@Override @Override
public Entitlement apply(@Nullable final Void dontcare) { public Entitlement apply(@Nullable final Void dontcare) {
try { try {
final PlanPhaseSpecifier spec = new PlanPhaseSpecifier(productName, productCategory, billingPeriod, PriceListSet.DEFAULT_PRICELIST_NAME, null); final PlanPhaseSpecifier spec = new PlanPhaseSpecifier(productName, billingPeriod, PriceListSet.DEFAULT_PRICELIST_NAME, null);
final Entitlement entitlement = entitlementApi.addEntitlement(bundleId, spec, null, null, null, false, ImmutableList.<PluginProperty>of(), callContext); final Entitlement entitlement = entitlementApi.addEntitlement(bundleId, spec, null, null, null, false, ImmutableList.<PluginProperty>of(), callContext);
assertNotNull(entitlement); assertNotNull(entitlement);
return entitlement; return entitlement;
Expand Down Expand Up @@ -808,7 +808,7 @@ public TestDryRunArguments(final DryRunType dryRunType,
final LocalDate effectiveDate, final LocalDate effectiveDate,
final BillingActionPolicy billingPolicy) { final BillingActionPolicy billingPolicy) {
this.dryRunType = dryRunType; this.dryRunType = dryRunType;
this.spec = new PlanPhaseSpecifier(productName, category, billingPeriod, priceList, phaseType); this.spec = new PlanPhaseSpecifier(productName, billingPeriod, priceList, phaseType);
this.action = action; this.action = action;
this.subscriptionId = subscriptionId; this.subscriptionId = subscriptionId;
this.bundleId = bundleId; this.bundleId = bundleId;
Expand Down
Expand Up @@ -30,7 +30,6 @@
import org.killbill.billing.catalog.api.PhaseType; import org.killbill.billing.catalog.api.PhaseType;
import org.killbill.billing.catalog.api.PlanPhaseSpecifier; import org.killbill.billing.catalog.api.PlanPhaseSpecifier;
import org.killbill.billing.catalog.api.PriceListSet; import org.killbill.billing.catalog.api.PriceListSet;
import org.killbill.billing.catalog.api.ProductCategory;
import org.killbill.billing.entitlement.api.DefaultEntitlementSpecifier; import org.killbill.billing.entitlement.api.DefaultEntitlementSpecifier;
import org.killbill.billing.entitlement.api.Entitlement; import org.killbill.billing.entitlement.api.Entitlement;
import org.killbill.billing.entitlement.api.Entitlement.EntitlementState; import org.killbill.billing.entitlement.api.Entitlement.EntitlementState;
Expand Down Expand Up @@ -72,7 +71,7 @@ public void testSimpleMigrationBP() throws Exception {
final LocalDate billingMigrationDate = new LocalDate(2016, 1, 31); final LocalDate billingMigrationDate = new LocalDate(2016, 1, 31);


// Entitlement wil be created in PENDING state // Entitlement wil be created in PENDING state
final PlanPhaseSpecifier spec = new PlanPhaseSpecifier("Shotgun", ProductCategory.BASE, BillingPeriod.MONTHLY, PriceListSet.DEFAULT_PRICELIST_NAME, null); final PlanPhaseSpecifier spec = new PlanPhaseSpecifier("Shotgun", BillingPeriod.MONTHLY, PriceListSet.DEFAULT_PRICELIST_NAME, null);
final Entitlement entitlement = entitlementApi.createBaseEntitlement(account.getId(), spec, "bundleKey", null, entitlementMigrationDate, billingMigrationDate, false, ImmutableList.<PluginProperty>of(), callContext); final Entitlement entitlement = entitlementApi.createBaseEntitlement(account.getId(), spec, "bundleKey", null, entitlementMigrationDate, billingMigrationDate, false, ImmutableList.<PluginProperty>of(), callContext);
Assert.assertEquals(entitlement.getState(), EntitlementState.PENDING); Assert.assertEquals(entitlement.getState(), EntitlementState.PENDING);


Expand Down Expand Up @@ -128,7 +127,7 @@ public void testSimpleMigrationBPSkipTrial() throws Exception {


// Entitlement wil be created in ACTIVE state because entitlementMigrationDate was set in the past // Entitlement wil be created in ACTIVE state because entitlementMigrationDate was set in the past
busHandler.pushExpectedEvents(NextEvent.BLOCK); busHandler.pushExpectedEvents(NextEvent.BLOCK);
final PlanPhaseSpecifier spec = new PlanPhaseSpecifier("Shotgun", ProductCategory.BASE, BillingPeriod.MONTHLY, PriceListSet.DEFAULT_PRICELIST_NAME, PhaseType.EVERGREEN); final PlanPhaseSpecifier spec = new PlanPhaseSpecifier("Shotgun", BillingPeriod.MONTHLY, PriceListSet.DEFAULT_PRICELIST_NAME, PhaseType.EVERGREEN);
final Entitlement entitlement = entitlementApi.createBaseEntitlement(account.getId(), spec, "bundleKey", null, entitlementMigrationDate, billingMigrationDate, false, ImmutableList.<PluginProperty>of(), callContext); final Entitlement entitlement = entitlementApi.createBaseEntitlement(account.getId(), spec, "bundleKey", null, entitlementMigrationDate, billingMigrationDate, false, ImmutableList.<PluginProperty>of(), callContext);
assertListenerStatus(); assertListenerStatus();


Expand Down Expand Up @@ -173,7 +172,7 @@ public void testSimpleMigrationBPSkipTrialWithPendingCancellation() throws Excep


// Entitlement wil be created in ACTIVE state because entitlementMigrationDate was set in the past // Entitlement wil be created in ACTIVE state because entitlementMigrationDate was set in the past
busHandler.pushExpectedEvents(NextEvent.BLOCK); busHandler.pushExpectedEvents(NextEvent.BLOCK);
final PlanPhaseSpecifier spec = new PlanPhaseSpecifier("Shotgun", ProductCategory.BASE, BillingPeriod.MONTHLY, PriceListSet.DEFAULT_PRICELIST_NAME, PhaseType.EVERGREEN); final PlanPhaseSpecifier spec = new PlanPhaseSpecifier("Shotgun", BillingPeriod.MONTHLY, PriceListSet.DEFAULT_PRICELIST_NAME, PhaseType.EVERGREEN);
final Entitlement entitlement = entitlementApi.createBaseEntitlement(account.getId(), spec, "bundleKey", null, entitlementMigrationDate, billingMigrationDate, false, ImmutableList.<PluginProperty>of(), callContext); final Entitlement entitlement = entitlementApi.createBaseEntitlement(account.getId(), spec, "bundleKey", null, entitlementMigrationDate, billingMigrationDate, false, ImmutableList.<PluginProperty>of(), callContext);
assertListenerStatus(); assertListenerStatus();
Assert.assertEquals(entitlement.getState(), EntitlementState.ACTIVE); Assert.assertEquals(entitlement.getState(), EntitlementState.ACTIVE);
Expand Down Expand Up @@ -224,8 +223,8 @@ public void testSimpleMigrationBundle() throws Exception {
final LocalDate entitlementMigrationDate = new LocalDate(2015, 12, 20); final LocalDate entitlementMigrationDate = new LocalDate(2015, 12, 20);
final LocalDate billingMigrationDate = new LocalDate(2016, 2, 1); final LocalDate billingMigrationDate = new LocalDate(2016, 2, 1);


final PlanPhaseSpecifier baseSpec = new PlanPhaseSpecifier("Shotgun", ProductCategory.BASE, BillingPeriod.MONTHLY, PriceListSet.DEFAULT_PRICELIST_NAME, PhaseType.EVERGREEN); final PlanPhaseSpecifier baseSpec = new PlanPhaseSpecifier("Shotgun", BillingPeriod.MONTHLY, PriceListSet.DEFAULT_PRICELIST_NAME, PhaseType.EVERGREEN);
final PlanPhaseSpecifier addOnSpec1 = new PlanPhaseSpecifier("Telescopic-Scope", ProductCategory.ADD_ON, BillingPeriod.MONTHLY, PriceListSet.DEFAULT_PRICELIST_NAME, PhaseType.EVERGREEN); final PlanPhaseSpecifier addOnSpec1 = new PlanPhaseSpecifier("Telescopic-Scope", BillingPeriod.MONTHLY, PriceListSet.DEFAULT_PRICELIST_NAME, PhaseType.EVERGREEN);


final String externalKey = "baseExternalKey"; final String externalKey = "baseExternalKey";
EntitlementSpecifier baseEntitlementSpecifier = new DefaultEntitlementSpecifier(baseSpec, null); EntitlementSpecifier baseEntitlementSpecifier = new DefaultEntitlementSpecifier(baseSpec, null);
Expand Down
Expand Up @@ -198,9 +198,9 @@ public void testCreateSubscriptionWithAddOns() throws Exception {


final Account account = createAccountWithNonOsgiPaymentMethod(getAccountData(1)); final Account account = createAccountWithNonOsgiPaymentMethod(getAccountData(1));


final PlanPhaseSpecifier baseSpec = new PlanPhaseSpecifier("Shotgun", ProductCategory.BASE, BillingPeriod.MONTHLY, PriceListSet.DEFAULT_PRICELIST_NAME, null); final PlanPhaseSpecifier baseSpec = new PlanPhaseSpecifier("Shotgun", BillingPeriod.MONTHLY, PriceListSet.DEFAULT_PRICELIST_NAME, null);
final PlanPhaseSpecifier addOnSpec1 = new PlanPhaseSpecifier("Telescopic-Scope", ProductCategory.ADD_ON, 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", ProductCategory.ADD_ON, 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"; final String externalKey = "baseExternalKey";
EntitlementSpecifier baseEntitlementSpecifier = new DefaultEntitlementSpecifier(baseSpec, null); EntitlementSpecifier baseEntitlementSpecifier = new DefaultEntitlementSpecifier(baseSpec, null);
Expand Down Expand Up @@ -254,7 +254,7 @@ public void testCancelFutureSubscriptionWithPolicy() throws Exception {


final Account account = createAccountWithNonOsgiPaymentMethod(getAccountData(1)); final Account account = createAccountWithNonOsgiPaymentMethod(getAccountData(1));


final PlanPhaseSpecifier spec = new PlanPhaseSpecifier("Shotgun", ProductCategory.BASE, BillingPeriod.ANNUAL, PriceListSet.DEFAULT_PRICELIST_NAME, null); final PlanPhaseSpecifier spec = new PlanPhaseSpecifier("Shotgun", BillingPeriod.ANNUAL, PriceListSet.DEFAULT_PRICELIST_NAME, null);


final LocalDate futureDate = new LocalDate(2015, 10, 1); final LocalDate futureDate = new LocalDate(2015, 10, 1);


Expand Down Expand Up @@ -286,7 +286,7 @@ public void testCancelFutureSubscriptionWithRequestedDate() throws Exception {


final Account account = createAccountWithNonOsgiPaymentMethod(getAccountData(1)); final Account account = createAccountWithNonOsgiPaymentMethod(getAccountData(1));


final PlanPhaseSpecifier spec = new PlanPhaseSpecifier("Shotgun", ProductCategory.BASE, BillingPeriod.ANNUAL, PriceListSet.DEFAULT_PRICELIST_NAME, null); final PlanPhaseSpecifier spec = new PlanPhaseSpecifier("Shotgun", BillingPeriod.ANNUAL, PriceListSet.DEFAULT_PRICELIST_NAME, null);


final LocalDate futureDate = new LocalDate(2015, 10, 1); final LocalDate futureDate = new LocalDate(2015, 10, 1);


Expand Down
Expand Up @@ -133,7 +133,7 @@ public void testCancellationFrom_PDT_to_PST() throws Exception {
accountChecker.checkAccount(account.getId(), accountData, callContext); accountChecker.checkAccount(account.getId(), accountData, callContext);


busHandler.pushExpectedEvents(NextEvent.CREATE, NextEvent.BLOCK, NextEvent.INVOICE, NextEvent.PAYMENT, NextEvent.INVOICE_PAYMENT); busHandler.pushExpectedEvents(NextEvent.CREATE, NextEvent.BLOCK, NextEvent.INVOICE, NextEvent.PAYMENT, NextEvent.INVOICE_PAYMENT);
final PlanPhaseSpecifier spec = new PlanPhaseSpecifier("Blowdart", ProductCategory.BASE, BillingPeriod.MONTHLY, "notrial", null); final PlanPhaseSpecifier spec = new PlanPhaseSpecifier("Blowdart", BillingPeriod.MONTHLY, "notrial", null);
Entitlement entitlement = entitlementApi.createBaseEntitlement(account.getId(), spec, "Something", ImmutableList.<PlanPhasePriceOverride>of(), null, null, false, ImmutableList.<PluginProperty>of(), callContext); Entitlement entitlement = entitlementApi.createBaseEntitlement(account.getId(), spec, "Something", ImmutableList.<PlanPhasePriceOverride>of(), null, null, false, ImmutableList.<PluginProperty>of(), callContext);
assertListenerStatus(); assertListenerStatus();


Expand Down Expand Up @@ -178,7 +178,7 @@ public void testCancellationFrom_PST_to_PDT() throws Exception {
accountChecker.checkAccount(account.getId(), accountData, callContext); accountChecker.checkAccount(account.getId(), accountData, callContext);


busHandler.pushExpectedEvents(NextEvent.CREATE, NextEvent.BLOCK, NextEvent.INVOICE, NextEvent.PAYMENT, NextEvent.INVOICE_PAYMENT); busHandler.pushExpectedEvents(NextEvent.CREATE, NextEvent.BLOCK, NextEvent.INVOICE, NextEvent.PAYMENT, NextEvent.INVOICE_PAYMENT);
final PlanPhaseSpecifier spec = new PlanPhaseSpecifier("Blowdart", ProductCategory.BASE, BillingPeriod.MONTHLY, "notrial", null); final PlanPhaseSpecifier spec = new PlanPhaseSpecifier("Blowdart", BillingPeriod.MONTHLY, "notrial", null);
Entitlement entitlement = entitlementApi.createBaseEntitlement(account.getId(), spec, "Something", ImmutableList.<PlanPhasePriceOverride>of(), null, null, false, ImmutableList.<PluginProperty>of(), callContext); Entitlement entitlement = entitlementApi.createBaseEntitlement(account.getId(), spec, "Something", ImmutableList.<PlanPhasePriceOverride>of(), null, null, false, ImmutableList.<PluginProperty>of(), callContext);
assertListenerStatus(); assertListenerStatus();


Expand Down Expand Up @@ -230,7 +230,7 @@ public void testReferenceTimeInDSTGap() throws Exception {
} }


busHandler.pushExpectedEvents(NextEvent.CREATE, NextEvent.BLOCK, NextEvent.INVOICE, NextEvent.PAYMENT, NextEvent.INVOICE_PAYMENT); busHandler.pushExpectedEvents(NextEvent.CREATE, NextEvent.BLOCK, NextEvent.INVOICE, NextEvent.PAYMENT, NextEvent.INVOICE_PAYMENT);
final PlanPhaseSpecifier spec = new PlanPhaseSpecifier("Blowdart", ProductCategory.BASE, BillingPeriod.MONTHLY, "notrial", null); final PlanPhaseSpecifier spec = new PlanPhaseSpecifier("Blowdart", BillingPeriod.MONTHLY, "notrial", null);
// Pass a date of today, to trigger TimeAwareContext#toUTCDateTime // Pass a date of today, to trigger TimeAwareContext#toUTCDateTime
final Entitlement entitlement = entitlementApi.createBaseEntitlement(account.getId(), spec, "Something", ImmutableList.<PlanPhasePriceOverride>of(), clock.getUTCToday(), clock.getUTCToday(), false, ImmutableList.<PluginProperty>of(), callContext); final Entitlement entitlement = entitlementApi.createBaseEntitlement(account.getId(), spec, "Something", ImmutableList.<PlanPhasePriceOverride>of(), clock.getUTCToday(), clock.getUTCToday(), false, ImmutableList.<PluginProperty>of(), callContext);
assertListenerStatus(); assertListenerStatus();
Expand Down
Expand Up @@ -161,18 +161,18 @@ public DefaultPriceListSet getPriceLists() {
* @see org.killbill.billing.catalog.ICatalog#getPlan(java.lang.String, java.lang.String) * @see org.killbill.billing.catalog.ICatalog#getPlan(java.lang.String, java.lang.String)
*/ */
@Override @Override
public DefaultPlan createOrFindCurrentPlan(final String productName, final BillingPeriod period, final String priceListName, final PlanPhasePriceOverridesWithCallContext unused) throws CatalogApiException { public DefaultPlan createOrFindCurrentPlan(final PlanSpecifier spec, final PlanPhasePriceOverridesWithCallContext unused) throws CatalogApiException {
if (productName == null) { if (spec.getProductName() == null) {
throw new CatalogApiException(ErrorCode.CAT_NULL_PRODUCT_NAME); throw new CatalogApiException(ErrorCode.CAT_NULL_PRODUCT_NAME);
} }
if (priceLists == null) { if (priceLists == null) {
throw new CatalogApiException(ErrorCode.CAT_PRICE_LIST_NOT_FOUND, priceListName); throw new CatalogApiException(ErrorCode.CAT_PRICE_LIST_NOT_FOUND, spec.getPriceListName());
} }
final Product product = findCurrentProduct(productName); final Product product = findCurrentProduct(spec.getProductName());
final DefaultPlan result = priceLists.getPlanFrom(priceListName, product, period); final DefaultPlan result = priceLists.getPlanFrom(spec.getPriceListName(), product, spec.getBillingPeriod());
if (result == null) { if (result == null) {
final String periodString = (period == null) ? "NULL" : period.toString(); final String periodString = (spec.getBillingPeriod() == null) ? "NULL" : spec.getBillingPeriod().toString();
throw new CatalogApiException(ErrorCode.CAT_PLAN_NOT_FOUND, productName, periodString, priceListName); throw new CatalogApiException(ErrorCode.CAT_PLAN_NOT_FOUND, spec.getProductName(), periodString, spec.getPriceListName());
} }
return result; return result;
} }
Expand Down Expand Up @@ -344,7 +344,7 @@ public StandaloneCatalog setUnits(final DefaultUnit[] units) {
@Override @Override
public boolean canCreatePlan(final PlanSpecifier specifier) throws CatalogApiException { public boolean canCreatePlan(final PlanSpecifier specifier) throws CatalogApiException {
final Product product = findCurrentProduct(specifier.getProductName()); final Product product = findCurrentProduct(specifier.getProductName());
final Plan plan = createOrFindCurrentPlan(specifier.getProductName(), specifier.getBillingPeriod(), specifier.getPriceListName(), null); final Plan plan = createOrFindCurrentPlan(specifier, null);
final DefaultPriceList priceList = findCurrentPriceList(specifier.getPriceListName()); final DefaultPriceList priceList = findCurrentPriceList(specifier.getPriceListName());


return (product != null) && return (product != null) &&
Expand Down
Expand Up @@ -130,8 +130,8 @@ public DefaultPlan[] getCurrentPlans() throws CatalogApiException {
} }


@Override @Override
public Plan createOrFindCurrentPlan(final String productName, final BillingPeriod period, final String priceListName, final PlanPhasePriceOverridesWithCallContext overrides) throws CatalogApiException { public Plan createOrFindCurrentPlan(final PlanSpecifier spec, final PlanPhasePriceOverridesWithCallContext overrides) throws CatalogApiException {
final Plan defaultPlan = standaloneCatalog.createOrFindCurrentPlan(productName, period, priceListName, null); final Plan defaultPlan = standaloneCatalog.createOrFindCurrentPlan(spec, null);


if (overrides == null || if (overrides == null ||
overrides.getOverrides() == null || overrides.getOverrides() == null ||
Expand Down

0 comments on commit 154cd50

Please sign in to comment.