@Override public boolean apply(final SubscriptionBaseTransition input) { // Make sure we return the event for equality return !input.getEffectiveTransitionTime().isBefore(effectiveDatetime) && typeList.contains(input.getTransitionType()); } });
private LinkedList<SubscriptionEvent> computeSubscriptionBaseEvents(final Collection<Entitlement> entitlements, final DateTimeZone accountTimeZone) { final LinkedList<SubscriptionEvent> result = new LinkedList<SubscriptionEvent>(); for (final Entitlement cur : entitlements) { final SubscriptionBase base = ((DefaultEntitlement) cur).getSubscriptionBase(); final List<SubscriptionBaseTransition> baseTransitions = base.getAllTransitions(); for (final SubscriptionBaseTransition tr : baseTransitions) { final List<SubscriptionEventType> eventTypes = toEventTypes(tr.getTransitionType()); for (final SubscriptionEventType eventType : eventTypes) { final SubscriptionEvent event = toSubscriptionEvent(tr, eventType, accountTimeZone); insertSubscriptionEvent(event, result); } } } return result; }
List<SubscriptionBaseTransition> aoTransitions = aoSubscription.getAllTransitions(); assertEquals(aoTransitions.size(), 3); assertEquals(aoTransitions.get(0).getTransitionType(), SubscriptionBaseTransitionType.CREATE); assertEquals(aoTransitions.get(1).getTransitionType(), SubscriptionBaseTransitionType.PHASE); assertEquals(aoTransitions.get(2).getTransitionType(), SubscriptionBaseTransitionType.CANCEL); assertTrue(aoSubscription.getFutureEndDate().compareTo(newAOChargedThroughDate) == 0); aoTransitions = aoSubscription.getAllTransitions(); assertEquals(aoTransitions.size(), 3); assertEquals(aoTransitions.get(0).getTransitionType(), SubscriptionBaseTransitionType.CREATE); assertEquals(aoTransitions.get(1).getTransitionType(), SubscriptionBaseTransitionType.PHASE); assertEquals(aoTransitions.get(2).getTransitionType(), SubscriptionBaseTransitionType.CANCEL); assertTrue(aoSubscription.getFutureEndDate().compareTo(newBPChargedThroughDate) == 0);