final Entitlement addOnEntitlement2 = entitlementApi.getEntitlementForId(allEntitlements.get(2), callContext); 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);
@Override public Response doOperation(final CallContext ctx) throws EntitlementApiException, AccountApiException { final Entitlement current = entitlementApi.getEntitlementForId(subscriptionId, callContext); final LocalDate inputLocalDate = toLocalDate(requestedDate); final Entitlement newEntitlement; final Account account = accountUserApi.getAccountById(current.getAccountId(), callContext); final PhaseType phaseType = entitlement.getPhaseType(); final PlanPhaseSpecifier planSpec = entitlement.getPlanName() != null ? new PlanPhaseSpecifier(entitlement.getPlanName(), phaseType) : new PlanPhaseSpecifier(entitlement.getProductName(), entitlement.getBillingPeriod(), entitlement.getPriceList(), phaseType); final List<PlanPhasePriceOverride> overrides = buildPlanPhasePriceOverrides(entitlement.getPriceOverrides(), account.getCurrency(), planSpec); if (requestedDate == null && billingPolicy == null) { newEntitlement = current.changePlan(new DefaultEntitlementSpecifier(planSpec, null, overrides), pluginProperties, ctx); } else if (billingPolicy == null) { newEntitlement = current.changePlanWithDate(new DefaultEntitlementSpecifier(planSpec, null, overrides), inputLocalDate, pluginProperties, ctx); } else { newEntitlement = current.changePlanOverrideBillingPolicy(new DefaultEntitlementSpecifier(planSpec, null, overrides), null, billingPolicy, pluginProperties, ctx); } isImmediateOp = newEntitlement.getLastActiveProduct().getName().equals(entitlement.getProductName()) && newEntitlement.getLastActivePlan().getRecurringBillingPeriod() == entitlement.getBillingPeriod() && newEntitlement.getLastActivePriceList().getName().equals(entitlement.getPriceList()); return Response.status(Status.NO_CONTENT).build(); }
assertEquals(entitlement.getLastActiveProduct().getName(), "Shotgun"); assertEquals(entitlement.getLastActivePhase().getName(), "shotgun-monthly-evergreen"); assertEquals(entitlement.getLastActivePlan().getName(), "shotgun-monthly"); assertEquals(entitlement.getLastActiveProduct().getName(), "Shotgun"); assertEquals(entitlement.getLastActiveProductCategory(), ProductCategory.BASE);
assertEquals(entitlement1.getLastActiveProduct().getName(), "Pistol");
assertEquals(entitlement.getLastActiveProduct().getName(), "Shotgun"); assertEquals(entitlement.getLastActivePhase().getName(), "shotgun-monthly-trial"); assertEquals(entitlement.getLastActivePlan().getName(), "shotgun-monthly"); assertEquals(entitlement.getLastActiveProduct().getName(), "Shotgun"); assertEquals(entitlement.getLastActiveProductCategory(), ProductCategory.BASE); assertEquals(entitlement2.getLastActiveProduct().getName(), "Shotgun"); assertEquals(entitlement2.getLastActivePhase().getName(), "shotgun-monthly-trial"); assertEquals(entitlement2.getLastActivePlan().getName(), "shotgun-monthly"); assertEquals(entitlement2.getLastActiveProduct().getName(), "Shotgun"); assertEquals(entitlement2.getLastActiveProductCategory(), ProductCategory.BASE); assertEquals(entitlement3.getLastActiveProduct().getName(), "Shotgun"); assertEquals(entitlement3.getLastActivePhase().getName(), "shotgun-monthly-trial"); assertEquals(entitlement3.getLastActivePlan().getName(), "shotgun-monthly"); assertEquals(entitlement3.getLastActiveProduct().getName(), "Shotgun"); assertEquals(entitlement3.getLastActiveProductCategory(), ProductCategory.BASE);
assertEquals(result.getLastActiveProduct().getName(), "Pistol");
assertEquals(baseEntitlement.getLastActiveProduct().getName(), "Knife"); assertEquals(baseEntitlement.getLastActivePlan().getName(), "knife-monthly-notrial"); assertEquals(baseEntitlement.getLastActiveProductCategory(), ProductCategory.STANDALONE); assertEquals(anotherStandaloneEntitlement.getLastActiveProduct().getName(), "Knife"); assertEquals(anotherStandaloneEntitlement.getLastActivePlan().getName(), "knife-monthly-notrial"); assertEquals(anotherStandaloneEntitlement.getLastActiveProductCategory(), ProductCategory.STANDALONE);
assertEquals(telescopicEntitlement.getLastActiveProduct().getName(), "Telescopic-Scope"); assertEquals(telescopicEntitlement.getLastActivePhase().getName(), "telescopic-scope-monthly-discount"); assertEquals(telescopicEntitlement.getLastActivePlan().getName(), "telescopic-scope-monthly");
assertEquals(createdEntitlement.getEffectiveStartDate().compareTo(futureDate), 0); assertEquals(createdEntitlement.getEffectiveEndDate(), null); assertEquals(createdEntitlement.getLastActiveProduct().getName(), "Shotgun"); assertEquals(createdEntitlement.getLastActivePlan().getName(), "shotgun-annual"); assertEquals(createdEntitlement.getLastActiveProductCategory(), ProductCategory.BASE);
assertEquals(telescopicEntitlement.getLastActiveProduct().getName(), "Telescopic-Scope"); assertEquals(telescopicEntitlement.getLastActivePhase().getName(), "telescopic-scope-monthly-discount"); assertEquals(telescopicEntitlement.getLastActivePlan().getName(), "telescopic-scope-monthly");