@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 Collection<BlockingState> computeAddonsBlockingStatesForNextSubscriptionBaseEvent(final DateTime effectiveDate, final boolean useBillingEffectiveDate) { SubscriptionBaseTransition subscriptionBaseTransitionTrigger = null; if (!isEntitlementFutureCancelled()) { // Compute the transition trigger (either subscription cancel or change) final Iterable<SubscriptionBaseTransition> pendingSubscriptionBaseTransitions = getPendingSubscriptionEvents(effectiveDate, SubscriptionBaseTransitionType.CHANGE, SubscriptionBaseTransitionType.CANCEL); if (!pendingSubscriptionBaseTransitions.iterator().hasNext()) { return ImmutableList.<BlockingState>of(); } subscriptionBaseTransitionTrigger = pendingSubscriptionBaseTransitions.iterator().next(); } final Product baseTransitionTriggerNextProduct; final DateTime blockingStateEffectiveDate; if (subscriptionBaseTransitionTrigger == null) { baseTransitionTriggerNextProduct = null; blockingStateEffectiveDate = effectiveDate; } else { baseTransitionTriggerNextProduct = (EntitlementState.CANCELLED.equals(subscriptionBaseTransitionTrigger.getNextState()) ? null : subscriptionBaseTransitionTrigger.getNextPlan().getProduct()); blockingStateEffectiveDate = useBillingEffectiveDate ? subscriptionBaseTransitionTrigger.getEffectiveTransitionTime() : effectiveDate; } return computeAddonsBlockingStatesForSubscriptionBaseEvent(baseTransitionTriggerNextProduct, blockingStateEffectiveDate); }
final DateTime evergreenPhaseDate = ((DefaultSubscriptionBase) baseSubscription).getPendingTransition().getEffectiveTransitionTime();
final DateTime evergreenPhaseDate = ((DefaultSubscriptionBase) baseSubscription).getPendingTransition().getEffectiveTransitionTime();
assertEquals(aoPendingTranstion.getEffectiveTransitionTime(), baseSubscription.getStartDate().plusMonths(1)); } else { assertEquals(aoPendingTranstion.getEffectiveTransitionTime(), aoSubscription.getStartDate().plusMonths(1));
final SubscriptionBaseTransition nextPhase = subscription.getPendingTransition(); final DateTime nextPhaseEffectiveDate = nextPhase.getEffectiveTransitionTime(); assertEquals(nextPhaseEffectiveDate, expectedNextPhaseDate);
assertEquals(newBaseSubscriptionWithCtd.getPendingTransition().getEffectiveTransitionTime(), newCtd);
private SubscriptionEvent toSubscriptionEvent(final SubscriptionBaseTransition in, final SubscriptionEventType eventType, final DateTimeZone accountTimeZone) { return new DefaultSubscriptionEvent(in.getId(), in.getSubscriptionId(), in.getEffectiveTransitionTime(), in.getRequestedTransitionTime(), eventType, false, false, getServiceName(eventType), eventType.toString(), (in.getPreviousPlan() != null ? in.getPreviousPlan().getProduct() : null), in.getPreviousPlan(), in.getPreviousPhase(), in.getPreviousPriceList(), (in.getPreviousPlan() != null ? in.getPreviousPlan().getBillingPeriod() : null), (in.getNextPlan() != null ? in.getNextPlan().getProduct() : null), in.getNextPlan(), in.getNextPhase(), in.getNextPriceList(), (in.getNextPlan() != null ? in.getNextPlan().getBillingPeriod() : null), in.getCreatedDate(), accountTimeZone); }