diff --git a/entitlement/src/main/java/com/ning/billing/entitlement/api/DefaultSubscriptionBundleTimeline.java b/entitlement/src/main/java/com/ning/billing/entitlement/api/DefaultSubscriptionBundleTimeline.java
index 20148a2..54b1a92 100644
--- a/entitlement/src/main/java/com/ning/billing/entitlement/api/DefaultSubscriptionBundleTimeline.java
+++ b/entitlement/src/main/java/com/ning/billing/entitlement/api/DefaultSubscriptionBundleTimeline.java
@@ -60,7 +60,7 @@ public class DefaultSubscriptionBundleTimeline implements SubscriptionBundleTime
private final Logger logger = LoggerFactory.getLogger(DefaultSubscriptionBundleTimeline.class);
// STEPH This is added to give us confidence the timeline we generate behaves as expected. Could be removed at some point
- private final static String TIMELINE_WARN_LOG = "Sanity Timeline: ";
+ private static final String TIMELINE_WARN_LOG = "Sanity Timeline: ";
public static final String BILLING_SERVICE_NAME = "billing-service";
public static final String ENT_BILLING_SERVICE_NAME = "entitlement+billing-service";
@@ -81,7 +81,7 @@ public class DefaultSubscriptionBundleTimeline implements SubscriptionBundleTime
this.events = computeEvents(entitlements, new LinkedList<BlockingState>(blockingStates), accountTimeZone);
}
- public DefaultSubscriptionBundleTimeline(final DateTimeZone accountTimeZone, final UUID accountId, final UUID bundleId, final String externalKey, final List<Entitlement> entitlements, List<BlockingState> allBlockingStates) {
+ public DefaultSubscriptionBundleTimeline(final DateTimeZone accountTimeZone, final UUID accountId, final UUID bundleId, final String externalKey, final List<Entitlement> entitlements, final List<BlockingState> allBlockingStates) {
this.accountId = accountId;
this.bundleId = bundleId;
this.externalKey = externalKey;
@@ -94,7 +94,7 @@ public class DefaultSubscriptionBundleTimeline implements SubscriptionBundleTime
// - base subscription events are already ordered for each Entitlement and so when we reorder at the bundle level we try not to break that initial ordering
// - blocking state events occur at various level (account, bundle and subscription) so for higher level, we need to dispatch that on each subscription.
//
- private List<SubscriptionEvent> computeEvents(final Collection<Entitlement> entitlements, List<BlockingState> allBlockingStates, final DateTimeZone accountTimeZone) {
+ private List<SubscriptionEvent> computeEvents(final Collection<Entitlement> entitlements, final List<BlockingState> allBlockingStates, final DateTimeZone accountTimeZone) {
// Extract ids for all entitlement in the list
final Set<UUID> allEntitlementUUIDs = new TreeSet(Collections2.transform(entitlements, new Function<Entitlement, UUID>() {
@@ -147,10 +147,9 @@ public class DefaultSubscriptionBundleTimeline implements SubscriptionBundleTime
}
});
- for (BlockingState bs : allBlockingStates) {
-
+ for (final BlockingState bs : allBlockingStates) {
final List<SubscriptionEvent> newEvents = new ArrayList<SubscriptionEvent>();
- int index = insertFromBlockingEvent(accountTimeZone, allEntitlementUUIDs, result, bs, bs.getEffectiveDate(), newEvents);
+ final int index = insertFromBlockingEvent(accountTimeZone, allEntitlementUUIDs, result, bs, bs.getEffectiveDate(), newEvents);
insertAfterIndex(result, newEvents, index);
}
reOrderSubscriptionEventsOnSameDateByType(result);
@@ -172,8 +171,8 @@ public class DefaultSubscriptionBundleTimeline implements SubscriptionBundleTime
protected void reOrderSubscriptionEventsOnSameDateByType(final List<SubscriptionEvent> events) {
final int size = events.size();
for (int i = 0; i < size; i++) {
- final DefaultSubscriptionEvent cur = (DefaultSubscriptionEvent) events.get(i);
- final DefaultSubscriptionEvent next = (i < (size - 1)) ? (DefaultSubscriptionEvent) events.get(i + 1) : null;
+ final SubscriptionEvent cur = events.get(i);
+ final SubscriptionEvent next = (i < (size - 1)) ? events.get(i + 1) : null;
final boolean shouldSwap = (next != null && shouldSwap(cur, next, true));
final boolean shouldReverseSort = (next == null || shouldSwap);
@@ -184,8 +183,8 @@ public class DefaultSubscriptionBundleTimeline implements SubscriptionBundleTime
}
if (shouldReverseSort) {
while (currentIndex >= 1) {
- final DefaultSubscriptionEvent revCur = (DefaultSubscriptionEvent) events.get(currentIndex);
- final DefaultSubscriptionEvent other = (DefaultSubscriptionEvent) events.get(currentIndex - 1);
+ final SubscriptionEvent revCur = events.get(currentIndex);
+ final SubscriptionEvent other = events.get(currentIndex - 1);
if (shouldSwap(revCur, other, false)) {
Collections.swap(events, currentIndex, currentIndex - 1);
}
@@ -198,8 +197,7 @@ public class DefaultSubscriptionBundleTimeline implements SubscriptionBundleTime
}
}
- private boolean shouldSwap(DefaultSubscriptionEvent cur, DefaultSubscriptionEvent other, boolean isAscending) {
-
+ private boolean shouldSwap(final SubscriptionEvent cur, final SubscriptionEvent other, final boolean isAscending) {
// For a given date, order by subscriptionId, and within subscription by event type
final int idComp = cur.getEntitlementId().compareTo(other.getEntitlementId());
return (cur.getEffectiveDate().compareTo(other.getEffectiveDate()) == 0 &&
@@ -211,8 +209,7 @@ public class DefaultSubscriptionBundleTimeline implements SubscriptionBundleTime
(idComp == 0 && cur.getSubscriptionEventType().ordinal() < other.getSubscriptionEventType().ordinal())))));
}
- private void insertAfterIndex(final LinkedList<SubscriptionEvent> original, final List<SubscriptionEvent> newEvents, int index) {
-
+ private void insertAfterIndex(final LinkedList<SubscriptionEvent> original, final List<SubscriptionEvent> newEvents, final int index) {
final boolean firstPosition = (index == -1);
final boolean lastPosition = (index == original.size() - 1);
if (lastPosition || firstPosition) {
@@ -233,10 +230,9 @@ public class DefaultSubscriptionBundleTimeline implements SubscriptionBundleTime
// reOrderSubscriptionEventsOnSameDateByType would reorder them anyway if this was not the case.
//
private int insertFromBlockingEvent(final DateTimeZone accountTimeZone, final Set<UUID> allEntitlementUUIDs, final List<SubscriptionEvent> result, final BlockingState bs, final DateTime bsEffectiveDate, final List<SubscriptionEvent> newEvents) {
-
// Keep the current state per entitlement
final Map<UUID, TargetState> targetStates = new HashMap<UUID, TargetState>();
- for (UUID cur : allEntitlementUUIDs) {
+ for (final UUID cur : allEntitlementUUIDs) {
targetStates.put(cur, new TargetState());
}
@@ -248,7 +244,7 @@ public class DefaultSubscriptionBundleTimeline implements SubscriptionBundleTime
// Where we need to insert in that stream
DefaultSubscriptionEvent curInsertion = null;
while (it.hasNext()) {
- DefaultSubscriptionEvent cur = (DefaultSubscriptionEvent) it.next();
+ final DefaultSubscriptionEvent cur = (DefaultSubscriptionEvent) it.next();
final int compEffectiveDate = bsEffectiveDate.compareTo(cur.getEffectiveDateTime());
final boolean shouldContinue = (compEffectiveDate >= 0);
if (!shouldContinue) {
@@ -283,13 +279,13 @@ public class DefaultSubscriptionBundleTimeline implements SubscriptionBundleTime
ImmutableList.<UUID>copyOf(allEntitlementUUIDs);
// For each target compute the new events that should be inserted in the stream
- for (UUID target : targetEntitlementIds) {
+ for (final UUID target : targetEntitlementIds) {
final SubscriptionEvent[] prevNext = findPrevNext(result, target, curInsertion);
final TargetState curTargetState = targetStates.get(target);
final List<SubscriptionEventType> eventTypes = curTargetState.addStateAndReturnEventTypes(bs);
- for (SubscriptionEventType t : eventTypes) {
+ for (final SubscriptionEventType t : eventTypes) {
newEvents.add(toSubscriptionEvent(prevNext[0], prevNext[1], target, bs, t, accountTimeZone));
}
}
@@ -298,12 +294,11 @@ public class DefaultSubscriptionBundleTimeline implements SubscriptionBundleTime
// Extract prev and next events in the stream events for that particular target subscription from the insertionEvent
private SubscriptionEvent[] findPrevNext(final List<SubscriptionEvent> events, final UUID targetEntitlementId, final SubscriptionEvent insertionEvent) {
-
// Find prev/next event for the same entitlement
final SubscriptionEvent[] result = new DefaultSubscriptionEvent[2];
if (insertionEvent == null) {
result[0] = null;
- result[1] = events.size() > 0 ? events.get(0) : null;
+ result[1] = !events.isEmpty() ? events.get(0) : null;
return result;
}
@@ -376,22 +371,22 @@ public class DefaultSubscriptionBundleTimeline implements SubscriptionBundleTime
}
}
- private void insertSubscriptionEvent(final SubscriptionEvent event, final LinkedList<SubscriptionEvent> result) {
+ private void insertSubscriptionEvent(final SubscriptionEvent event, final List<SubscriptionEvent> result) {
int index = 0;
- for (SubscriptionEvent cur : result) {
- int compEffectiveDate = event.getEffectiveDate().compareTo(cur.getEffectiveDate());
+ for (final SubscriptionEvent cur : result) {
+ final int compEffectiveDate = event.getEffectiveDate().compareTo(cur.getEffectiveDate());
if (compEffectiveDate < 0) {
// EffectiveDate is less than cur -> insert here
break;
} else if (compEffectiveDate == 0) {
- int compUUID = event.getEntitlementId().compareTo(cur.getEntitlementId());
+ final int compUUID = event.getEntitlementId().compareTo(cur.getEntitlementId());
if (compUUID < 0) {
// Same EffectiveDate but subscription are different, no need top sort further just return something deterministic
break;
} else if (compUUID == 0) {
- int eventOrder = event.getSubscriptionEventType().ordinal() - cur.getSubscriptionEventType().ordinal();
+ final int eventOrder = event.getSubscriptionEventType().ordinal() - cur.getSubscriptionEventType().ordinal();
if (eventOrder < 0) {
// Same EffectiveDate and same subscription, order by SubscriptionEventType;
break;
@@ -533,7 +528,7 @@ public class DefaultSubscriptionBundleTimeline implements SubscriptionBundleTime
//
// Internal class to keep the state associated with each subscription
//
- private final static class TargetState {
+ private static final class TargetState {
private boolean isEntitlementStarted;
private boolean isEntitlementStopped;
@@ -629,7 +624,7 @@ public class DefaultSubscriptionBundleTimeline implements SubscriptionBundleTime
private BlockingAggregator getState() {
final DefaultBlockingAggregator aggrBefore = new DefaultBlockingAggregator();
- for (BlockingState cur : perServiceBlockingState.values()) {
+ for (final BlockingState cur : perServiceBlockingState.values()) {
aggrBefore.or(cur);
}
return aggrBefore;
@@ -704,7 +699,7 @@ public class DefaultSubscriptionBundleTimeline implements SubscriptionBundleTime
this.accountTimeZone = accountTimeZone;
}
- private DefaultSubscriptionEvent(DefaultSubscriptionEvent copy, SubscriptionEventType newEventType) {
+ private DefaultSubscriptionEvent(final DefaultSubscriptionEvent copy, final SubscriptionEventType newEventType) {
this(copy.getId(),
copy.getEntitlementId(),
copy.getEffectiveDateTime(),
diff --git a/entitlement/src/test/java/com/ning/billing/entitlement/api/TestDefaultSubscriptionBundleTimeline.java b/entitlement/src/test/java/com/ning/billing/entitlement/api/TestDefaultSubscriptionBundleTimeline.java
index 359f73c..cf93ba9 100644
--- a/entitlement/src/test/java/com/ning/billing/entitlement/api/TestDefaultSubscriptionBundleTimeline.java
+++ b/entitlement/src/test/java/com/ning/billing/entitlement/api/TestDefaultSubscriptionBundleTimeline.java
@@ -29,7 +29,6 @@ import org.testng.Assert;
import org.testng.annotations.BeforeClass;
import org.testng.annotations.Test;
-import com.ning.billing.catalog.api.BillingPeriod;
import com.ning.billing.catalog.api.CatalogApiException;
import com.ning.billing.catalog.api.Plan;
import com.ning.billing.catalog.api.PlanPhase;
@@ -56,7 +55,6 @@ public class TestDefaultSubscriptionBundleTimeline extends EntitlementTestSuiteN
bundleId = UUID.randomUUID();
}
-
public class TestSubscriptionBundleTimeline extends DefaultSubscriptionBundleTimeline {
public TestSubscriptionBundleTimeline(final DateTimeZone accountTimeZone, final UUID accountId, final UUID bundleId, final String externalKey, final List<Entitlement> entitlements, final List<BlockingState> allBlockingStates) {
@@ -65,33 +63,33 @@ public class TestDefaultSubscriptionBundleTimeline extends EntitlementTestSuiteN
public SubscriptionEvent createEvent(final UUID subscriptionId, final SubscriptionEventType type, final DateTime effectiveDate) {
return new DefaultSubscriptionEvent(UUID.randomUUID(),
- subscriptionId,
- effectiveDate,
- null,
- type,
- true,
- true,
- "foo",
- "bar",
- null,
- null,
- null,
- null,
- null,
- null,
- null,
- null,
- null,
- null,
- null,
- null);
+ subscriptionId,
+ effectiveDate,
+ null,
+ type,
+ true,
+ true,
+ "foo",
+ "bar",
+ null,
+ null,
+ null,
+ null,
+ null,
+ null,
+ null,
+ null,
+ null,
+ null,
+ null,
+ null);
}
}
@Test(groups = "fast")
public void testReOrderSubscriptionEventsOnInvalidOrder1() {
- TestSubscriptionBundleTimeline timeline = new TestSubscriptionBundleTimeline(null, null, null, null, new ArrayList<Entitlement>(), new ArrayList<BlockingState>());
+ final TestSubscriptionBundleTimeline timeline = new TestSubscriptionBundleTimeline(null, null, null, null, new ArrayList<Entitlement>(), new ArrayList<BlockingState>());
final List<SubscriptionEvent> events = new ArrayList<SubscriptionEvent>();
final UUID subscriptionId = UUID.randomUUID();
@@ -109,10 +107,9 @@ public class TestDefaultSubscriptionBundleTimeline extends EntitlementTestSuiteN
Assert.assertEquals(events.get(3).getSubscriptionEventType(), SubscriptionEventType.STOP_BILLING);
}
-
@Test(groups = "fast")
public void testReOrderSubscriptionEventsOnInvalidOrder2() {
- TestSubscriptionBundleTimeline timeline = new TestSubscriptionBundleTimeline(null, null, null, null, new ArrayList<Entitlement>(), new ArrayList<BlockingState>());
+ final TestSubscriptionBundleTimeline timeline = new TestSubscriptionBundleTimeline(null, null, null, null, new ArrayList<Entitlement>(), new ArrayList<BlockingState>());
final List<SubscriptionEvent> events = new ArrayList<SubscriptionEvent>();
final UUID subscriptionId = UUID.randomUUID();
@@ -132,7 +129,7 @@ public class TestDefaultSubscriptionBundleTimeline extends EntitlementTestSuiteN
@Test(groups = "fast")
public void testReOrderSubscriptionEventsOnInvalidOrder3() {
- TestSubscriptionBundleTimeline timeline = new TestSubscriptionBundleTimeline(null, null, null, null, new ArrayList<Entitlement>(), new ArrayList<BlockingState>());
+ final TestSubscriptionBundleTimeline timeline = new TestSubscriptionBundleTimeline(null, null, null, null, new ArrayList<Entitlement>(), new ArrayList<BlockingState>());
final List<SubscriptionEvent> events = new ArrayList<SubscriptionEvent>();
final UUID subscriptionId = UUID.randomUUID();
@@ -150,10 +147,9 @@ public class TestDefaultSubscriptionBundleTimeline extends EntitlementTestSuiteN
Assert.assertEquals(events.get(3).getSubscriptionEventType(), SubscriptionEventType.STOP_BILLING);
}
-
@Test(groups = "fast")
public void testReOrderSubscriptionEventsOnInvalidOrderAndDifferentSubscriptionsSameDates1() {
- TestSubscriptionBundleTimeline timeline = new TestSubscriptionBundleTimeline(null, null, null, null, new ArrayList<Entitlement>(), new ArrayList<BlockingState>());
+ final TestSubscriptionBundleTimeline timeline = new TestSubscriptionBundleTimeline(null, null, null, null, new ArrayList<Entitlement>(), new ArrayList<BlockingState>());
final List<SubscriptionEvent> events = new ArrayList<SubscriptionEvent>();
final UUID subscriptionId = UUID.fromString("60b64e0c-cefd-48c3-8de9-c731a9558165");
@@ -180,7 +176,7 @@ public class TestDefaultSubscriptionBundleTimeline extends EntitlementTestSuiteN
@Test(groups = "fast")
public void testReOrderSubscriptionEventsOnInvalidOrderAndDifferentSubscriptionsSameDates2() {
- TestSubscriptionBundleTimeline timeline = new TestSubscriptionBundleTimeline(null, null, null, null, new ArrayList<Entitlement>(), new ArrayList<BlockingState>());
+ final TestSubscriptionBundleTimeline timeline = new TestSubscriptionBundleTimeline(null, null, null, null, new ArrayList<Entitlement>(), new ArrayList<BlockingState>());
final List<SubscriptionEvent> events = new ArrayList<SubscriptionEvent>();
final UUID subscriptionId = UUID.fromString("35b3b340-31b2-46ea-b062-e9fc9fab3bc9");
@@ -208,7 +204,7 @@ public class TestDefaultSubscriptionBundleTimeline extends EntitlementTestSuiteN
@Test(groups = "fast")
public void testReOrderSubscriptionEventsOnInvalidOrderAndDifferentSubscriptionsDates() {
- TestSubscriptionBundleTimeline timeline = new TestSubscriptionBundleTimeline(null, null, null, null, new ArrayList<Entitlement>(), new ArrayList<BlockingState>());
+ final TestSubscriptionBundleTimeline timeline = new TestSubscriptionBundleTimeline(null, null, null, null, new ArrayList<Entitlement>(), new ArrayList<BlockingState>());
final List<SubscriptionEvent> events = new ArrayList<SubscriptionEvent>();
final UUID subscriptionId = UUID.randomUUID();
@@ -242,13 +238,11 @@ public class TestDefaultSubscriptionBundleTimeline extends EntitlementTestSuiteN
Assert.assertEquals(events.get(7).getSubscriptionEventType(), SubscriptionEventType.PAUSE_BILLING);
Assert.assertEquals(events.get(8).getSubscriptionEventType(), SubscriptionEventType.STOP_ENTITLEMENT);
Assert.assertEquals(events.get(9).getSubscriptionEventType(), SubscriptionEventType.STOP_BILLING);
-
-
}
@Test(groups = "fast")
public void testReOrderSubscriptionEventsOnCorrectOrder() {
- TestSubscriptionBundleTimeline timeline = new TestSubscriptionBundleTimeline(null, null, null, null, new ArrayList<Entitlement>(), new ArrayList<BlockingState>());
+ final TestSubscriptionBundleTimeline timeline = new TestSubscriptionBundleTimeline(null, null, null, null, new ArrayList<Entitlement>(), new ArrayList<BlockingState>());
final List<SubscriptionEvent> events = new ArrayList<SubscriptionEvent>();
final UUID subscriptionId = UUID.randomUUID();
@@ -268,7 +262,6 @@ public class TestDefaultSubscriptionBundleTimeline extends EntitlementTestSuiteN
@Test(groups = "fast")
public void testOneEntitlementNoBlockingStates() throws CatalogApiException {
-
clock.setDay(new LocalDate(2013, 1, 1));
final DateTimeZone accountTimeZone = DateTimeZone.UTC;
@@ -276,7 +269,6 @@ public class TestDefaultSubscriptionBundleTimeline extends EntitlementTestSuiteN
final UUID bundleId = UUID.randomUUID();
final String externalKey = "foo";
-
final UUID entitlementId = UUID.randomUUID();
final List<SubscriptionBaseTransition> allTransitions = new ArrayList<SubscriptionBaseTransition>();
@@ -291,24 +283,22 @@ public class TestDefaultSubscriptionBundleTimeline extends EntitlementTestSuiteN
final SubscriptionBaseTransition tr2 = createTransition(entitlementId, EventType.PHASE, null, requestedDate, effectiveDate, clock.getUTCNow(), "trial", "phase");
allTransitions.add(tr2);
-
effectiveDate = effectiveDate.plusDays(15);
clock.addDays(15);
final SubscriptionBaseTransition tr3 = createTransition(entitlementId, EventType.API_USER, ApiEventType.CANCEL, requestedDate, effectiveDate, clock.getUTCNow(), "phase", null);
allTransitions.add(tr3);
-
final List<Entitlement> entitlements = new ArrayList<Entitlement>();
final Entitlement entitlement = createEntitlement(entitlementId, allTransitions);
entitlements.add(entitlement);
- final DefaultSubscriptionBundleTimeline timeline = new DefaultSubscriptionBundleTimeline(accountTimeZone, accountId, bundleId, externalKey, entitlements, Collections.<BlockingState>emptyList());
+ final SubscriptionBundleTimeline timeline = new DefaultSubscriptionBundleTimeline(accountTimeZone, accountId, bundleId, externalKey, entitlements, Collections.<BlockingState>emptyList());
assertEquals(timeline.getAccountId(), accountId);
assertEquals(timeline.getBundleId(), bundleId);
assertEquals(timeline.getExternalKey(), externalKey);
- List<SubscriptionEvent> events = timeline.getSubscriptionEvents();
+ final List<SubscriptionEvent> events = timeline.getSubscriptionEvents();
assertEquals(events.size(), 4);
assertEquals(events.get(0).getEffectiveDate().compareTo(new LocalDate(tr1.getEffectiveTransitionTime(), accountTimeZone)), 0);
@@ -400,7 +390,6 @@ public class TestDefaultSubscriptionBundleTimeline extends EntitlementTestSuiteN
@Test(groups = "fast")
public void testOneEntitlementWithInitialBlockingState() throws CatalogApiException {
-
clock.setDay(new LocalDate(2013, 1, 1));
final DateTimeZone accountTimeZone = DateTimeZone.UTC;
@@ -408,7 +397,6 @@ public class TestDefaultSubscriptionBundleTimeline extends EntitlementTestSuiteN
final UUID bundleId = UUID.randomUUID();
final String externalKey = "foo";
-
final UUID entitlementId = UUID.randomUUID();
final List<SubscriptionBaseTransition> allTransitions = new ArrayList<SubscriptionBaseTransition>();
@@ -431,31 +419,28 @@ public class TestDefaultSubscriptionBundleTimeline extends EntitlementTestSuiteN
final SubscriptionBaseTransition tr2 = createTransition(entitlementId, EventType.PHASE, null, requestedDate, effectiveDate, clock.getUTCNow(), "trial", "phase");
allTransitions.add(tr2);
-
final BlockingState bs2 = new DefaultBlockingState(UUID.randomUUID(), entitlementId, BlockingStateType.SUBSCRIPTION,
"NothingUseful", "boo",
false, false, false, clock.getUTCNow(), clock.getUTCNow(), clock.getUTCNow());
blockingStates.add(bs2);
-
effectiveDate = effectiveDate.plusDays(15);
clock.addDays(15);
final SubscriptionBaseTransition tr3 = createTransition(entitlementId, EventType.API_USER, ApiEventType.CANCEL, requestedDate, effectiveDate, clock.getUTCNow(), "phase", null);
allTransitions.add(tr3);
-
final List<Entitlement> entitlements = new ArrayList<Entitlement>();
final Entitlement entitlement = createEntitlement(entitlementId, allTransitions);
entitlements.add(entitlement);
- final DefaultSubscriptionBundleTimeline timeline = new DefaultSubscriptionBundleTimeline(accountTimeZone, accountId, bundleId, externalKey, entitlements, blockingStates);
+ final SubscriptionBundleTimeline timeline = new DefaultSubscriptionBundleTimeline(accountTimeZone, accountId, bundleId, externalKey, entitlements, blockingStates);
assertEquals(timeline.getAccountId(), accountId);
assertEquals(timeline.getBundleId(), bundleId);
assertEquals(timeline.getExternalKey(), externalKey);
- List<SubscriptionEvent> events = timeline.getSubscriptionEvents();
+ final List<SubscriptionEvent> events = timeline.getSubscriptionEvents();
assertEquals(events.size(), 5);
assertEquals(events.get(0).getEffectiveDate().compareTo(new LocalDate(tr1.getEffectiveTransitionTime(), accountTimeZone)), 0);
@@ -477,11 +462,8 @@ public class TestDefaultSubscriptionBundleTimeline extends EntitlementTestSuiteN
assertEquals(events.get(4).getNextPhase(), null);
}
-
-
@Test(groups = "fast")
public void testOneEntitlementWithBlockingStatesSubscription() throws CatalogApiException {
-
clock.setDay(new LocalDate(2013, 1, 1));
final DateTimeZone accountTimeZone = DateTimeZone.UTC;
@@ -489,7 +471,6 @@ public class TestDefaultSubscriptionBundleTimeline extends EntitlementTestSuiteN
final UUID bundleId = UUID.randomUUID();
final String externalKey = "foo";
-
final UUID entitlementId = UUID.randomUUID();
final List<SubscriptionBaseTransition> allTransitions = new ArrayList<SubscriptionBaseTransition>();
@@ -526,10 +507,9 @@ public class TestDefaultSubscriptionBundleTimeline extends EntitlementTestSuiteN
final Entitlement entitlement = createEntitlement(entitlementId, allTransitions);
entitlements.add(entitlement);
+ final SubscriptionBundleTimeline timeline = new DefaultSubscriptionBundleTimeline(accountTimeZone, accountId, bundleId, externalKey, entitlements, blockingStates);
- final DefaultSubscriptionBundleTimeline timeline = new DefaultSubscriptionBundleTimeline(accountTimeZone, accountId, bundleId, externalKey, entitlements, blockingStates);
-
- List<SubscriptionEvent> events = timeline.getSubscriptionEvents();
+ final List<SubscriptionEvent> events = timeline.getSubscriptionEvents();
assertEquals(events.size(), 6);
assertEquals(events.get(0).getEffectiveDate().compareTo(new LocalDate(tr1.getEffectiveTransitionTime(), accountTimeZone)), 0);
@@ -560,10 +540,8 @@ public class TestDefaultSubscriptionBundleTimeline extends EntitlementTestSuiteN
assertEquals(events.get(5).getNextPhase(), null);
}
-
@Test(groups = "fast")
public void testWithMultipleEntitlements() throws CatalogApiException {
-
clock.setDay(new LocalDate(2013, 1, 1));
final DateTimeZone accountTimeZone = DateTimeZone.UTC;
@@ -571,7 +549,6 @@ public class TestDefaultSubscriptionBundleTimeline extends EntitlementTestSuiteN
final UUID bundleId = UUID.randomUUID();
final String externalKey = "foo";
-
final UUID entitlementId1 = UUID.fromString("cf5a597a-cf15-45d3-8f02-95371be7f927");
final UUID entitlementId2 = UUID.fromString("e37cc97a-7b98-4ab6-a29a-7259e45c3366");
@@ -584,7 +561,6 @@ public class TestDefaultSubscriptionBundleTimeline extends EntitlementTestSuiteN
final SubscriptionBaseTransition ent1Tr1 = createTransition(entitlementId1, EventType.API_USER, ApiEventType.CREATE, requestedDate, effectiveDate, clock.getUTCNow(), null, "trial1");
allTransitions1.add(ent1Tr1);
-
effectiveDate = effectiveDate.plusDays(15);
clock.addDays(15);
final SubscriptionBaseTransition ent2Tr1 = createTransition(entitlementId2, EventType.API_USER, ApiEventType.TRANSFER, requestedDate, effectiveDate, clock.getUTCNow(), null, "phase2");
@@ -619,10 +595,9 @@ public class TestDefaultSubscriptionBundleTimeline extends EntitlementTestSuiteN
final Entitlement entitlement2 = createEntitlement(entitlementId2, allTransitions2);
entitlements.add(entitlement2);
+ final SubscriptionBundleTimeline timeline = new DefaultSubscriptionBundleTimeline(accountTimeZone, accountId, bundleId, externalKey, entitlements, blockingStates);
- final DefaultSubscriptionBundleTimeline timeline = new DefaultSubscriptionBundleTimeline(accountTimeZone, accountId, bundleId, externalKey, entitlements, blockingStates);
-
- List<SubscriptionEvent> events = timeline.getSubscriptionEvents();
+ final List<SubscriptionEvent> events = timeline.getSubscriptionEvents();
assertEquals(events.size(), 9);
assertEquals(events.get(0).getEffectiveDate().compareTo(new LocalDate(ent1Tr1.getEffectiveTransitionTime(), accountTimeZone)), 0);
@@ -674,11 +649,8 @@ public class TestDefaultSubscriptionBundleTimeline extends EntitlementTestSuiteN
assertEquals(events.get(8).getPrevPhase().getName(), "phase1");
assertEquals(events.get(8).getNextPhase(), null);
-
}
-
-
@Test(groups = "fast")
public void testWithOverdueOfflineAndClear() throws CatalogApiException {
clock.setDay(new LocalDate(2013, 1, 1));
@@ -725,14 +697,12 @@ public class TestDefaultSubscriptionBundleTimeline extends EntitlementTestSuiteN
blockingStates.add(bs1);
-
final BlockingState bs2 = new DefaultBlockingState(UUID.randomUUID(), entitlementId, BlockingStateType.SUBSCRIPTION,
DefaultEntitlementApi.ENT_STATE_CANCELLED, DefaultEntitlementService.ENTITLEMENT_SERVICE_NAME,
true, true, false, effectiveDate, clock.getUTCNow(), clock.getUTCNow());
blockingStates.add(bs2);
-
effectiveDate = effectiveDate.plusDays(12); // 2013-03-24
clock.addDays(12);
@@ -742,7 +712,6 @@ public class TestDefaultSubscriptionBundleTimeline extends EntitlementTestSuiteN
blockingStates.add(bs3);
-
final List<Entitlement> entitlements = new ArrayList<Entitlement>();
final Entitlement entitlement = createEntitlement(entitlementId, allTransitions);
entitlements.add(entitlement);
@@ -793,9 +762,7 @@ public class TestDefaultSubscriptionBundleTimeline extends EntitlementTestSuiteN
assertEquals(events.get(10).getNextPhase(), null);
}
-
- private DefaultEntitlement createEntitlement(final UUID entitlementId, final List<SubscriptionBaseTransition> allTransitions) {
-
+ private Entitlement createEntitlement(final UUID entitlementId, final List<SubscriptionBaseTransition> allTransitions) {
final DefaultEntitlement result = Mockito.mock(DefaultEntitlement.class);
Mockito.when(result.getId()).thenReturn(entitlementId);
@@ -805,13 +772,6 @@ public class TestDefaultSubscriptionBundleTimeline extends EntitlementTestSuiteN
return result;
}
- private String computePhaseName(final UUID entitlementId, final EventType eventType, final ApiEventType apiEventType) {
- return "phase-" +
- entitlementId.toString() +
- "-" +
- (eventType == EventType.API_USER ? apiEventType : eventType);
- }
-
private SubscriptionBaseTransition createTransition(final UUID entitlementId,
final EventType eventType,
final ApiEventType apiEventType,
@@ -822,57 +782,47 @@ public class TestDefaultSubscriptionBundleTimeline extends EntitlementTestSuiteN
final String nextPhaseName
) throws CatalogApiException {
-
final PlanPhase prevPhase = prevPhaseName != null ? Mockito.mock(PlanPhase.class) : null;
if (prevPhase != null) {
Mockito.when(prevPhase.getName()).thenReturn(prevPhaseName);
}
final PlanPhase nextPhase = nextPhaseName != null ? Mockito.mock(PlanPhase.class) : null;
- if (nextPhase != null) {
+ if (nextPhase != null) {
Mockito.when(nextPhase.getName()).thenReturn(nextPhaseName);
}
- //catalogService.getCurrentCatalog().findCurrentPhase("pistol-monthly-trial");
final Plan plan = Mockito.mock(Plan.class);
Mockito.when(plan.getName()).thenReturn("plan");
-
- //catalogService.getCurrentCatalog().findCurrentPlan("pistol-monthly");
final Product product = Mockito.mock(Product.class);
Mockito.when(product.getName()).thenReturn("product");
- //catalogService.getCurrentCatalog().findCurrentProduct("Pistol");
-
final PriceList priceList = Mockito.mock(PriceList.class);
Mockito.when(priceList.getName()).thenReturn("pricelist");
- //catalogService.getCurrentCatalog().findCurrentPricelist(PriceListSet.DEFAULT_PRICELIST_NAME);
- final BillingPeriod billingPeriod = BillingPeriod.MONTHLY;
-
- final SubscriptionBaseTransition transition = new SubscriptionBaseTransitionData(UUID.randomUUID(),
- entitlementId,
- bundleId,
- eventType,
- apiEventType,
- requestedDate,
- effectiveDate,
- null,
- null,
- null,
- plan,
- prevPhase,
- priceList,
- null,
- null,
- null,
- plan,
- nextPhase,
- priceList,
- 1L,
- createdDate,
- UUID.randomUUID(),
- true);
- return transition;
+ return new SubscriptionBaseTransitionData(UUID.randomUUID(),
+ entitlementId,
+ bundleId,
+ eventType,
+ apiEventType,
+ requestedDate,
+ effectiveDate,
+ null,
+ null,
+ null,
+ plan,
+ prevPhase,
+ priceList,
+ null,
+ null,
+ null,
+ plan,
+ nextPhase,
+ priceList,
+ 1L,
+ createdDate,
+ UUID.randomUUID(),
+ true);
}
}