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());
}