@TimedResource @GET @Path("/phase") @Produces(APPLICATION_JSON) @ApiOperation(value = "Retrieve phase for a given subscription and date", response = PhaseJson.class) @ApiResponses(value = {}) public Response getPhaseForSubscriptionAndDate(@QueryParam("subscriptionId") final UUID subscriptionId, @QueryParam("requestedDate") final String requestedDateString, @javax.ws.rs.core.Context final HttpServletRequest request) throws SubscriptionApiException, CurrencyValueNull { verifyNonNullOrEmpty(subscriptionId, "Subscription id needs to be specified"); final SubscriptionEvent lastEventBeforeRequestedDate = getLastEventBeforeDate(subscriptionId, requestedDateString, request); if (lastEventBeforeRequestedDate == null) { return Response.status(Status.BAD_REQUEST).entity(String.format("%s is before the subscription start date", requestedDateString)).type("text/plain").build(); } final PlanPhase phase = lastEventBeforeRequestedDate.getNextPhase(); if (phase == null) { // Subscription was cancelled at that point return Response.status(Status.BAD_REQUEST).entity(String.format("%s is after the subscription cancel date", requestedDateString)).type("text/plain").build(); } final PhaseJson phaseJson = new PhaseJson(phase); return Response.status(Status.OK).entity(phaseJson).build(); }
assertEquals(events.get(0).getNextPhase().getName(), "trial"); assertEquals(events.get(1).getNextPhase().getName(), "trial"); assertNull(events.get(2).getNextPhase()); assertNull(events.get(3).getNextPhase());
assertEquals(events.get(1).getNextPhase().getName(), "trial"); assertEquals(events.get(2).getPrevPhase().getName(), "trial"); assertEquals(events.get(2).getNextPhase().getName(), "phase"); assertEquals(events.get(3).getPrevPhase().getName(), "phase"); assertNull(events.get(3).getNextPhase());
assertEquals(events.get(1).getNextPhase().getName(), "trial"); assertEquals(events.get(3).getPrevPhase().getName(), "trial"); assertNull(events.get(3).getNextPhase());
assertEquals(events.get(1).getNextPhase().getName(), "trial"); assertEquals(events.get(2).getNextPhase().getName(), "phase"); assertEquals(events.get(3).getNextPhase().getName(), "phase"); assertNull(events.get(4).getNextPhase()); assertEquals(events.get(5).getPrevPhase().getName(), "phase"); assertNull(events.get(5).getNextPhase());
assertEquals(events.get(1).getNextPhase().getName(), "trial"); assertEquals(events.get(2).getNextPhase().getName(), "phase"); assertEquals(events.get(3).getNextPhase().getName(), "phase"); assertEquals(events.get(4).getPrevPhase().getName(), "phase"); assertEquals(events.get(4).getNextPhase().getName(), "phase"); assertEquals(events.get(5).getPrevPhase().getName(), "phase"); assertEquals(events.get(5).getNextPhase().getName(), "phase"); assertEquals(events.get(6).getPrevPhase().getName(), "phase"); assertEquals(events.get(6).getNextPhase().getName(), "phase"); assertEquals(events.get(7).getPrevPhase().getName(), "phase"); assertEquals(events.get(7).getNextPhase().getName(), "phase"); assertEquals(events.get(8).getPrevPhase().getName(), "phase"); assertEquals(events.get(8).getNextPhase().getName(), "phase");
assertEquals(events.get(1).getNextPhase().getName(), "trial"); assertEquals(events.get(2).getPrevPhase().getName(), "trial"); assertEquals(events.get(2).getNextPhase().getName(), "phase"); assertEquals(events.get(3).getPrevPhase().getName(), "phase"); assertEquals(events.get(3).getNextPhase().getName(), "phase"); assertEquals(events.get(4).getPrevPhase().getName(), "phase"); assertNull(events.get(4).getNextPhase());
assertEquals(events.get(1).getNextPhase().getName(), "trial"); assertEquals(events.get(2).getNextPhase().getName(), "phase"); assertEquals(events.get(3).getNextPhase().getName(), "phase"); assertEquals(events.get(4).getPrevPhase().getName(), "phase"); assertNull(events.get(4).getNextPhase()); assertNull(events.get(5).getNextPhase());
assertEquals(events.get(0).getNextPhase().getName(), "trial1"); assertEquals(events.get(1).getNextPhase().getName(), "trial1"); assertEquals(events.get(2).getNextPhase().getName(), "phase2"); assertEquals(events.get(3).getNextPhase().getName(), "phase2"); assertEquals(events.get(4).getNextPhase().getName(), "phase1"); assertEquals(events.get(5).getNextPhase().getName(), "phase1"); assertEquals(events.get(6).getNextPhase().getName(), "phase2"); assertNull(events.get(7).getNextPhase()); assertNull(events.get(8).getNextPhase());
assertEquals(events.get(1).getNextPhase().getName(), "trial"); assertEquals(events.get(2).getNextPhase().getName(), "trial"); assertNull(events.get(3).getNextPhase());
assertEquals(events.get(1).getNextPhase().getName(), "trial"); assertEquals(events.get(2).getNextPhase().getName(), "phase"); assertEquals(events.get(3).getNextPhase().getName(), "phase"); assertEquals(events.get(4).getPrevPhase().getName(), "phase"); assertEquals(events.get(4).getNextPhase().getName(), "phase"); assertEquals(events.get(5).getPrevPhase().getName(), "phase"); assertEquals(events.get(5).getNextPhase().getName(), "phase"); assertEquals(events.get(6).getPrevPhase().getName(), "phase"); assertEquals(events.get(6).getNextPhase().getName(), "phase"); assertNull(events.get(7).getNextPhase()); assertNull(events.get(8).getNextPhase()); assertEquals(events.get(9).getPrevPhase().getName(), "phase"); assertNull(events.get(9).getNextPhase());
assertEquals(events.get(1).getNextPhase().getName(), "trial"); assertEquals(events.get(2).getNextPhase().getName(), "trial"); assertEquals(events.get(3).getPrevPhase().getName(), "trial"); assertEquals(events.get(3).getNextPhase().getName(), "trial"); assertEquals(events.get(4).getPrevPhase().getName(), "trial"); assertEquals(events.get(4).getNextPhase().getName(), "trial"); assertEquals(events.get(5).getPrevPhase().getName(), "trial"); assertEquals(events.get(5).getNextPhase().getName(), "trial"); assertEquals(events.get(6).getNextPhase().getName(), "trial"); assertEquals(events.get(7).getPrevPhase().getName(), "trial"); assertEquals(events.get(7).getNextPhase().getName(), "trial"); assertEquals(events.get(8).getPrevPhase().getName(), "trial"); assertEquals(events.get(8).getNextPhase().getName(), "trial"); assertEquals(events.get(9).getPrevPhase().getName(), "trial"); assertEquals(events.get(9).getNextPhase().getName(), "trial"); assertEquals(events.get(10).getNextPhase().getName(), "trial");
public EventSubscriptionJson(final SubscriptionEvent subscriptionEvent, @Nullable final AccountAuditLogs accountAuditLogs) { super(toAuditLogJson(getAuditLogsForSubscriptionEvent(subscriptionEvent, accountAuditLogs))); final BillingPeriod billingPeriod = subscriptionEvent.getNextBillingPeriod() != null ? subscriptionEvent.getNextBillingPeriod() : subscriptionEvent.getPrevBillingPeriod(); final Plan plan = subscriptionEvent.getNextPlan() != null ? subscriptionEvent.getNextPlan() : subscriptionEvent.getPrevPlan(); final Product product = subscriptionEvent.getNextProduct() != null ? subscriptionEvent.getNextProduct() : subscriptionEvent.getPrevProduct(); final PriceList priceList = subscriptionEvent.getNextPriceList() != null ? subscriptionEvent.getNextPriceList() : subscriptionEvent.getPrevPriceList(); final PlanPhase phase = subscriptionEvent.getNextPhase() != null ? subscriptionEvent.getNextPhase() : subscriptionEvent.getPrevPhase(); this.eventId = subscriptionEvent.getId(); this.billingPeriod = billingPeriod; this.effectiveDate = subscriptionEvent.getEffectiveDate(); this.plan = plan != null ? plan.getName() : null; this.product = product != null ? product.getName() : null; this.priceList = priceList != null ? priceList.getName() : null; this.eventType = subscriptionEvent.getSubscriptionEventType(); this.isBlockedBilling = subscriptionEvent.isBlockedBilling(); this.isBlockedEntitlement = subscriptionEvent.isBlockedEntitlement(); this.serviceName = subscriptionEvent.getServiceName(); this.serviceStateName = subscriptionEvent.getServiceStateName(); this.phase = phase != null ? phase.getName() : null; }
Assert.assertEquals(subscription.getSubscriptionEvents().get(0).getServiceStateName(), "ENT_STARTED"); Assert.assertNull(subscription.getSubscriptionEvents().get(0).getPrevPhase()); Assert.assertEquals(subscription.getSubscriptionEvents().get(0).getNextPhase().getName(), "shotgun-annual-trial"); Assert.assertEquals(subscription.getSubscriptionEvents().get(1).getNextPhase().getName(), "shotgun-annual-trial"); Assert.assertEquals(subscription.getSubscriptionEvents().get(2).getNextPhase().getName(), "shotgun-annual-evergreen"); Assert.assertEquals(subscription.getSubscriptionEvents().get(3).getNextPhase().getName(), "shotgun-annual-evergreen"); Assert.assertEquals(subscription.getSubscriptionEvents().get(4).getNextPhase().getName(), "shotgun-annual-evergreen"); Assert.assertEquals(subscription.getSubscriptionEvents().get(5).getNextPhase().getName(), "shotgun-annual-evergreen"); Assert.assertEquals(subscription.getSubscriptionEvents().get(6).getNextPhase().getName(), "shotgun-annual-evergreen");
this.phaseType = (firstEvent == null || firstEvent.getNextPhase() == null) ? null : firstEvent.getNextPhase().getPhaseType(); } else { this.phaseType = subscription.getLastActivePhase().getPhaseType(); final PlanPhase curPlanPhase = subscriptionEvent.getNextPhase(); if (curPlanPhase == null || curPlanPhase.getName().equals(currentPhaseName)) { continue;