private DefaultSubscriptionBase createSubscriptionStartedInThePast(final String productName, final PhaseType phaseType) { final SubscriptionBuilder builder = new SubscriptionBuilder(); builder.setBundleStartDate(clock.getUTCNow().minusHours(10)); // Make sure to set the dates apart builder.setAlignStartDate(new DateTime(builder.getBundleStartDate().plusHours(5))); // Create the transitions final DefaultSubscriptionBase defaultSubscriptionBase = new DefaultSubscriptionBase(builder, null, clock); final SubscriptionBaseEvent event = createSubscriptionEvent(builder.getAlignStartDate(), productName, phaseType, ApiEventType.CREATE, defaultSubscriptionBase.getActiveVersion()); defaultSubscriptionBase.rebuildTransitions(ImmutableList.<SubscriptionBaseEvent>of(event), catalogService.getFullCatalog()); Assert.assertEquals(defaultSubscriptionBase.getAllTransitions().size(), 1); Assert.assertNull(defaultSubscriptionBase.getAllTransitions().get(0).getPreviousPhase()); Assert.assertNotNull(defaultSubscriptionBase.getAllTransitions().get(0).getNextPhase()); return defaultSubscriptionBase; }
private void changeSubscription(final DateTime effectiveChangeDate, final DefaultSubscriptionBase defaultSubscriptionBase, final String previousProductName, final String newProductName, final PhaseType commonPhaseType) { final SubscriptionBaseEvent previousEvent = createSubscriptionEvent(defaultSubscriptionBase.getStartDate(), previousProductName, commonPhaseType, ApiEventType.CREATE, defaultSubscriptionBase.getActiveVersion()); final SubscriptionBaseEvent event = createSubscriptionEvent(effectiveChangeDate, newProductName, commonPhaseType, ApiEventType.CHANGE, defaultSubscriptionBase.getActiveVersion()); defaultSubscriptionBase.rebuildTransitions(ImmutableList.<SubscriptionBaseEvent>of(previousEvent, event), catalogService.getFullCatalog()); final List<SubscriptionBaseTransition> newTransitions = defaultSubscriptionBase.getAllTransitions(); Assert.assertEquals(newTransitions.size(), 2); Assert.assertNull(newTransitions.get(0).getPreviousPhase()); Assert.assertEquals(newTransitions.get(0).getNextPhase(), newTransitions.get(1).getPreviousPhase()); Assert.assertNotNull(newTransitions.get(1).getNextPhase()); }
final DefaultSubscriptionBase subscription = (DefaultSubscriptionBase) subscriptions.get(0); final List<SubscriptionBaseTransition> transitions = subscription.getAllTransitions(); assertEquals(transitions.size(), 2); final SubscriptionBaseTransitionData initialMigrateBilling = (SubscriptionBaseTransitionData) transitions.get(1); assertListenerStatus(); final List<SubscriptionBaseTransition> newTransitions = subscription.getAllTransitions(); assertEquals(newTransitions.size(), 3);
assertEquals(newAoSubscription.getAllTransitions().size(), 2); assertEquals(newAoSubscription.getActiveVersion(), SubscriptionEvents.INITIAL_VERSION); assertEquals(newBaseSubscription.getAllTransitions().size(), 2); assertEquals(newBaseSubscription.getActiveVersion(), SubscriptionEvents.INITIAL_VERSION); assertEquals(newAoSubscription.getAllTransitions().size(), 2); assertEquals(newAoSubscription.getActiveVersion(), SubscriptionEvents.INITIAL_VERSION + 1); assertEquals(newBaseSubscription.getAllTransitions().size(), 2); assertEquals(newBaseSubscription.getActiveVersion(), SubscriptionEvents.INITIAL_VERSION);
assertEquals(realRunBaseSubscription.getAllTransitions().size(), 2);
assertEquals(newAoSubscription.getAllTransitions().size(), 2); assertEquals(newAoSubscription.getActiveVersion(), SubscriptionEvents.INITIAL_VERSION); assertEquals(newAoSubscription2.getAllTransitions().size(), 2); assertEquals(newAoSubscription2.getActiveVersion(), SubscriptionEvents.INITIAL_VERSION); assertEquals(newBaseSubscription.getAllTransitions().size(), 2); assertEquals(newBaseSubscription.getActiveVersion(), SubscriptionEvents.INITIAL_VERSION); assertEquals(newAoSubscription.getAllTransitions().size(), 2); assertEquals(newAoSubscription.getActiveVersion(), SubscriptionEvents.INITIAL_VERSION + 1); assertEquals(newAoSubscription2.getAllTransitions().size(), 2); assertEquals(newAoSubscription2.getActiveVersion(), SubscriptionEvents.INITIAL_VERSION + 1); assertEquals(newBaseSubscription.getAllTransitions().size(), 3); assertEquals(newBaseSubscription.getActiveVersion(), SubscriptionEvents.INITIAL_VERSION + 1);
assertEquals(realRunBaseSubscription.getAllTransitions().size(), expectedTransitions);
assertEquals(newAoSubscription.getAllTransitions().size(), 2); assertEquals(newAoSubscription.getStartDate(), aoSubscription.getStartDate()); assertEquals(newAoSubscription.getActiveVersion(), SubscriptionEvents.INITIAL_VERSION); assertEquals(newAoSubscription.getAllTransitions().size(), 2); assertEquals(newAoSubscription.getStartDate(), aoRecreateDate); assertEquals(newAoSubscription.getActiveVersion(), SubscriptionEvents.INITIAL_VERSION + 1);
assertEquals(newAoSubscription.getAllTransitions().size(), 2); assertEquals(newAoSubscription.getActiveVersion(), SubscriptionEvents.INITIAL_VERSION); assertEquals(newBaseSubscription.getAllTransitions().size(), 2); assertEquals(newBaseSubscription.getActiveVersion(), SubscriptionEvents.INITIAL_VERSION); assertEquals(newAoSubscription.getAllTransitions().size(), 3); assertEquals(newAoSubscription.getActiveVersion(), SubscriptionEvents.INITIAL_VERSION + 1); assertEquals(newBaseSubscription.getAllTransitions().size(), 3); assertEquals(newBaseSubscription.getActiveVersion(), SubscriptionEvents.INITIAL_VERSION + 1);
assertEquals(realRunBaseSubscription.getAllTransitions().size(), 2);
assertEquals(newAoSubscription.getAllTransitions().size(), 2); assertEquals(newAoSubscription.getActiveVersion(), SubscriptionEvents.INITIAL_VERSION); assertEquals(newBaseSubscription.getAllTransitions().size(), 2); assertEquals(newBaseSubscription.getActiveVersion(), SubscriptionEvents.INITIAL_VERSION); assertEquals(newAoSubscription.getAllTransitions().size(), 3); assertEquals(newAoSubscription.getActiveVersion(), SubscriptionEvents.INITIAL_VERSION + 1); assertEquals(newBaseSubscription.getAllTransitions().size(), 3); assertEquals(newBaseSubscription.getActiveVersion(), SubscriptionEvents.INITIAL_VERSION + 1);
List<SubscriptionBaseTransition> aoTransitions = aoSubscription.getAllTransitions(); assertEquals(aoTransitions.size(), 3); assertEquals(aoTransitions.get(0).getTransitionType(), SubscriptionBaseTransitionType.CREATE); aoTransitions = aoSubscription.getAllTransitions(); assertEquals(aoTransitions.size(), 3); assertEquals(aoTransitions.get(0).getTransitionType(), SubscriptionBaseTransitionType.CREATE);
assertEquals(newAoSubscription.getAllTransitions().size(), 2); assertEquals(newAoSubscription.getAllTransitions().size(), 3);