private List<EntitlementEvent> transferBundle( final DateTime migrateEntitlementEventEffectiveDate, final DateTime migrateBillingEventEffectiveDate, final DateTime transferDate) throws EntitlementTransferApiException { final ImmutableList<ExistingEvent> existingEvents = createMigrateEvents(migrateEntitlementEventEffectiveDate, migrateBillingEventEffectiveDate); final SubscriptionBuilder subscriptionBuilder = new SubscriptionBuilder(); final SubscriptionData subscription = new SubscriptionData(subscriptionBuilder); return transferApi.toEvents(existingEvents, subscription, transferDate, callContext); }
@Test(groups = "fast") public void testEventsForCancelledSubscriptionBeforeTransfer() throws Exception { final DateTime subscriptionStartTime = clock.getUTCNow(); final DateTime subscriptionCancelTime = subscriptionStartTime.plusDays(1); final ImmutableList<ExistingEvent> existingEvents = ImmutableList.<ExistingEvent>of( createEvent(subscriptionStartTime, SubscriptionTransitionType.CREATE), createEvent(subscriptionCancelTime, SubscriptionTransitionType.CANCEL)); final SubscriptionBuilder subscriptionBuilder = new SubscriptionBuilder(); final SubscriptionData subscription = new SubscriptionData(subscriptionBuilder); final DateTime transferDate = subscriptionStartTime.plusDays(10); final List<EntitlementEvent> events = transferApi.toEvents(existingEvents, subscription, transferDate, callContext); Assert.assertEquals(events.size(), 0); }
@Test(groups = "fast") public void testEventsForCancelledSubscriptionAfterTransfer() throws Exception { final DateTime subscriptionStartTime = clock.getUTCNow(); final DateTime subscriptionCancelTime = subscriptionStartTime.plusDays(1); final ImmutableList<ExistingEvent> existingEvents = ImmutableList.<ExistingEvent>of( createEvent(subscriptionStartTime, SubscriptionTransitionType.CREATE), createEvent(subscriptionCancelTime, SubscriptionTransitionType.CANCEL)); final SubscriptionBuilder subscriptionBuilder = new SubscriptionBuilder(); final SubscriptionData subscription = new SubscriptionData(subscriptionBuilder); final DateTime transferDate = subscriptionStartTime.plusHours(1); final List<EntitlementEvent> events = transferApi.toEvents(existingEvents, subscription, transferDate, callContext); Assert.assertEquals(events.size(), 1); Assert.assertEquals(events.get(0).getType(), EventType.API_USER); Assert.assertEquals(events.get(0).getEffectiveDate(), transferDate); Assert.assertEquals(((ApiEventTransfer) events.get(0)).getEventType(), ApiEventType.TRANSFER); }