@Test(groups = "slow") public void testCreateCancelAddon() throws SubscriptionBaseApiException { final String baseProduct = "Shotgun"; final BillingPeriod baseTerm = BillingPeriod.ANNUAL; final String basePriceList = PriceListSet.DEFAULT_PRICELIST_NAME; DefaultSubscriptionBase baseSubscription = testUtil.createSubscription(bundle, baseProduct, baseTerm, basePriceList); final String aoProduct = "Telescopic-Scope"; final BillingPeriod aoTerm = BillingPeriod.MONTHLY; final String aoPriceList = PriceListSet.DEFAULT_PRICELIST_NAME; DefaultSubscriptionBase aoSubscription = testUtil.createSubscription(bundle, aoProduct, aoTerm, aoPriceList); assertEquals(aoSubscription.getState(), EntitlementState.ACTIVE); testListener.pushExpectedEvent(NextEvent.CANCEL); final DateTime now = clock.getUTCNow(); aoSubscription.cancel(callContext); assertListenerStatus(); aoSubscription = (DefaultSubscriptionBase) subscriptionInternalApi.getSubscriptionFromId(aoSubscription.getId(), internalCallContext); assertEquals(aoSubscription.getState(), EntitlementState.CANCELLED); assertListenerStatus(); }
assertEquals(newAoSubscription.getState(), EntitlementState.ACTIVE); assertEquals(newAoSubscription.getAllTransitions().size(), 2); assertEquals(newAoSubscription.getActiveVersion(), SubscriptionEvents.INITIAL_VERSION); assertEquals(newBaseSubscription.getState(), EntitlementState.ACTIVE); assertEquals(newBaseSubscription.getAllTransitions().size(), 2); assertEquals(newBaseSubscription.getActiveVersion(), SubscriptionEvents.INITIAL_VERSION); assertEquals(newAoSubscription.getState(), EntitlementState.CANCELLED); assertEquals(newAoSubscription.getAllTransitions().size(), 2); assertEquals(newAoSubscription.getActiveVersion(), SubscriptionEvents.INITIAL_VERSION + 1); assertEquals(newBaseSubscription.getState(), EntitlementState.ACTIVE); assertEquals(newBaseSubscription.getAllTransitions().size(), 2); assertEquals(newBaseSubscription.getActiveVersion(), SubscriptionEvents.INITIAL_VERSION);
assertEquals(realRunBaseSubscription.getStartDate(), startDate); assertEquals(realRunBaseSubscription.getState(), EntitlementState.CANCELLED);
assertEquals(newAoSubscription.getState(), EntitlementState.ACTIVE); assertEquals(newAoSubscription.getAllTransitions().size(), 2); assertEquals(newAoSubscription.getActiveVersion(), SubscriptionEvents.INITIAL_VERSION); assertEquals(newAoSubscription2.getState(), EntitlementState.ACTIVE); assertEquals(newAoSubscription2.getAllTransitions().size(), 2); assertEquals(newAoSubscription2.getActiveVersion(), SubscriptionEvents.INITIAL_VERSION); assertEquals(newBaseSubscription.getState(), EntitlementState.ACTIVE); assertEquals(newBaseSubscription.getAllTransitions().size(), 2); assertEquals(newBaseSubscription.getActiveVersion(), SubscriptionEvents.INITIAL_VERSION); assertEquals(newAoSubscription.getState(), EntitlementState.CANCELLED); assertEquals(newAoSubscription.getAllTransitions().size(), 2); assertEquals(newAoSubscription.getActiveVersion(), SubscriptionEvents.INITIAL_VERSION + 1); assertEquals(newAoSubscription2.getState(), EntitlementState.ACTIVE); assertEquals(newAoSubscription2.getAllTransitions().size(), 2); assertEquals(newAoSubscription2.getActiveVersion(), SubscriptionEvents.INITIAL_VERSION + 1); assertEquals(newBaseSubscription.getState(), EntitlementState.ACTIVE); assertEquals(newBaseSubscription.getAllTransitions().size(), 3); assertEquals(newBaseSubscription.getActiveVersion(), SubscriptionEvents.INITIAL_VERSION + 1);
assertEquals(newAoSubscription.getState(), EntitlementState.ACTIVE); assertEquals(newAoSubscription.getAllTransitions().size(), 2); assertEquals(newAoSubscription.getActiveVersion(), SubscriptionEvents.INITIAL_VERSION); assertEquals(newBaseSubscription.getState(), EntitlementState.ACTIVE); assertEquals(newBaseSubscription.getAllTransitions().size(), 2); assertEquals(newBaseSubscription.getActiveVersion(), SubscriptionEvents.INITIAL_VERSION); assertEquals(newAoSubscription.getState(), EntitlementState.CANCELLED); assertEquals(newAoSubscription.getAllTransitions().size(), 3); assertEquals(newAoSubscription.getActiveVersion(), SubscriptionEvents.INITIAL_VERSION + 1); assertEquals(newBaseSubscription.getState(), EntitlementState.ACTIVE); assertEquals(newBaseSubscription.getAllTransitions().size(), 3); assertEquals(newBaseSubscription.getActiveVersion(), SubscriptionEvents.INITIAL_VERSION + 1);
assertEquals(newAoSubscription.getState(), EntitlementState.ACTIVE); assertEquals(newAoSubscription.getAllTransitions().size(), 2); assertEquals(newAoSubscription.getStartDate(), aoSubscription.getStartDate()); assertEquals(newAoSubscription.getState(), EntitlementState.ACTIVE); assertEquals(newAoSubscription.getAllTransitions().size(), 2); assertEquals(newAoSubscription.getStartDate(), aoRecreateDate);
assertEquals(aoSubscription.getState(), EntitlementState.ACTIVE); assertEquals(aoSubscription.getState(), EntitlementState.ACTIVE); assertTrue(aoSubscription.isSubscriptionFutureCancelled()); assertEquals(baseSubscription.getState(), EntitlementState.ACTIVE); assertTrue(baseSubscription.isSubscriptionFutureCancelled());
assertEquals(newAoSubscription.getState(), EntitlementState.ACTIVE); assertEquals(newAoSubscription.getAllTransitions().size(), 2); assertEquals(newAoSubscription.getActiveVersion(), SubscriptionEvents.INITIAL_VERSION); assertEquals(newBaseSubscription.getState(), EntitlementState.ACTIVE); assertEquals(newBaseSubscription.getAllTransitions().size(), 2); assertEquals(newBaseSubscription.getActiveVersion(), SubscriptionEvents.INITIAL_VERSION); assertEquals(newAoSubscription.getState(), EntitlementState.CANCELLED); assertEquals(newAoSubscription.getAllTransitions().size(), 3); assertEquals(newAoSubscription.getActiveVersion(), SubscriptionEvents.INITIAL_VERSION + 1); assertEquals(newBaseSubscription.getState(), EntitlementState.CANCELLED); assertEquals(newBaseSubscription.getAllTransitions().size(), 3); assertEquals(newBaseSubscription.getActiveVersion(), SubscriptionEvents.INITIAL_VERSION + 1);
final BillingPeriod aoTerm1 = BillingPeriod.MONTHLY; final DefaultSubscriptionBase aoSubscription1 = testUtil.createSubscription(bundle, aoProduct1, aoTerm1, basePriceList); assertEquals(aoSubscription1.getState(), EntitlementState.ACTIVE);
assertEquals(aoSubscription.getState(), EntitlementState.CANCELLED);
final BillingPeriod aoTerm1 = BillingPeriod.MONTHLY; final DefaultSubscriptionBase aoSubscription1 = testUtil.createSubscription(bundle, aoProduct1, aoTerm1, basePriceList); assertEquals(aoSubscription1.getState(), EntitlementState.ACTIVE); final BillingPeriod aoTerm2 = BillingPeriod.MONTHLY; final DefaultSubscriptionBase aoSubscription2 = testUtil.createSubscription(bundle, aoProduct2, aoTerm2, basePriceList); assertEquals(aoSubscription2.getState(), EntitlementState.ACTIVE);
assertEquals(aoSubscription.getState(), EntitlementState.ACTIVE); assertTrue(aoSubscription.isSubscriptionFutureCancelled()); assertEquals(aoSubscription.getState(), EntitlementState.ACTIVE); assertFalse(aoSubscription.isSubscriptionFutureCancelled()); baseSubscription.cancel(callContext); baseSubscription = (DefaultSubscriptionBase) subscriptionInternalApi.getSubscriptionFromId(baseSubscription.getId(), internalCallContext); assertEquals(baseSubscription.getState(), EntitlementState.ACTIVE); assertTrue(baseSubscription.isSubscriptionFutureCancelled()); assertEquals(aoSubscription.getState(), EntitlementState.ACTIVE); assertTrue(aoSubscription.isSubscriptionFutureCancelled()); assertListenerStatus();