killbill-aplcache
Changes
entitlement/src/main/java/com/ning/billing/entitlement/api/repair/DefaultRepairEntitlementEvent.java 54(+54 -0)
entitlement/src/test/java/com/ning/billing/entitlement/api/repair/TestRepairWithError.java 20(+10 -10)
entitlement/src/test/java/com/ning/billing/entitlement/api/user/TestUserApiChangePlan.java 84(+42 -42)
entitlement/src/test/java/com/ning/billing/entitlement/api/user/TestUserCustomFieldsSql.java 8(+4 -4)
entitlement/src/test/java/com/ning/billing/entitlement/engine/dao/MockEntitlementDaoSql.java 5(+3 -2)
pom.xml 2(+1 -1)
server/pom.xml 10(+5 -5)
Details
diff --git a/api/src/main/java/com/ning/billing/entitlement/api/repair/RepairEntitlementEvent.java b/api/src/main/java/com/ning/billing/entitlement/api/repair/RepairEntitlementEvent.java
new file mode 100644
index 0000000..63af70f
--- /dev/null
+++ b/api/src/main/java/com/ning/billing/entitlement/api/repair/RepairEntitlementEvent.java
@@ -0,0 +1,29 @@
+/*
+ * Copyright 2010-2011 Ning, Inc.
+ *
+ * Ning licenses this file to you under the Apache License, version 2.0
+ * (the "License"); you may not use this file except in compliance with the
+ * License. You may obtain a copy of the License at:
+ *
+ * http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS, WITHOUT
+ * WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. See the
+ * License for the specific language governing permissions and limitations
+ * under the License.
+ */
+package com.ning.billing.entitlement.api.repair;
+
+import java.util.UUID;
+
+import org.joda.time.DateTime;
+
+import com.ning.billing.util.bus.BusEvent;
+
+public interface RepairEntitlementEvent extends BusEvent {
+
+ UUID getBundleId();
+
+ DateTime getEffectiveDate();
+}
diff --git a/api/src/main/java/com/ning/billing/util/bus/BusEvent.java b/api/src/main/java/com/ning/billing/util/bus/BusEvent.java
index d44e1b5..d969440 100644
--- a/api/src/main/java/com/ning/billing/util/bus/BusEvent.java
+++ b/api/src/main/java/com/ning/billing/util/bus/BusEvent.java
@@ -24,6 +24,7 @@ public interface BusEvent {
ACCOUNT_CREATE,
ACCOUNT_CHANGE,
SUBSCRIPTION_TRANSITION,
+ BUNDLE_REPAIR,
INVOICE_EMPTY,
INVOICE_CREATION,
PAYMENT_INFO,
diff --git a/entitlement/src/main/java/com/ning/billing/entitlement/api/repair/DefaultRepairEntitlementEvent.java b/entitlement/src/main/java/com/ning/billing/entitlement/api/repair/DefaultRepairEntitlementEvent.java
new file mode 100644
index 0000000..f7be710
--- /dev/null
+++ b/entitlement/src/main/java/com/ning/billing/entitlement/api/repair/DefaultRepairEntitlementEvent.java
@@ -0,0 +1,54 @@
+/*
+ * Copyright 2010-2011 Ning, Inc.
+ *
+ * Ning licenses this file to you under the Apache License, version 2.0
+ * (the "License"); you may not use this file except in compliance with the
+ * License. You may obtain a copy of the License at:
+ *
+ * http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS, WITHOUT
+ * WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. See the
+ * License for the specific language governing permissions and limitations
+ * under the License.
+ */
+package com.ning.billing.entitlement.api.repair;
+
+import java.util.UUID;
+
+import org.joda.time.DateTime;
+
+public class DefaultRepairEntitlementEvent implements RepairEntitlementEvent {
+
+ private final UUID userToken;
+ private final UUID bundleId;
+ private final DateTime efectiveDate;
+
+
+ public DefaultRepairEntitlementEvent(final UUID userToken, final UUID bundleId, final DateTime efectiveDate) {
+ this.userToken = userToken;
+ this.bundleId = bundleId;
+ this.efectiveDate = efectiveDate;
+ }
+
+ @Override
+ public BusEventType getBusEventType() {
+ return BusEventType.BUNDLE_REPAIR;
+ }
+
+ @Override
+ public UUID getUserToken() {
+ return userToken;
+ }
+
+ @Override
+ public UUID getBundleId() {
+ return bundleId;
+ }
+
+ @Override
+ public DateTime getEffectiveDate() {
+ return efectiveDate;
+ }
+}
diff --git a/entitlement/src/main/java/com/ning/billing/entitlement/engine/dao/EntitlementSqlDao.java b/entitlement/src/main/java/com/ning/billing/entitlement/engine/dao/EntitlementSqlDao.java
index 0281894..0256883 100644
--- a/entitlement/src/main/java/com/ning/billing/entitlement/engine/dao/EntitlementSqlDao.java
+++ b/entitlement/src/main/java/com/ning/billing/entitlement/engine/dao/EntitlementSqlDao.java
@@ -29,6 +29,8 @@ import java.util.UUID;
import com.ning.billing.util.ChangeType;
import com.ning.billing.util.audit.dao.AuditSqlDao;
+import com.ning.billing.util.bus.Bus;
+import com.ning.billing.util.bus.Bus.EventBusException;
import com.ning.billing.util.callcontext.CallContext;
import com.ning.billing.util.customfield.dao.CustomFieldDao;
import org.joda.time.DateTime;
@@ -49,6 +51,8 @@ import com.ning.billing.entitlement.api.SubscriptionFactory;
import com.ning.billing.entitlement.api.migration.AccountMigrationData;
import com.ning.billing.entitlement.api.migration.AccountMigrationData.BundleMigrationData;
import com.ning.billing.entitlement.api.migration.AccountMigrationData.SubscriptionMigrationData;
+import com.ning.billing.entitlement.api.repair.DefaultRepairEntitlementEvent;
+import com.ning.billing.entitlement.api.repair.RepairEntitlementEvent;
import com.ning.billing.entitlement.api.repair.SubscriptionDataRepair;
import com.ning.billing.entitlement.api.user.Subscription;
import com.ning.billing.entitlement.api.user.SubscriptionBundle;
@@ -90,17 +94,13 @@ public class EntitlementSqlDao implements EntitlementDao {
private final NotificationQueueService notificationQueueService;
private final AddonUtils addonUtils;
private final CustomFieldDao customFieldDao;
+ private final Bus eventBus;
+
- //
- // We are not injecting SubscriptionFactory since that creates circular dependencies--
- // Guice would still work, but this is playing with fire.
- //
- // Instead that factory passed through API top to bottom for the call where is it needed-- where we returned fully rehydrated Subscriptions
- //
@Inject
public EntitlementSqlDao(final IDBI dbi, final Clock clock,
final AddonUtils addonUtils, final NotificationQueueService notificationQueueService,
- final CustomFieldDao customFieldDao) {
+ final CustomFieldDao customFieldDao, final Bus eventBus) {
this.clock = clock;
this.subscriptionsDao = dbi.onDemand(SubscriptionSqlDao.class);
this.eventsDao = dbi.onDemand(EventSqlDao.class);
@@ -108,6 +108,7 @@ public class EntitlementSqlDao implements EntitlementDao {
this.notificationQueueService = notificationQueueService;
this.addonUtils = addonUtils;
this.customFieldDao = customFieldDao;
+ this.eventBus = eventBus;
}
@Override
@@ -622,6 +623,12 @@ public class EntitlementSqlDao implements EntitlementDao {
}
}
}
+ try {
+ RepairEntitlementEvent busEvent = new DefaultRepairEntitlementEvent(context.getUserToken(), bundleId, clock.getUTCNow());
+ eventBus.postFromTransaction(busEvent, transactional);
+ } catch (EventBusException e) {
+ log.warn("Failed to post repair entitlement event for bundle " + bundleId);
+ }
return null;
}
});
diff --git a/entitlement/src/test/java/com/ning/billing/entitlement/api/ApiTestListener.java b/entitlement/src/test/java/com/ning/billing/entitlement/api/ApiTestListener.java
index 694613e..45455d2 100644
--- a/entitlement/src/test/java/com/ning/billing/entitlement/api/ApiTestListener.java
+++ b/entitlement/src/test/java/com/ning/billing/entitlement/api/ApiTestListener.java
@@ -18,6 +18,7 @@ package com.ning.billing.entitlement.api;
import com.google.common.base.Joiner;
import com.google.common.eventbus.Subscribe;
+import com.ning.billing.entitlement.api.repair.RepairEntitlementEvent;
import com.ning.billing.entitlement.api.user.SubscriptionEventTransition;
import com.ning.billing.util.bus.Bus;
import org.slf4j.Logger;
@@ -32,9 +33,13 @@ public class ApiTestListener {
private static final Logger log = LoggerFactory.getLogger(ApiTestListener.class);
- private final List<NextEvent> nextExpectedEvent;
+ private final List<NextEvent> nextApiExpectedEvent;
- private volatile boolean completed;
+
+ private boolean isApiCompleted;
+
+ private boolean expectRepairCompletion;
+ private boolean isRepairCompleted;
public enum NextEvent {
MIGRATE_ENTITLEMENT,
@@ -47,8 +52,21 @@ public class ApiTestListener {
}
public ApiTestListener(Bus eventBus) {
- this.nextExpectedEvent = new Stack<NextEvent>();
- this.completed = false;
+ this.nextApiExpectedEvent = new Stack<NextEvent>();
+ reset();
+ }
+
+ @Subscribe
+ public void handleRepairEvent(RepairEntitlementEvent event) {
+ log.debug("-> Got event RepairEntitlementEvent for bundle " + event.getBundleId());
+ if (!expectRepairCompletion) {
+ log.error("Did not expect repair any event!!!");
+ } else {
+ synchronized(this) {
+ isRepairCompleted = true;
+ notify();
+ }
+ }
}
@Subscribe
@@ -83,39 +101,63 @@ public class ApiTestListener {
}
- public void pushExpectedEvent(NextEvent next) {
+ public void pushNextApiExpectedEvent(NextEvent next) {
synchronized (this) {
- nextExpectedEvent.add(next);
- completed = false;
+ nextApiExpectedEvent.add(next);
+ isApiCompleted = false;
}
}
+
+ public void expectRepairCompletion() {
+ expectRepairCompletion = true;
+ isRepairCompleted = false;
+ }
- public boolean isCompleted(long timeout) {
+ public boolean isRepairCompleted(long timeout) {
+ synchronized (this) {
+ if (isRepairCompleted) {
+ return isRepairCompleted;
+ }
+ try {
+ wait(timeout);
+ } catch (Exception ignore) {
+ }
+ }
+ if (!isRepairCompleted) {
+ log.debug("ApiTestListener did not complete in " + timeout + " ms");
+ }
+ return isRepairCompleted;
+ }
+
+ public boolean isApiCompleted(long timeout) {
synchronized (this) {
- if (completed) {
- return completed;
+ if (isApiCompleted) {
+ return isApiCompleted;
}
try {
wait(timeout);
} catch (Exception ignore) {
}
}
- if (!completed) {
+ if (!isApiCompleted) {
log.debug("ApiTestListener did not complete in " + timeout + " ms");
}
- return completed;
+ return isApiCompleted;
}
public void reset() {
- nextExpectedEvent.clear();
+ nextApiExpectedEvent.clear();
+ this.isApiCompleted = false;
+ this.expectRepairCompletion = false;
+ this.isRepairCompleted = false;
}
private void notifyIfStackEmpty() {
log.debug("notifyIfStackEmpty ENTER");
synchronized (this) {
- if (nextExpectedEvent.isEmpty()) {
+ if (nextApiExpectedEvent.isEmpty()) {
log.debug("notifyIfStackEmpty EMPTY");
- completed = true;
+ isApiCompleted = true;
notify();
}
}
@@ -125,7 +167,7 @@ public class ApiTestListener {
private void assertEqualsNicely(NextEvent expected) {
boolean foundIt = false;
- Iterator<NextEvent> it = nextExpectedEvent.iterator();
+ Iterator<NextEvent> it = nextApiExpectedEvent.iterator();
while (it.hasNext()) {
NextEvent ev = it.next();
if (ev == expected) {
@@ -137,7 +179,7 @@ public class ApiTestListener {
if (!foundIt) {
Joiner joiner = Joiner.on(" ");
- Assert.fail("Expected event " + expected + " got " + joiner.join(nextExpectedEvent));
+ Assert.fail("Expected event " + expected + " got " + joiner.join(nextApiExpectedEvent));
}
}
diff --git a/entitlement/src/test/java/com/ning/billing/entitlement/api/migration/TestMigration.java b/entitlement/src/test/java/com/ning/billing/entitlement/api/migration/TestMigration.java
index 8dc7a49..cceed8c 100644
--- a/entitlement/src/test/java/com/ning/billing/entitlement/api/migration/TestMigration.java
+++ b/entitlement/src/test/java/com/ning/billing/entitlement/api/migration/TestMigration.java
@@ -56,9 +56,9 @@ public abstract class TestMigration extends TestApiBase {
EntitlementAccountMigration toBeMigrated = createAccountWithRegularBasePlan(startDate);
DateTime afterMigration = clock.getUTCNow();
- testListener.pushExpectedEvent(NextEvent.MIGRATE_ENTITLEMENT);
+ testListener.pushNextApiExpectedEvent(NextEvent.MIGRATE_ENTITLEMENT);
migrationApi.migrate(toBeMigrated, context);
- assertTrue(testListener.isCompleted(5000));
+ assertTrue(testListener.isApiCompleted(5000));
List<SubscriptionBundle> bundles = entitlementApi.getBundlesForAccount(toBeMigrated.getAccountKey());
assertEquals(bundles.size(), 1);
@@ -87,10 +87,10 @@ public abstract class TestMigration extends TestApiBase {
EntitlementAccountMigration toBeMigrated = createAccountWithRegularBasePlanAndAddons(initalBPStart, initalAddonStart);
DateTime afterMigration = clock.getUTCNow();
- testListener.pushExpectedEvent(NextEvent.MIGRATE_ENTITLEMENT);
- testListener.pushExpectedEvent(NextEvent.MIGRATE_ENTITLEMENT);
+ testListener.pushNextApiExpectedEvent(NextEvent.MIGRATE_ENTITLEMENT);
+ testListener.pushNextApiExpectedEvent(NextEvent.MIGRATE_ENTITLEMENT);
migrationApi.migrate(toBeMigrated, context);
- assertTrue(testListener.isCompleted(5000));
+ assertTrue(testListener.isApiCompleted(5000));
List<SubscriptionBundle> bundles = entitlementApi.getBundlesForAccount(toBeMigrated.getAccountKey());
assertEquals(bundles.size(), 1);
@@ -135,9 +135,9 @@ public abstract class TestMigration extends TestApiBase {
EntitlementAccountMigration toBeMigrated = createAccountWithRegularBasePlanFutreCancelled(startDate);
DateTime afterMigration = clock.getUTCNow();
- testListener.pushExpectedEvent(NextEvent.MIGRATE_ENTITLEMENT);
+ testListener.pushNextApiExpectedEvent(NextEvent.MIGRATE_ENTITLEMENT);
migrationApi.migrate(toBeMigrated, context);
- assertTrue(testListener.isCompleted(5000));
+ assertTrue(testListener.isApiCompleted(5000));
List<SubscriptionBundle> bundles = entitlementApi.getBundlesForAccount(toBeMigrated.getAccountKey());
assertEquals(bundles.size(), 1);
@@ -154,11 +154,11 @@ public abstract class TestMigration extends TestApiBase {
assertEquals(subscription.getCurrentPlan().getName(), "assault-rifle-annual");
assertEquals(subscription.getChargedThroughDate(), startDate.plusYears(1));
- testListener.pushExpectedEvent(NextEvent.MIGRATE_BILLING);
- testListener.pushExpectedEvent(NextEvent.CANCEL);
+ testListener.pushNextApiExpectedEvent(NextEvent.MIGRATE_BILLING);
+ testListener.pushNextApiExpectedEvent(NextEvent.CANCEL);
Duration oneYear = getDurationYear(1);
clock.setDeltaFromReality(oneYear, 0);
- assertTrue(testListener.isCompleted(5000));
+ assertTrue(testListener.isApiCompleted(5000));
assertDateWithin(subscription.getStartDate(), beforeMigration, afterMigration);
assertNotNull(subscription.getEndDate());
@@ -179,9 +179,9 @@ public abstract class TestMigration extends TestApiBase {
final DateTime trialDate = clock.getUTCNow().minusDays(10);
EntitlementAccountMigration toBeMigrated = createAccountFuturePendingPhase(trialDate);
- testListener.pushExpectedEvent(NextEvent.MIGRATE_ENTITLEMENT);
+ testListener.pushNextApiExpectedEvent(NextEvent.MIGRATE_ENTITLEMENT);
migrationApi.migrate(toBeMigrated, context);
- assertTrue(testListener.isCompleted(5000));
+ assertTrue(testListener.isApiCompleted(5000));
List<SubscriptionBundle> bundles = entitlementApi.getBundlesForAccount(toBeMigrated.getAccountKey());
assertEquals(bundles.size(), 1);
@@ -199,11 +199,11 @@ public abstract class TestMigration extends TestApiBase {
assertEquals(subscription.getCurrentPlan().getName(), "assault-rifle-monthly");
assertEquals(subscription.getChargedThroughDate(), trialDate.plusDays(30));
- testListener.pushExpectedEvent(NextEvent.MIGRATE_BILLING);
- testListener.pushExpectedEvent(NextEvent.PHASE);
+ testListener.pushNextApiExpectedEvent(NextEvent.MIGRATE_BILLING);
+ testListener.pushNextApiExpectedEvent(NextEvent.PHASE);
Duration thirtyDays = getDurationDay(30);
clock.setDeltaFromReality(thirtyDays, 0);
- assertTrue(testListener.isCompleted(5000));
+ assertTrue(testListener.isApiCompleted(5000));
assertEquals(subscription.getStartDate(), trialDate);
assertEquals(subscription.getEndDate(), null);
@@ -225,9 +225,9 @@ public abstract class TestMigration extends TestApiBase {
EntitlementAccountMigration toBeMigrated = createAccountFuturePendingChange();
DateTime afterMigration = clock.getUTCNow();
- testListener.pushExpectedEvent(NextEvent.MIGRATE_ENTITLEMENT);
+ testListener.pushNextApiExpectedEvent(NextEvent.MIGRATE_ENTITLEMENT);
migrationApi.migrate(toBeMigrated, context);
- assertTrue(testListener.isCompleted(5000));
+ assertTrue(testListener.isApiCompleted(5000));
List<SubscriptionBundle> bundles = entitlementApi.getBundlesForAccount(toBeMigrated.getAccountKey());
assertEquals(bundles.size(), 1);
@@ -243,10 +243,10 @@ public abstract class TestMigration extends TestApiBase {
assertEquals(subscription.getState(), SubscriptionState.ACTIVE);
assertEquals(subscription.getCurrentPlan().getName(), "assault-rifle-monthly");
- testListener.pushExpectedEvent(NextEvent.CHANGE);
+ testListener.pushNextApiExpectedEvent(NextEvent.CHANGE);
Duration oneMonth = getDurationMonth(1);
clock.setDeltaFromReality(oneMonth, 0);
- assertTrue(testListener.isCompleted(5000));
+ assertTrue(testListener.isApiCompleted(5000));
assertDateWithin(subscription.getStartDate(), beforeMigration, afterMigration);
assertEquals(subscription.getEndDate(), null);
diff --git a/entitlement/src/test/java/com/ning/billing/entitlement/api/repair/TestRepairBP.java b/entitlement/src/test/java/com/ning/billing/entitlement/api/repair/TestRepairBP.java
index 08bf2d0..8f6725f 100644
--- a/entitlement/src/test/java/com/ning/billing/entitlement/api/repair/TestRepairBP.java
+++ b/entitlement/src/test/java/com/ning/billing/entitlement/api/repair/TestRepairBP.java
@@ -187,8 +187,10 @@ public class TestRepairBP extends TestApiBaseRepair {
// SECOND RE-ISSUE CALL-- NON DRY RUN
dryRun = false;
+ testListener.expectRepairCompletion();
BundleRepair realRunBundleRepair = repairApi.repairBundle(bRepair, dryRun, context);
-
+ assertTrue(testListener.isRepairCompleted(5000));
+
subscriptionRepair = realRunBundleRepair.getSubscriptions();
assertEquals(subscriptionRepair.size(), 1);
cur = subscriptionRepair.get(0);
@@ -243,9 +245,9 @@ public class TestRepairBP extends TestApiBaseRepair {
UUID baseSubscriptionId = testBPRepairCreate(true, startDate, clockShift, baseProduct, newBaseProduct, expected);
- testListener.pushExpectedEvent(NextEvent.PHASE);
+ testListener.pushNextApiExpectedEvent(NextEvent.PHASE);
clock.addDeltaFromReality(getDurationDay(32));
- assertTrue(testListener.isCompleted(5000));
+ assertTrue(testListener.isApiCompleted(5000));
// CHECK WHAT"S GOING ON AFTER WE MOVE CLOCK-- FUTURE MOTIFICATION SHOULD KICK IN
SubscriptionData subscription = (SubscriptionData) entitlementApi.getSubscriptionFromId(baseSubscriptionId);
@@ -296,12 +298,12 @@ public class TestRepairBP extends TestApiBaseRepair {
// MOVE CLOCK
if (clockShift > 0) {
if (!inTrial) {
- testListener.pushExpectedEvent(NextEvent.PHASE);
+ testListener.pushNextApiExpectedEvent(NextEvent.PHASE);
}
Duration durationShift = getDurationDay(clockShift);
clock.setDeltaFromReality(durationShift, 0);
if (!inTrial) {
- assertTrue(testListener.isCompleted(5000));
+ assertTrue(testListener.isApiCompleted(5000));
}
}
@@ -415,9 +417,9 @@ public class TestRepairBP extends TestApiBaseRepair {
UUID baseSubscriptionId = testBPRepairAddChange(true, startDate, clockShift, baseProduct, newBaseProduct, expected, 3);
// CHECK WHAT"S GOING ON AFTER WE MOVE CLOCK-- FUTURE MOTIFICATION SHOULD KICK IN
- testListener.pushExpectedEvent(NextEvent.PHASE);
+ testListener.pushNextApiExpectedEvent(NextEvent.PHASE);
clock.addDeltaFromReality(getDurationDay(32));
- assertTrue(testListener.isCompleted(5000));
+ assertTrue(testListener.isApiCompleted(5000));
SubscriptionData subscription = (SubscriptionData) entitlementApi.getSubscriptionFromId(baseSubscriptionId);
assertEquals(subscription.getActiveVersion(), SubscriptionEvents.INITIAL_VERSION + 1);
@@ -465,13 +467,13 @@ public class TestRepairBP extends TestApiBaseRepair {
// MOVE CLOCK
if (!inTrial) {
- testListener.pushExpectedEvent(NextEvent.PHASE);
+ testListener.pushNextApiExpectedEvent(NextEvent.PHASE);
}
Duration durationShift = getDurationDay(clockShift);
clock.setDeltaFromReality(durationShift, 0);
if (!inTrial) {
- assertTrue(testListener.isCompleted(5000));
+ assertTrue(testListener.isApiCompleted(5000));
}
BundleRepair bundleRepair = repairApi.getBundleRepair(bundle.getId());
@@ -573,9 +575,9 @@ public class TestRepairBP extends TestApiBaseRepair {
Subscription baseSubscription = createSubscription("Shotgun", BillingPeriod.MONTHLY, PriceListSet.DEFAULT_PRICELIST_NAME, startDate);
// MOVE CLOCK -- OUT OF TRIAL
- testListener.pushExpectedEvent(NextEvent.PHASE);
+ testListener.pushNextApiExpectedEvent(NextEvent.PHASE);
clock.setDeltaFromReality(getDurationDay(35), 0);
- assertTrue(testListener.isCompleted(5000));
+ assertTrue(testListener.isApiCompleted(5000));
// SET CTD to BASE SUBSCRIPTION SP CANCEL OCCURS EOT
DateTime newChargedThroughDate = baseSubscription.getStartDate().plusDays(30).plusMonths(1);
@@ -658,10 +660,10 @@ public class TestRepairBP extends TestApiBaseRepair {
BundleRepair bRepair = createBundleRepair(bundle.getId(), bundleRepair.getViewId(), Collections.singletonList(sRepair));
- testListener.pushExpectedEvent(NextEvent.CHANGE);
+ testListener.pushNextApiExpectedEvent(NextEvent.CHANGE);
DateTime changeTime = clock.getUTCNow();
baseSubscription.changePlan("Assault-Rifle", BillingPeriod.MONTHLY, PriceListSet.DEFAULT_PRICELIST_NAME, changeTime, context);
- assertTrue(testListener.isCompleted(5000));
+ assertTrue(testListener.isApiCompleted(5000));
repairApi.repairBundle(bRepair, true, context);
}
diff --git a/entitlement/src/test/java/com/ning/billing/entitlement/api/repair/TestRepairWithAO.java b/entitlement/src/test/java/com/ning/billing/entitlement/api/repair/TestRepairWithAO.java
index a4cfcd4..56a6d2e 100644
--- a/entitlement/src/test/java/com/ning/billing/entitlement/api/repair/TestRepairWithAO.java
+++ b/entitlement/src/test/java/com/ning/billing/entitlement/api/repair/TestRepairWithAO.java
@@ -222,11 +222,11 @@ public class TestRepairWithAO extends TestApiBaseRepair {
SubscriptionData aoSubscription = createSubscription("Telescopic-Scope", BillingPeriod.MONTHLY, PriceListSet.DEFAULT_PRICELIST_NAME);
// MOVE CLOCK A LITTLE BIT MORE -- AFTER TRIAL
- testListener.pushExpectedEvent(NextEvent.PHASE);
- testListener.pushExpectedEvent(NextEvent.PHASE);
+ testListener.pushNextApiExpectedEvent(NextEvent.PHASE);
+ testListener.pushNextApiExpectedEvent(NextEvent.PHASE);
someTimeLater = getDurationDay(32);
clock.addDeltaFromReality(someTimeLater);
- assertTrue(testListener.isCompleted(7000));
+ assertTrue(testListener.isApiCompleted(7000));
BundleRepair bundleRepair = repairApi.getBundleRepair(bundle.getId());
sortEventsOnBundle(bundleRepair);
@@ -339,11 +339,11 @@ public class TestRepairWithAO extends TestApiBaseRepair {
SubscriptionData aoSubscription = createSubscription("Telescopic-Scope", BillingPeriod.MONTHLY, PriceListSet.DEFAULT_PRICELIST_NAME);
// MOVE CLOCK A LITTLE BIT MORE -- AFTER TRIAL
- testListener.pushExpectedEvent(NextEvent.PHASE);
- testListener.pushExpectedEvent(NextEvent.PHASE);
+ testListener.pushNextApiExpectedEvent(NextEvent.PHASE);
+ testListener.pushNextApiExpectedEvent(NextEvent.PHASE);
someTimeLater = getDurationDay(40);
clock.addDeltaFromReality(someTimeLater);
- assertTrue(testListener.isCompleted(7000));
+ assertTrue(testListener.isApiCompleted(7000));
// SET CTD to BASE SUBSCRIPTION SP CANCEL OCCURS EOT
DateTime newChargedThroughDate = baseSubscription.getStartDate().plusDays(30).plusMonths(1);
@@ -441,11 +441,11 @@ public class TestRepairWithAO extends TestApiBaseRepair {
assertEquals(newBaseSubscription.getActiveVersion(), SubscriptionEvents.INITIAL_VERSION + 1);
// MOVE CLOCK AFTER CANCEL DATE
- testListener.pushExpectedEvent(NextEvent.CANCEL);
- testListener.pushExpectedEvent(NextEvent.CANCEL);
+ testListener.pushNextApiExpectedEvent(NextEvent.CANCEL);
+ testListener.pushNextApiExpectedEvent(NextEvent.CANCEL);
someTimeLater = getDurationDay(32);
clock.addDeltaFromReality(someTimeLater);
- assertTrue(testListener.isCompleted(7000));
+ assertTrue(testListener.isApiCompleted(7000));
newAoSubscription = (SubscriptionData) entitlementApi.getSubscriptionFromId(aoSubscription.getId());
assertEquals(newAoSubscription.getState(), SubscriptionState.CANCELLED);
@@ -732,10 +732,10 @@ public class TestRepairWithAO extends TestApiBaseRepair {
assertNotNull(currentPhase);
assertEquals(currentPhase.getPhaseType(), PhaseType.DISCOUNT);
- testListener.pushExpectedEvent(NextEvent.PHASE);
+ testListener.pushNextApiExpectedEvent(NextEvent.PHASE);
someTimeLater = getDurationDay(60);
clock.addDeltaFromReality(someTimeLater);
- assertTrue(testListener.isCompleted(5000));
+ assertTrue(testListener.isApiCompleted(5000));
newAoSubscription = (SubscriptionData) entitlementApi.getSubscriptionFromId(aoSubscription.getId());
currentPhase = newAoSubscription.getCurrentPhase();
diff --git a/entitlement/src/test/java/com/ning/billing/entitlement/api/repair/TestRepairWithError.java b/entitlement/src/test/java/com/ning/billing/entitlement/api/repair/TestRepairWithError.java
index 4e67a53..d82f680 100644
--- a/entitlement/src/test/java/com/ning/billing/entitlement/api/repair/TestRepairWithError.java
+++ b/entitlement/src/test/java/com/ning/billing/entitlement/api/repair/TestRepairWithError.java
@@ -75,10 +75,10 @@ public class TestRepairWithError extends TestApiBaseRepair {
public void doTest() throws EntitlementRepairException {
// MOVE AFTER TRIAL
- testListener.pushExpectedEvent(NextEvent.PHASE);
+ testListener.pushNextApiExpectedEvent(NextEvent.PHASE);
Duration durationShift = getDurationDay(40);
clock.setDeltaFromReality(durationShift, 0);
- assertTrue(testListener.isCompleted(5000));
+ assertTrue(testListener.isApiCompleted(5000));
BundleRepair bundleRepair = repairApi.getBundleRepair(bundle.getId());
sortEventsOnBundle(bundleRepair);
@@ -103,16 +103,16 @@ public class TestRepairWithError extends TestApiBaseRepair {
Duration durationShift = getDurationDay(3);
clock.setDeltaFromReality(durationShift, 0);
- testListener.pushExpectedEvent(NextEvent.CHANGE);
+ testListener.pushNextApiExpectedEvent(NextEvent.CHANGE);
DateTime changeTime = clock.getUTCNow();
baseSubscription.changePlan("Assault-Rifle", BillingPeriod.MONTHLY, PriceListSet.DEFAULT_PRICELIST_NAME, changeTime, context);
- assertTrue(testListener.isCompleted(5000));
+ assertTrue(testListener.isApiCompleted(5000));
// MOVE AFTER TRIAL
- testListener.pushExpectedEvent(NextEvent.PHASE);
+ testListener.pushNextApiExpectedEvent(NextEvent.PHASE);
durationShift = getDurationDay(40);
clock.addDeltaFromReality(durationShift);
- assertTrue(testListener.isCompleted(5000));
+ assertTrue(testListener.isApiCompleted(5000));
BundleRepair bundleRepair = repairApi.getBundleRepair(bundle.getId());
sortEventsOnBundle(bundleRepair);
@@ -155,10 +155,10 @@ public class TestRepairWithError extends TestApiBaseRepair {
public void doTest() throws EntitlementRepairException {
// MOVE AFTER TRIAL
- testListener.pushExpectedEvent(NextEvent.PHASE);
+ testListener.pushNextApiExpectedEvent(NextEvent.PHASE);
Duration durationShift = getDurationDay(40);
clock.setDeltaFromReality(durationShift, 0);
- assertTrue(testListener.isCompleted(5000));
+ assertTrue(testListener.isApiCompleted(5000));
BundleRepair bundleRepair = repairApi.getBundleRepair(bundle.getId());
sortEventsOnBundle(bundleRepair);
@@ -183,10 +183,10 @@ public class TestRepairWithError extends TestApiBaseRepair {
public void doTest() throws EntitlementRepairException {
// MOVE AFTER TRIAL
- testListener.pushExpectedEvent(NextEvent.PHASE);
+ testListener.pushNextApiExpectedEvent(NextEvent.PHASE);
Duration durationShift = getDurationDay(40);
clock.setDeltaFromReality(durationShift, 0);
- assertTrue(testListener.isCompleted(5000));
+ assertTrue(testListener.isApiCompleted(5000));
BundleRepair bundleRepair = repairApi.getBundleRepair(bundle.getId());
sortEventsOnBundle(bundleRepair);
diff --git a/entitlement/src/test/java/com/ning/billing/entitlement/api/TestApiBase.java b/entitlement/src/test/java/com/ning/billing/entitlement/api/TestApiBase.java
index 4d7e455..5a63166 100644
--- a/entitlement/src/test/java/com/ning/billing/entitlement/api/TestApiBase.java
+++ b/entitlement/src/test/java/com/ning/billing/entitlement/api/TestApiBase.java
@@ -234,13 +234,13 @@ public abstract class TestApiBase {
protected SubscriptionData createSubscriptionWithBundle(final UUID bundleId, final String productName, final BillingPeriod term, final String planSet, final DateTime requestedDate)
throws EntitlementUserApiException {
- testListener.pushExpectedEvent(NextEvent.CREATE);
+ testListener.pushNextApiExpectedEvent(NextEvent.CREATE);
SubscriptionData subscription = (SubscriptionData) entitlementApi.createSubscription(bundleId,
new PlanPhaseSpecifier(productName, ProductCategory.BASE, term, planSet, null),
requestedDate == null ? clock.getUTCNow() : requestedDate, context);
assertNotNull(subscription);
- assertTrue(testListener.isCompleted(5000));
+ assertTrue(testListener.isApiCompleted(5000));
return subscription;
}
diff --git a/entitlement/src/test/java/com/ning/billing/entitlement/api/user/TestUserApiAddOn.java b/entitlement/src/test/java/com/ning/billing/entitlement/api/user/TestUserApiAddOn.java
index 258308a..9db8d6e 100644
--- a/entitlement/src/test/java/com/ning/billing/entitlement/api/user/TestUserApiAddOn.java
+++ b/entitlement/src/test/java/com/ning/billing/entitlement/api/user/TestUserApiAddOn.java
@@ -72,8 +72,8 @@ public class TestUserApiAddOn extends TestApiBase {
aoSubscription.cancel(now, false, context);
testListener.reset();
- testListener.pushExpectedEvent(NextEvent.CANCEL);
- assertTrue(testListener.isCompleted(5000));
+ testListener.pushNextApiExpectedEvent(NextEvent.CANCEL);
+ assertTrue(testListener.isApiCompleted(5000));
assertEquals(aoSubscription.getState(), SubscriptionState.CANCELLED);
@@ -100,13 +100,13 @@ public class TestUserApiAddOn extends TestApiBase {
SubscriptionData aoSubscription = createSubscription(aoProduct, aoTerm, aoPriceList);
testListener.reset();
- testListener.pushExpectedEvent(NextEvent.PHASE);
- testListener.pushExpectedEvent(NextEvent.PHASE);
+ testListener.pushNextApiExpectedEvent(NextEvent.PHASE);
+ testListener.pushNextApiExpectedEvent(NextEvent.PHASE);
// MOVE CLOCK AFTER TRIAL + AO DISCOUNT
Duration twoMonths = getDurationMonth(2);
clock.setDeltaFromReality(twoMonths, DAY_IN_MS);
- assertTrue(testListener.isCompleted(5000));
+ assertTrue(testListener.isApiCompleted(5000));
// SET CTD TO CANCEL IN FUTURE
DateTime now = clock.getUTCNow();
@@ -126,10 +126,10 @@ public class TestUserApiAddOn extends TestApiBase {
// MOVE AFTER CANCELLATION
testListener.reset();
- testListener.pushExpectedEvent(NextEvent.CANCEL);
- testListener.pushExpectedEvent(NextEvent.CANCEL);
+ testListener.pushNextApiExpectedEvent(NextEvent.CANCEL);
+ testListener.pushNextApiExpectedEvent(NextEvent.CANCEL);
clock.addDeltaFromReality(ctd);
- assertTrue(testListener.isCompleted(5000));
+ assertTrue(testListener.isApiCompleted(5000));
// REFETCH AO SUBSCRIPTION AND CHECK THIS IS CANCELLED
aoSubscription = (SubscriptionData) entitlementApi.getSubscriptionFromId(aoSubscription.getId());
@@ -159,13 +159,13 @@ public class TestUserApiAddOn extends TestApiBase {
SubscriptionData aoSubscription = createSubscription(aoProduct, aoTerm, aoPriceList);
testListener.reset();
- testListener.pushExpectedEvent(NextEvent.PHASE);
- testListener.pushExpectedEvent(NextEvent.PHASE);
+ testListener.pushNextApiExpectedEvent(NextEvent.PHASE);
+ testListener.pushNextApiExpectedEvent(NextEvent.PHASE);
// MOVE CLOCK AFTER TRIAL + AO DISCOUNT
Duration twoMonths = getDurationMonth(2);
clock.setDeltaFromReality(twoMonths, DAY_IN_MS);
- assertTrue(testListener.isCompleted(5000));
+ assertTrue(testListener.isApiCompleted(5000));
// SET CTD TO CHANGE IN FUTURE
DateTime now = clock.getUTCNow();
@@ -180,10 +180,10 @@ public class TestUserApiAddOn extends TestApiBase {
String newBasePriceList = PriceListSet.DEFAULT_PRICELIST_NAME;
testListener.reset();
- testListener.pushExpectedEvent(NextEvent.CHANGE);
- testListener.pushExpectedEvent(NextEvent.CANCEL);
+ testListener.pushNextApiExpectedEvent(NextEvent.CHANGE);
+ testListener.pushNextApiExpectedEvent(NextEvent.CANCEL);
baseSubscription.changePlan(newBaseProduct, newBaseTerm, newBasePriceList, now, context);
- assertTrue(testListener.isCompleted(5000));
+ assertTrue(testListener.isApiCompleted(5000));
// REFETCH AO SUBSCRIPTION AND CHECK THIS CANCELLED
aoSubscription = (SubscriptionData) entitlementApi.getSubscriptionFromId(aoSubscription.getId());
@@ -212,13 +212,13 @@ public class TestUserApiAddOn extends TestApiBase {
SubscriptionData aoSubscription = createSubscription(aoProduct, aoTerm, aoPriceList);
testListener.reset();
- testListener.pushExpectedEvent(NextEvent.PHASE);
- testListener.pushExpectedEvent(NextEvent.PHASE);
+ testListener.pushNextApiExpectedEvent(NextEvent.PHASE);
+ testListener.pushNextApiExpectedEvent(NextEvent.PHASE);
// MOVE CLOCK AFTER TRIAL + AO DISCOUNT
Duration twoMonths = getDurationMonth(2);
clock.setDeltaFromReality(twoMonths, DAY_IN_MS);
- assertTrue(testListener.isCompleted(5000));
+ assertTrue(testListener.isApiCompleted(5000));
// SET CTD TO CANCEL IN FUTURE
DateTime now = clock.getUTCNow();
@@ -242,10 +242,10 @@ public class TestUserApiAddOn extends TestApiBase {
// MOVE AFTER CHANGE
testListener.reset();
- testListener.pushExpectedEvent(NextEvent.CHANGE);
- testListener.pushExpectedEvent(NextEvent.CANCEL);
+ testListener.pushNextApiExpectedEvent(NextEvent.CHANGE);
+ testListener.pushNextApiExpectedEvent(NextEvent.CANCEL);
clock.addDeltaFromReality(ctd);
- assertTrue(testListener.isCompleted(5000));
+ assertTrue(testListener.isApiCompleted(5000));
// REFETCH AO SUBSCRIPTION AND CHECK THIS CANCELLED
@@ -348,14 +348,14 @@ public class TestUserApiAddOn extends TestApiBase {
// ADD TWO PHASE EVENTS (BP + AO)
testListener.reset();
- testListener.pushExpectedEvent(NextEvent.PHASE);
- testListener.pushExpectedEvent(NextEvent.PHASE);
+ testListener.pushNextApiExpectedEvent(NextEvent.PHASE);
+ testListener.pushNextApiExpectedEvent(NextEvent.PHASE);
// MOVE THROUGH TIME TO GO INTO EVERGREEN
someTimeLater = aoCurrentPhase.getDuration();
clock.addDeltaFromReality(someTimeLater);
clock.addDeltaFromReality(getDurationDay(1));
- assertTrue(testListener.isCompleted(5000));
+ assertTrue(testListener.isApiCompleted(5000));
// CHECK EVERYTHING AGAIN
diff --git a/entitlement/src/test/java/com/ning/billing/entitlement/api/user/TestUserApiCancel.java b/entitlement/src/test/java/com/ning/billing/entitlement/api/user/TestUserApiCancel.java
index 55ad5e8..6500761 100644
--- a/entitlement/src/test/java/com/ning/billing/entitlement/api/user/TestUserApiCancel.java
+++ b/entitlement/src/test/java/com/ning/billing/entitlement/api/user/TestUserApiCancel.java
@@ -61,12 +61,12 @@ public abstract class TestUserApiCancel extends TestApiBase {
clock.setDeltaFromReality(moveALittleInTime, 0);
DateTime future = clock.getUTCNow();
- testListener.pushExpectedEvent(NextEvent.CANCEL);
+ testListener.pushNextApiExpectedEvent(NextEvent.CANCEL);
// CANCEL in trial period to get IMM policy
subscription.cancel(clock.getUTCNow(), false, context);
currentPhase = subscription.getCurrentPhase();
- testListener.isCompleted(1000);
+ testListener.isApiCompleted(1000);
assertNull(currentPhase);
checkNextPhaseChange(subscription, 0, null);
@@ -96,9 +96,9 @@ public abstract class TestUserApiCancel extends TestApiBase {
checkNextPhaseChange(subscription, 1, expectedPhaseTrialChange);
// MOVE TO NEXT PHASE
- testListener.pushExpectedEvent(NextEvent.PHASE);
+ testListener.pushNextApiExpectedEvent(NextEvent.PHASE);
clock.setDeltaFromReality(trialPhase.getDuration(), DAY_IN_MS);
- assertTrue(testListener.isCompleted(2000));
+ assertTrue(testListener.isApiCompleted(2000));
trialPhase = subscription.getCurrentPhase();
assertEquals(trialPhase.getPhaseType(), PhaseType.EVERGREEN);
@@ -108,16 +108,16 @@ public abstract class TestUserApiCancel extends TestApiBase {
billingApi.setChargedThroughDate(subscription.getId(), newChargedThroughDate, context);
subscription = (SubscriptionData) entitlementApi.getSubscriptionFromId(subscription.getId());
- testListener.pushExpectedEvent(NextEvent.CANCEL);
+ testListener.pushNextApiExpectedEvent(NextEvent.CANCEL);
// CANCEL
subscription.cancel(clock.getUTCNow(), false, context);
- assertFalse(testListener.isCompleted(2000));
+ assertFalse(testListener.isApiCompleted(2000));
// MOVE TO EOT + RECHECK
clock.addDeltaFromReality(ctd);
DateTime future = clock.getUTCNow();
- assertTrue(testListener.isCompleted(2000));
+ assertTrue(testListener.isApiCompleted(2000));
PlanPhase currentPhase = subscription.getCurrentPhase();
assertNull(currentPhase);
@@ -149,17 +149,17 @@ public abstract class TestUserApiCancel extends TestApiBase {
checkNextPhaseChange(subscription, 1, expectedPhaseTrialChange);
// MOVE TO NEXT PHASE
- testListener.pushExpectedEvent(NextEvent.PHASE);
+ testListener.pushNextApiExpectedEvent(NextEvent.PHASE);
clock.setDeltaFromReality(trialPhase.getDuration(), DAY_IN_MS);
- assertTrue(testListener.isCompleted(2000));
+ assertTrue(testListener.isApiCompleted(2000));
trialPhase = subscription.getCurrentPhase();
assertEquals(trialPhase.getPhaseType(), PhaseType.EVERGREEN);
- testListener.pushExpectedEvent(NextEvent.CANCEL);
+ testListener.pushNextApiExpectedEvent(NextEvent.CANCEL);
// CANCEL
subscription.cancel(clock.getUTCNow(), false, context);
- assertTrue(testListener.isCompleted(2000));
+ assertTrue(testListener.isApiCompleted(2000));
PlanPhase currentPhase = subscription.getCurrentPhase();
assertNull(currentPhase);
@@ -193,9 +193,9 @@ public abstract class TestUserApiCancel extends TestApiBase {
checkNextPhaseChange(subscription, 1, expectedPhaseTrialChange);
// MOVE TO NEXT PHASE
- testListener.pushExpectedEvent(NextEvent.PHASE);
+ testListener.pushNextApiExpectedEvent(NextEvent.PHASE);
clock.setDeltaFromReality(trialPhase.getDuration(), DAY_IN_MS);
- assertTrue(testListener.isCompleted(2000));
+ assertTrue(testListener.isApiCompleted(2000));
PlanPhase currentPhase = subscription.getCurrentPhase();
assertEquals(currentPhase.getPhaseType(), PhaseType.EVERGREEN);
@@ -205,18 +205,18 @@ public abstract class TestUserApiCancel extends TestApiBase {
billingApi.setChargedThroughDate(subscription.getId(), newChargedThroughDate, context);
subscription = (SubscriptionData) entitlementApi.getSubscriptionFromId(subscription.getId());
- testListener.pushExpectedEvent(NextEvent.CANCEL);
+ testListener.pushNextApiExpectedEvent(NextEvent.CANCEL);
// CANCEL
subscription.cancel(clock.getUTCNow(), false, context);
- assertFalse(testListener.isCompleted(2000));
+ assertFalse(testListener.isApiCompleted(2000));
subscription.uncancel(context);
// MOVE TO EOT + RECHECK
clock.addDeltaFromReality(ctd);
DateTime future = clock.getUTCNow();
- assertFalse(testListener.isCompleted(2000));
+ assertFalse(testListener.isApiCompleted(2000));
Plan currentPlan = subscription.getCurrentPlan();
assertEquals(currentPlan.getProduct().getName(), prod);
diff --git a/entitlement/src/test/java/com/ning/billing/entitlement/api/user/TestUserApiChangePlan.java b/entitlement/src/test/java/com/ning/billing/entitlement/api/user/TestUserApiChangePlan.java
index d8a34c9..eed1726 100644
--- a/entitlement/src/test/java/com/ning/billing/entitlement/api/user/TestUserApiChangePlan.java
+++ b/entitlement/src/test/java/com/ning/billing/entitlement/api/user/TestUserApiChangePlan.java
@@ -79,17 +79,17 @@ public abstract class TestUserApiChangePlan extends TestApiBase {
// MOVE TO NEXT PHASE
PlanPhase currentPhase = subscription.getCurrentPhase();
- testListener.pushExpectedEvent(NextEvent.PHASE);
+ testListener.pushNextApiExpectedEvent(NextEvent.PHASE);
clock.setDeltaFromReality(currentPhase.getDuration(), DAY_IN_MS);
DateTime futureNow = clock.getUTCNow();
DateTime nextExpectedPhaseChange = DefaultClock.addDuration(subscription.getStartDate(), currentPhase.getDuration());
assertTrue(futureNow.isAfter(nextExpectedPhaseChange));
- assertTrue(testListener.isCompleted(3000));
+ assertTrue(testListener.isApiCompleted(3000));
// CHANGE PLAN
- testListener.pushExpectedEvent(NextEvent.CHANGE);
+ testListener.pushNextApiExpectedEvent(NextEvent.CHANGE);
subscription.changePlan(toProd, toTerm, toPlanSet, clock.getUTCNow(), context);
- assertTrue(testListener.isCompleted(2000));
+ assertTrue(testListener.isApiCompleted(2000));
// CHECK CHANGE PLAN
currentPhase = subscription.getCurrentPhase();
@@ -119,9 +119,9 @@ public abstract class TestUserApiChangePlan extends TestApiBase {
// MOVE TO NEXT PHASE
- testListener.pushExpectedEvent(NextEvent.PHASE);
+ testListener.pushNextApiExpectedEvent(NextEvent.PHASE);
clock.setDeltaFromReality(trialPhase.getDuration(), DAY_IN_MS);
- assertTrue(testListener.isCompleted(2000));
+ assertTrue(testListener.isApiCompleted(2000));
PlanPhase currentPhase = subscription.getCurrentPhase();
assertEquals(currentPhase.getPhaseType(), PhaseType.DISCOUNT);
@@ -132,10 +132,10 @@ public abstract class TestUserApiChangePlan extends TestApiBase {
billingApi.setChargedThroughDate(subscription.getId(), newChargedThroughDate, context);
// RE READ SUBSCRIPTION + CHANGE PLAN
- testListener.pushExpectedEvent(NextEvent.CHANGE);
+ testListener.pushNextApiExpectedEvent(NextEvent.CHANGE);
subscription = (SubscriptionData) entitlementApi.getSubscriptionFromId(subscription.getId());
subscription.changePlan(toProd, toTerm, toPlanSet, clock.getUTCNow(), context);
- assertFalse(testListener.isCompleted(2000));
+ assertFalse(testListener.isApiCompleted(2000));
testListener.reset();
// CHECK CHANGE PLAN
@@ -152,9 +152,9 @@ public abstract class TestUserApiChangePlan extends TestApiBase {
// MOVE TO EOT
- testListener.pushExpectedEvent(NextEvent.CHANGE);
+ testListener.pushNextApiExpectedEvent(NextEvent.CHANGE);
clock.addDeltaFromReality(ctd);
- assertTrue(testListener.isCompleted(5000));
+ assertTrue(testListener.isApiCompleted(5000));
subscription = (SubscriptionData) entitlementApi.getSubscriptionFromId(subscription.getId());
currentPhase = subscription.getCurrentPhase();
@@ -180,7 +180,7 @@ public abstract class TestUserApiChangePlan extends TestApiBase {
SubscriptionData subscription = createSubscription(fromProd, fromTerm, fromPlanSet);
- testListener.pushExpectedEvent(NextEvent.CHANGE);
+ testListener.pushNextApiExpectedEvent(NextEvent.CHANGE);
Duration moveALittleInTime = getDurationDay(3);
clock.setDeltaFromReality(moveALittleInTime, 0);
@@ -189,14 +189,14 @@ public abstract class TestUserApiChangePlan extends TestApiBase {
subscription.changePlan(toProd, toTerm, toPlanSet, clock.getUTCNow(), context);
checkChangePlan(subscription, toProd, ProductCategory.BASE, toTerm, PhaseType.TRIAL);
- assertTrue(testListener.isCompleted(2000));
+ assertTrue(testListener.isApiCompleted(2000));
PlanPhase currentPhase = subscription.getCurrentPhase();
DateTime nextExpectedPhaseChange = DefaultClock.addDuration(subscription.getStartDate(), currentPhase.getDuration());
checkNextPhaseChange(subscription, 1, nextExpectedPhaseChange);
// NEXT PHASE
- testListener.pushExpectedEvent(NextEvent.PHASE);
+ testListener.pushNextApiExpectedEvent(NextEvent.PHASE);
clock.addDeltaFromReality(currentPhase.getDuration());
DateTime futureNow = clock.getUTCNow();
@@ -209,7 +209,7 @@ public abstract class TestUserApiChangePlan extends TestApiBase {
*/
assertTrue(futureNow.isAfter(nextExpectedPhaseChange));
- assertTrue(testListener.isCompleted(3000));
+ assertTrue(testListener.isApiCompleted(3000));
} catch (EntitlementUserApiException e) {
Assert.fail(e.getMessage());
@@ -236,11 +236,11 @@ public abstract class TestUserApiChangePlan extends TestApiBase {
assertEquals(trialPhase.getPhaseType(), PhaseType.TRIAL);
// MOVE TO NEXT PHASE
- testListener.pushExpectedEvent(NextEvent.PHASE);
+ testListener.pushNextApiExpectedEvent(NextEvent.PHASE);
currentTime = clock.getUTCNow();
clock.setDeltaFromReality(trialPhase.getDuration(), DAY_IN_MS);
currentTime = clock.getUTCNow();
- assertTrue(testListener.isCompleted(2000));
+ assertTrue(testListener.isApiCompleted(2000));
// SET CTD
Duration ctd = getDurationMonth(1);
@@ -256,18 +256,18 @@ public abstract class TestUserApiChangePlan extends TestApiBase {
// CHANGE PLAN
currentTime = clock.getUTCNow();
- testListener.pushExpectedEvent(NextEvent.CHANGE);
+ testListener.pushNextApiExpectedEvent(NextEvent.CHANGE);
subscription.changePlan(toProd, toTerm, toPlanSet, clock.getUTCNow(), context);
checkChangePlan(subscription, fromProd, ProductCategory.BASE, fromTerm, PhaseType.EVERGREEN);
// CHECK CHANGE DID NOT KICK IN YET
- assertFalse(testListener.isCompleted(2000));
+ assertFalse(testListener.isApiCompleted(2000));
// MOVE TO AFTER CTD
clock.addDeltaFromReality(ctd);
currentTime = clock.getUTCNow();
- assertTrue(testListener.isCompleted(2000));
+ assertTrue(testListener.isApiCompleted(2000));
// CHECK CORRECT PRODUCT, PHASE, PLAN SET
String currentProduct = subscription.getCurrentPlan().getProduct().getName();
@@ -277,13 +277,13 @@ public abstract class TestUserApiChangePlan extends TestApiBase {
assertNotNull(currentPhase);
assertEquals(currentPhase.getPhaseType(), PhaseType.DISCOUNT);
- testListener.pushExpectedEvent(NextEvent.PHASE);
+ testListener.pushNextApiExpectedEvent(NextEvent.PHASE);
// MOVE TIME ABOUT ONE MONTH BEFORE NEXT EXPECTED PHASE CHANGE
clock.addDeltaFromReality(getDurationMonth(11));
currentTime = clock.getUTCNow();
- assertFalse(testListener.isCompleted(2000));
+ assertFalse(testListener.isApiCompleted(2000));
DateTime nextExpectedPhaseChange = DefaultClock.addDuration(newChargedThroughDate, currentPhase.getDuration());
checkNextPhaseChange(subscription, 1, nextExpectedPhaseChange);
@@ -291,7 +291,7 @@ public abstract class TestUserApiChangePlan extends TestApiBase {
// MOVE TIME RIGHT AFTER NEXT EXPECTED PHASE CHANGE
clock.addDeltaFromReality(getDurationMonth(1));
currentTime = clock.getUTCNow();
- assertTrue(testListener.isCompleted(2000));
+ assertTrue(testListener.isApiCompleted(2000));
} catch (EntitlementUserApiException e) {
Assert.fail(e.getMessage());
@@ -306,9 +306,9 @@ public abstract class TestUserApiChangePlan extends TestApiBase {
assertEquals(trialPhase.getPhaseType(), PhaseType.TRIAL);
// MOVE TO NEXT PHASE
- testListener.pushExpectedEvent(NextEvent.PHASE);
+ testListener.pushNextApiExpectedEvent(NextEvent.PHASE);
clock.setDeltaFromReality(trialPhase.getDuration(), DAY_IN_MS);
- assertTrue(testListener.isCompleted(2000));
+ assertTrue(testListener.isApiCompleted(2000));
// SET CTD
List<Duration> durationList = new ArrayList<Duration>();
@@ -321,14 +321,14 @@ public abstract class TestUserApiChangePlan extends TestApiBase {
subscription = (SubscriptionData) entitlementApi.getSubscriptionFromId(subscription.getId());
// CHANGE EOT
- testListener.pushExpectedEvent(NextEvent.CHANGE);
+ testListener.pushNextApiExpectedEvent(NextEvent.CHANGE);
subscription.changePlan("Pistol", BillingPeriod.MONTHLY, "gunclubDiscount", clock.getUTCNow(), context);
- assertFalse(testListener.isCompleted(2000));
+ assertFalse(testListener.isApiCompleted(2000));
// CHANGE
- testListener.pushExpectedEvent(NextEvent.CHANGE);
+ testListener.pushNextApiExpectedEvent(NextEvent.CHANGE);
subscription.changePlan("Assault-Rifle", BillingPeriod.ANNUAL, "gunclubDiscount", clock.getUTCNow(), context);
- assertFalse(testListener.isCompleted(2000));
+ assertFalse(testListener.isApiCompleted(2000));
Plan currentPlan = subscription.getCurrentPlan();
assertNotNull(currentPlan);
@@ -353,9 +353,9 @@ public abstract class TestUserApiChangePlan extends TestApiBase {
PlanPhase trialPhase = subscription.getCurrentPhase();
assertEquals(trialPhase.getPhaseType(), PhaseType.TRIAL);
- testListener.pushExpectedEvent(NextEvent.PHASE);
+ testListener.pushNextApiExpectedEvent(NextEvent.PHASE);
clock.setDeltaFromReality(trialPhase.getDuration(), DAY_IN_MS);
- assertTrue(testListener.isCompleted(2000));
+ assertTrue(testListener.isApiCompleted(2000));
// SET CTD
List<Duration> durationList = new ArrayList<Duration>();
@@ -367,15 +367,15 @@ public abstract class TestUserApiChangePlan extends TestApiBase {
subscription = (SubscriptionData) entitlementApi.getSubscriptionFromId(subscription.getId());
// CHANGE EOT
- testListener.pushExpectedEvent(NextEvent.CHANGE);
+ testListener.pushNextApiExpectedEvent(NextEvent.CHANGE);
subscription.changePlan("Shotgun", BillingPeriod.MONTHLY, "gunclubDiscount", clock.getUTCNow(), context);
- assertFalse(testListener.isCompleted(2000));
+ assertFalse(testListener.isApiCompleted(2000));
testListener.reset();
// CHANGE EOT
- testListener.pushExpectedEvent(NextEvent.CHANGE);
+ testListener.pushNextApiExpectedEvent(NextEvent.CHANGE);
subscription.changePlan("Pistol", BillingPeriod.ANNUAL, "gunclubDiscount", clock.getUTCNow(), context);
- assertFalse(testListener.isCompleted(2000));
+ assertFalse(testListener.isApiCompleted(2000));
testListener.reset();
// CHECK NO CHANGE OCCURED YET
@@ -390,9 +390,9 @@ public abstract class TestUserApiChangePlan extends TestApiBase {
assertEquals(currentPhase.getPhaseType(), PhaseType.DISCOUNT);
// ACTIVATE CHNAGE BY MOVING AFTER CTD
- testListener.pushExpectedEvent(NextEvent.CHANGE);
+ testListener.pushNextApiExpectedEvent(NextEvent.CHANGE);
clock.addDeltaFromReality(ctd);
- assertTrue(testListener.isCompleted(3000));
+ assertTrue(testListener.isApiCompleted(3000));
currentPlan = subscription.getCurrentPlan();
assertNotNull(currentPlan);
@@ -407,9 +407,9 @@ public abstract class TestUserApiChangePlan extends TestApiBase {
// MOVE TO NEXT PHASE
- testListener.pushExpectedEvent(NextEvent.PHASE);
+ testListener.pushNextApiExpectedEvent(NextEvent.PHASE);
clock.addDeltaFromReality(currentPhase.getDuration());
- assertTrue(testListener.isCompleted(3000));
+ assertTrue(testListener.isApiCompleted(3000));
subscription = (SubscriptionData) entitlementApi.getSubscriptionFromId(subscription.getId());
currentPlan = subscription.getCurrentPlan();
@@ -441,9 +441,9 @@ public abstract class TestUserApiChangePlan extends TestApiBase {
// CHANGE IMMEDIATE TO A 3 PHASES PLAN
testListener.reset();
- testListener.pushExpectedEvent(NextEvent.CHANGE);
+ testListener.pushNextApiExpectedEvent(NextEvent.CHANGE);
subscription.changePlan("Assault-Rifle", BillingPeriod.ANNUAL, "gunclubDiscount", clock.getUTCNow(), context);
- assertTrue(testListener.isCompleted(3000));
+ assertTrue(testListener.isApiCompleted(3000));
testListener.reset();
// CHECK EVERYTHING LOOKS CORRECT
@@ -457,9 +457,9 @@ public abstract class TestUserApiChangePlan extends TestApiBase {
assertEquals(trialPhase.getPhaseType(), PhaseType.TRIAL);
// MOVE AFTER TRIAL PERIOD -> DISCOUNT
- testListener.pushExpectedEvent(NextEvent.PHASE);
+ testListener.pushNextApiExpectedEvent(NextEvent.PHASE);
clock.addDeltaFromReality(trialPhase.getDuration());
- assertTrue(testListener.isCompleted(3000));
+ assertTrue(testListener.isApiCompleted(3000));
trialPhase = subscription.getCurrentPhase();
assertEquals(trialPhase.getPhaseType(), PhaseType.DISCOUNT);
diff --git a/entitlement/src/test/java/com/ning/billing/entitlement/api/user/TestUserApiCreate.java b/entitlement/src/test/java/com/ning/billing/entitlement/api/user/TestUserApiCreate.java
index a8d6e0c..392722f 100644
--- a/entitlement/src/test/java/com/ning/billing/entitlement/api/user/TestUserApiCreate.java
+++ b/entitlement/src/test/java/com/ning/billing/entitlement/api/user/TestUserApiCreate.java
@@ -55,8 +55,8 @@ public abstract class TestUserApiCreate extends TestApiBase {
String planSetName = PriceListSet.DEFAULT_PRICELIST_NAME;
- testListener.pushExpectedEvent(NextEvent.PHASE);
- testListener.pushExpectedEvent(NextEvent.CREATE);
+ testListener.pushNextApiExpectedEvent(NextEvent.PHASE);
+ testListener.pushNextApiExpectedEvent(NextEvent.CREATE);
SubscriptionData subscription = (SubscriptionData) entitlementApi.createSubscription(bundle.getId(),
@@ -68,7 +68,7 @@ public abstract class TestUserApiCreate extends TestApiBase {
assertEquals(subscription.getBundleId(), bundle.getId());
assertEquals(subscription.getStartDate(), requestedDate);
- assertTrue(testListener.isCompleted(5000));
+ assertTrue(testListener.isApiCompleted(5000));
} catch (EntitlementUserApiException e) {
log.error("Unexpected exception",e);
@@ -88,7 +88,7 @@ public abstract class TestUserApiCreate extends TestApiBase {
BillingPeriod term = BillingPeriod.MONTHLY;
String planSetName = PriceListSet.DEFAULT_PRICELIST_NAME;
- testListener.pushExpectedEvent(NextEvent.CREATE);
+ testListener.pushNextApiExpectedEvent(NextEvent.CREATE);
SubscriptionData subscription = (SubscriptionData) entitlementApi.createSubscription(bundle.getId(),
getProductSpecifier(productName, planSetName, term, PhaseType.EVERGREEN), clock.getUTCNow(), context);
@@ -126,7 +126,7 @@ public abstract class TestUserApiCreate extends TestApiBase {
BillingPeriod term = BillingPeriod.MONTHLY;
String planSetName = PriceListSet.DEFAULT_PRICELIST_NAME;
- testListener.pushExpectedEvent(NextEvent.CREATE);
+ testListener.pushNextApiExpectedEvent(NextEvent.CREATE);
SubscriptionData subscription = (SubscriptionData) entitlementApi.createSubscription(bundle.getId(),
getProductSpecifier(productName, planSetName, term, null),
@@ -148,7 +148,7 @@ public abstract class TestUserApiCreate extends TestApiBase {
PlanPhase currentPhase = subscription.getCurrentPhase();
assertNotNull(currentPhase);
assertEquals(currentPhase.getPhaseType(), PhaseType.TRIAL);
- assertTrue(testListener.isCompleted(5000));
+ assertTrue(testListener.isApiCompleted(5000));
List<EntitlementEvent> events = dao.getPendingEventsForSubscription(subscription.getId());
assertNotNull(events);
@@ -159,14 +159,14 @@ public abstract class TestUserApiCreate extends TestApiBase {
DateTime nextExpectedPhaseChange = DefaultClock.addDuration(subscription.getStartDate(), currentPhase.getDuration());
assertEquals(nextPhaseChange, nextExpectedPhaseChange);
- testListener.pushExpectedEvent(NextEvent.PHASE);
+ testListener.pushNextApiExpectedEvent(NextEvent.PHASE);
clock.setDeltaFromReality(currentPhase.getDuration(), DAY_IN_MS);
DateTime futureNow = clock.getUTCNow();
assertTrue(futureNow.isAfter(nextPhaseChange));
- assertTrue(testListener.isCompleted(5000));
+ assertTrue(testListener.isApiCompleted(5000));
} catch (EntitlementUserApiException e) {
Assert.fail(e.getMessage());
@@ -183,7 +183,7 @@ public abstract class TestUserApiCreate extends TestApiBase {
BillingPeriod term = BillingPeriod.ANNUAL;
String planSetName = "gunclubDiscount";
- testListener.pushExpectedEvent(NextEvent.CREATE);
+ testListener.pushNextApiExpectedEvent(NextEvent.CREATE);
// CREATE SUBSCRIPTION
SubscriptionData subscription = (SubscriptionData) entitlementApi.createSubscription(bundle.getId(),
@@ -193,20 +193,20 @@ public abstract class TestUserApiCreate extends TestApiBase {
PlanPhase currentPhase = subscription.getCurrentPhase();
assertNotNull(currentPhase);
assertEquals(currentPhase.getPhaseType(), PhaseType.TRIAL);
- assertTrue(testListener.isCompleted(5000));
+ assertTrue(testListener.isApiCompleted(5000));
// MOVE TO DISCOUNT PHASE
- testListener.pushExpectedEvent(NextEvent.PHASE);
+ testListener.pushNextApiExpectedEvent(NextEvent.PHASE);
clock.setDeltaFromReality(currentPhase.getDuration(), DAY_IN_MS);
currentPhase = subscription.getCurrentPhase();
assertNotNull(currentPhase);
assertEquals(currentPhase.getPhaseType(), PhaseType.DISCOUNT);
- assertTrue(testListener.isCompleted(2000));
+ assertTrue(testListener.isApiCompleted(2000));
// MOVE TO EVERGREEN PHASE + RE-READ SUBSCRIPTION
- testListener.pushExpectedEvent(NextEvent.PHASE);
+ testListener.pushNextApiExpectedEvent(NextEvent.PHASE);
clock.addDeltaFromReality(currentPhase.getDuration());
- assertTrue(testListener.isCompleted(2000));
+ assertTrue(testListener.isApiCompleted(2000));
subscription = (SubscriptionData) entitlementApi.getSubscriptionFromId(subscription.getId());
currentPhase = subscription.getCurrentPhase();
@@ -228,7 +228,7 @@ public abstract class TestUserApiCreate extends TestApiBase {
BillingPeriod term = BillingPeriod.ANNUAL;
String planSetName = PriceListSet.DEFAULT_PRICELIST_NAME;
- testListener.pushExpectedEvent(NextEvent.CREATE);
+ testListener.pushNextApiExpectedEvent(NextEvent.CREATE);
SubscriptionData subscription = (SubscriptionData) entitlementApi.createSubscription(bundle.getId(),
getProductSpecifier(productName, planSetName, term, null), clock.getUTCNow(), context);
diff --git a/entitlement/src/test/java/com/ning/billing/entitlement/api/user/TestUserApiDemos.java b/entitlement/src/test/java/com/ning/billing/entitlement/api/user/TestUserApiDemos.java
index 74fbef7..2f58619 100644
--- a/entitlement/src/test/java/com/ning/billing/entitlement/api/user/TestUserApiDemos.java
+++ b/entitlement/src/test/java/com/ning/billing/entitlement/api/user/TestUserApiDemos.java
@@ -78,16 +78,16 @@ public class TestUserApiDemos extends TestApiBase {
displayState(subscription.getId(), "STEP 1. CREATED SUBSCRIPTION");
/* STEP 2. CHANGE PLAN WHILE IN TRIAL */
- testListener.pushExpectedEvent(NextEvent.CHANGE);
+ testListener.pushNextApiExpectedEvent(NextEvent.CHANGE);
subscription.changePlan("Assault-Rifle", BillingPeriod.ANNUAL, "gunclubDiscount", clock.getUTCNow(), context);
- assertTrue(testListener.isCompleted(3000));
+ assertTrue(testListener.isApiCompleted(3000));
displayState(subscription.getId(), "STEP 2. CHANGED PLAN WHILE IN TRIAL");
/* STEP 3. MOVE TO DISCOUNT PHASE */
- testListener.pushExpectedEvent(NextEvent.PHASE);
+ testListener.pushNextApiExpectedEvent(NextEvent.PHASE);
clock.setDeltaFromReality(trialPhase.getDuration(), DAY_IN_MS);
- assertTrue(testListener.isCompleted(3000));
+ assertTrue(testListener.isApiCompleted(3000));
displayState(subscription.getId(), "STEP 3. MOVE TO DISCOUNT PHASE");
@@ -101,25 +101,25 @@ public class TestUserApiDemos extends TestApiBase {
billingApi.setChargedThroughDate(subscription.getId(), newChargedThroughDate, context);
subscription = (SubscriptionData) entitlementApi.getSubscriptionFromId(subscription.getId());
- testListener.pushExpectedEvent(NextEvent.CHANGE);
+ testListener.pushNextApiExpectedEvent(NextEvent.CHANGE);
subscription.changePlan("Shotgun", BillingPeriod.ANNUAL, "gunclubDiscount", clock.getUTCNow(), context);
- assertFalse(testListener.isCompleted(2000));
+ assertFalse(testListener.isApiCompleted(2000));
testListener.reset();
displayState(subscription.getId(), "STEP 4. SET CTD AND CHANGE PLAN EOT (Shotgun)");
/* STEP 5. CHANGE AGAIN */
- testListener.pushExpectedEvent(NextEvent.CHANGE);
+ testListener.pushNextApiExpectedEvent(NextEvent.CHANGE);
subscription.changePlan("Pistol", BillingPeriod.ANNUAL, "gunclubDiscount", clock.getUTCNow(), context);
- assertFalse(testListener.isCompleted(2000));
+ assertFalse(testListener.isApiCompleted(2000));
testListener.reset();
displayState(subscription.getId(), "STEP 5. CHANGE AGAIN EOT (Pistol)");
/* STEP 6. MOVE TO EOT AND CHECK CHANGE OCCURED */
- testListener.pushExpectedEvent(NextEvent.CHANGE);
+ testListener.pushNextApiExpectedEvent(NextEvent.CHANGE);
clock.addDeltaFromReality(ctd);
- assertTrue(testListener.isCompleted(2000));
+ assertTrue(testListener.isApiCompleted(2000));
Plan currentPlan = subscription.getCurrentPlan();
assertNotNull(currentPlan);
@@ -134,9 +134,9 @@ public class TestUserApiDemos extends TestApiBase {
displayState(subscription.getId(), "STEP 6. MOVE TO EOT");
/* STEP 7. MOVE TO NEXT PHASE */
- testListener.pushExpectedEvent(NextEvent.PHASE);
+ testListener.pushNextApiExpectedEvent(NextEvent.PHASE);
clock.addDeltaFromReality(currentPhase.getDuration());
- assertTrue(testListener.isCompleted(5000));
+ assertTrue(testListener.isApiCompleted(5000));
subscription = (SubscriptionData) entitlementApi.getSubscriptionFromId(subscription.getId());
currentPlan = subscription.getCurrentPlan();
@@ -152,7 +152,7 @@ public class TestUserApiDemos extends TestApiBase {
displayState(subscription.getId(), "STEP 7. MOVE TO NEXT PHASE");
/* STEP 8. CANCEL IMM (NO CTD) */
- testListener.pushExpectedEvent(NextEvent.CANCEL);
+ testListener.pushNextApiExpectedEvent(NextEvent.CANCEL);
subscription.cancel(clock.getUTCNow(), false, context);
displayState(subscription.getId(), "STEP 8. CANCELLATION");
diff --git a/entitlement/src/test/java/com/ning/billing/entitlement/api/user/TestUserApiError.java b/entitlement/src/test/java/com/ning/billing/entitlement/api/user/TestUserApiError.java
index aa1d3cd..92519ac 100644
--- a/entitlement/src/test/java/com/ning/billing/entitlement/api/user/TestUserApiError.java
+++ b/entitlement/src/test/java/com/ning/billing/entitlement/api/user/TestUserApiError.java
@@ -151,7 +151,7 @@ public class TestUserApiError extends TestApiBase {
try {
Subscription subscription = createSubscription("Shotgun", BillingPeriod.ANNUAL, PriceListSet.DEFAULT_PRICELIST_NAME);
- testListener.pushExpectedEvent(NextEvent.CANCEL);
+ testListener.pushNextApiExpectedEvent(NextEvent.CANCEL);
subscription.cancel(clock.getUTCNow(), false, context);
try {
subscription.changePlan("Pistol", BillingPeriod.MONTHLY, PriceListSet.DEFAULT_PRICELIST_NAME, clock.getUTCNow(), context);
@@ -178,9 +178,9 @@ public class TestUserApiError extends TestApiBase {
// MOVE TO NEXT PHASE
PlanPhase currentPhase = subscription.getCurrentPhase();
- testListener.pushExpectedEvent(NextEvent.PHASE);
+ testListener.pushNextApiExpectedEvent(NextEvent.PHASE);
clock.setDeltaFromReality(currentPhase.getDuration(), DAY_IN_MS);
- assertTrue(testListener.isCompleted(3000));
+ assertTrue(testListener.isApiCompleted(3000));
// SET CTD TO CANCEL IN FUTURE
diff --git a/entitlement/src/test/java/com/ning/billing/entitlement/api/user/TestUserApiRecreate.java b/entitlement/src/test/java/com/ning/billing/entitlement/api/user/TestUserApiRecreate.java
index 7dbc802..11d13be 100644
--- a/entitlement/src/test/java/com/ning/billing/entitlement/api/user/TestUserApiRecreate.java
+++ b/entitlement/src/test/java/com/ning/billing/entitlement/api/user/TestUserApiRecreate.java
@@ -66,8 +66,8 @@ public abstract class TestUserApiRecreate extends TestApiBase {
BillingPeriod term = BillingPeriod.MONTHLY;
String planSetName = PriceListSet.DEFAULT_PRICELIST_NAME;
- testListener.pushExpectedEvent(NextEvent.PHASE);
- testListener.pushExpectedEvent(NextEvent.CREATE);
+ testListener.pushNextApiExpectedEvent(NextEvent.PHASE);
+ testListener.pushNextApiExpectedEvent(NextEvent.CREATE);
SubscriptionData subscription = (SubscriptionData) entitlementApi.createSubscription(bundle.getId(),
getProductSpecifier(productName, planSetName, term, null), requestedDate, context);
assertNotNull(subscription);
@@ -76,7 +76,7 @@ public abstract class TestUserApiRecreate extends TestApiBase {
assertEquals(subscription.getStartDate(), requestedDate);
assertEquals(productName, subscription.getCurrentPlan().getProduct().getName());
- assertTrue(testListener.isCompleted(5000));
+ assertTrue(testListener.isApiCompleted(5000));
// CREATE (AGAIN) WITH NEW PRODUCT
productName = "Pistol";
@@ -96,11 +96,11 @@ public abstract class TestUserApiRecreate extends TestApiBase {
}
// NOW CANCEL ADN THIS SHOULD WORK
- testListener.pushExpectedEvent(NextEvent.CANCEL);
+ testListener.pushNextApiExpectedEvent(NextEvent.CANCEL);
subscription.cancel(null, false, context);
- testListener.pushExpectedEvent(NextEvent.PHASE);
- testListener.pushExpectedEvent(NextEvent.RE_CREATE);
+ testListener.pushNextApiExpectedEvent(NextEvent.PHASE);
+ testListener.pushNextApiExpectedEvent(NextEvent.RE_CREATE);
// Avoid ordering issue for events at exact same date; this is actually a real good test, we
// we test it at Beatrix level. At this level that would work for sql tests but not for in memory.
diff --git a/entitlement/src/test/java/com/ning/billing/entitlement/api/user/TestUserApiScenarios.java b/entitlement/src/test/java/com/ning/billing/entitlement/api/user/TestUserApiScenarios.java
index 1ece406..ca136d1 100644
--- a/entitlement/src/test/java/com/ning/billing/entitlement/api/user/TestUserApiScenarios.java
+++ b/entitlement/src/test/java/com/ning/billing/entitlement/api/user/TestUserApiScenarios.java
@@ -52,14 +52,14 @@ public class TestUserApiScenarios extends TestApiBase {
PlanPhase trialPhase = subscription.getCurrentPhase();
assertEquals(trialPhase.getPhaseType(), PhaseType.TRIAL);
- testListener.pushExpectedEvent(NextEvent.CHANGE);
+ testListener.pushNextApiExpectedEvent(NextEvent.CHANGE);
subscription.changePlan("Pistol", BillingPeriod.ANNUAL, "gunclubDiscount", clock.getUTCNow(), context);
- testListener.isCompleted(3000);
+ testListener.isApiCompleted(3000);
// MOVE TO NEXT PHASE
- testListener.pushExpectedEvent(NextEvent.PHASE);
+ testListener.pushNextApiExpectedEvent(NextEvent.PHASE);
clock.setDeltaFromReality(trialPhase.getDuration(), DAY_IN_MS);
- assertTrue(testListener.isCompleted(2000));
+ assertTrue(testListener.isApiCompleted(2000));
// SET CTD
Duration ctd = getDurationMonth(1);
@@ -69,21 +69,21 @@ public class TestUserApiScenarios extends TestApiBase {
subscription = (SubscriptionData) entitlementApi.getSubscriptionFromId(subscription.getId());
// CANCEL EOT
- testListener.pushExpectedEvent(NextEvent.CANCEL);
+ testListener.pushNextApiExpectedEvent(NextEvent.CANCEL);
subscription.cancel(clock.getUTCNow(), false, context);
- assertFalse(testListener.isCompleted(2000));
+ assertFalse(testListener.isApiCompleted(2000));
testListener.reset();
// UNCANCEL
subscription.uncancel(context);
// CHANGE EOT
- testListener.pushExpectedEvent(NextEvent.CHANGE);
+ testListener.pushNextApiExpectedEvent(NextEvent.CHANGE);
subscription.changePlan("Pistol", BillingPeriod.MONTHLY, "gunclubDiscount", clock.getUTCNow(), context);
- assertFalse(testListener.isCompleted(2000));
+ assertFalse(testListener.isApiCompleted(2000));
clock.addDeltaFromReality(ctd);
- assertTrue(testListener.isCompleted(3000));
+ assertTrue(testListener.isApiCompleted(3000));
} catch (EntitlementUserApiException e) {
diff --git a/entitlement/src/test/java/com/ning/billing/entitlement/api/user/TestUserCustomFieldsSql.java b/entitlement/src/test/java/com/ning/billing/entitlement/api/user/TestUserCustomFieldsSql.java
index bbfd42a..25f969e 100644
--- a/entitlement/src/test/java/com/ning/billing/entitlement/api/user/TestUserCustomFieldsSql.java
+++ b/entitlement/src/test/java/com/ning/billing/entitlement/api/user/TestUserCustomFieldsSql.java
@@ -76,8 +76,8 @@ public class TestUserCustomFieldsSql extends TestApiBase {
BillingPeriod term = BillingPeriod.MONTHLY;
String planSetName = PriceListSet.DEFAULT_PRICELIST_NAME;
- testListener.pushExpectedEvent(NextEvent.PHASE);
- testListener.pushExpectedEvent(NextEvent.CREATE);
+ testListener.pushNextApiExpectedEvent(NextEvent.PHASE);
+ testListener.pushNextApiExpectedEvent(NextEvent.CREATE);
SubscriptionData subscription = (SubscriptionData) entitlementApi.createSubscription(bundle.getId(),
getProductSpecifier(productName, planSetName, term, null), requestedDate, context);
assertNotNull(subscription);
@@ -132,8 +132,8 @@ public class TestUserCustomFieldsSql extends TestApiBase {
BillingPeriod term = BillingPeriod.MONTHLY;
String planSetName = PriceListSet.DEFAULT_PRICELIST_NAME;
- testListener.pushExpectedEvent(NextEvent.PHASE);
- testListener.pushExpectedEvent(NextEvent.CREATE);
+ testListener.pushNextApiExpectedEvent(NextEvent.PHASE);
+ testListener.pushNextApiExpectedEvent(NextEvent.CREATE);
SubscriptionData subscription = (SubscriptionData) entitlementApi.createSubscription(bundle.getId(),
getProductSpecifier(productName, planSetName, term, null), requestedDate, context);
assertNotNull(subscription);
diff --git a/entitlement/src/test/java/com/ning/billing/entitlement/engine/dao/MockEntitlementDaoSql.java b/entitlement/src/test/java/com/ning/billing/entitlement/engine/dao/MockEntitlementDaoSql.java
index 5c5b2b5..b048f36 100644
--- a/entitlement/src/test/java/com/ning/billing/entitlement/engine/dao/MockEntitlementDaoSql.java
+++ b/entitlement/src/test/java/com/ning/billing/entitlement/engine/dao/MockEntitlementDaoSql.java
@@ -16,6 +16,7 @@
package com.ning.billing.entitlement.engine.dao;
+import com.ning.billing.util.bus.Bus;
import com.ning.billing.util.customfield.dao.CustomFieldDao;
import com.ning.billing.util.tag.dao.TagDao;
import org.skife.jdbi.v2.IDBI;
@@ -37,8 +38,8 @@ public class MockEntitlementDaoSql extends EntitlementSqlDao implements MockEnti
@Inject
public MockEntitlementDaoSql(IDBI dbi, Clock clock, AddonUtils addonUtils, NotificationQueueService notificationQueueService,
- CustomFieldDao customFieldDao) {
- super(dbi, clock, addonUtils, notificationQueueService, customFieldDao);
+ CustomFieldDao customFieldDao, final Bus eventBus) {
+ super(dbi, clock, addonUtils, notificationQueueService, customFieldDao, eventBus);
this.resetDao = dbi.onDemand(ResetSqlDao.class);
}
pom.xml 2(+1 -1)
diff --git a/pom.xml b/pom.xml
index e0b602f..3ab59e6 100644
--- a/pom.xml
+++ b/pom.xml
@@ -517,7 +517,7 @@
<systemPropertyVariables>
<log4j.configuration>file:${project.basedir}/src/test/resources/log4j.xml</log4j.configuration>
<com.ning.billing.dbi.test.useLocalDb>true</com.ning.billing.dbi.test.useLocalDb>
- <com.ning.billing.dbi.jdbc.url>jdbc:mysql://127.0.0.1:3306/test_killbill</com.ning.billing.dbi.jdbc.url>
+ <com.ning.billing.dbi.jdbc.url>jdbc:mysql://127.0.0.1:3306/killbill</com.ning.billing.dbi.jdbc.url>
<file.encoding>UTF-8</file.encoding>
<user.timezone>GMT</user.timezone>
</systemPropertyVariables>
server/pom.xml 10(+5 -5)
diff --git a/server/pom.xml b/server/pom.xml
index ea39345..6c720bc 100644
--- a/server/pom.xml
+++ b/server/pom.xml
@@ -34,8 +34,7 @@
</properties>
<dependencies>
-
-
+ <!-- Jetty provided scope -->
<dependency>
<groupId>org.eclipse.jetty</groupId>
<artifactId>jetty-http</artifactId>
@@ -80,8 +79,6 @@
<scope>test</scope>
</dependency>
-
-
<!-- NOT in master POM; include version as well -->
<dependency>
<groupId>org.weakref</groupId>
@@ -118,7 +115,6 @@
<artifactId>javax.servlet-api</artifactId>
<version>3.0.1</version>
</dependency>
- <!-- Do we want to depend on skeleton -->
<dependency>
<groupId>com.ning.jetty</groupId>
<artifactId>ning-service-skeleton-base</artifactId>
@@ -233,6 +229,10 @@
<groupId>joda-time</groupId>
<artifactId>joda-time</artifactId>
</dependency>
+ <dependency>
+ <groupId>commons-io</groupId>
+ <artifactId>commons-io</artifactId>
+ </dependency>
<dependency>
<groupId>com.ning</groupId>
<artifactId>async-http-client</artifactId>
diff --git a/server/src/main/java/com/ning/billing/server/listeners/KillbillGuiceListener.java b/server/src/main/java/com/ning/billing/server/listeners/KillbillGuiceListener.java
index 11de6ec..224d637 100644
--- a/server/src/main/java/com/ning/billing/server/listeners/KillbillGuiceListener.java
+++ b/server/src/main/java/com/ning/billing/server/listeners/KillbillGuiceListener.java
@@ -42,8 +42,7 @@ public class KillbillGuiceListener extends SetupServer
private BusService killbillBusService;
private KillbillEventHandler killbilleventHandler;
- protected Injector theInjector;
-
+
protected Module getModule() {
return new KillbillServerModule();
}
@@ -66,7 +65,7 @@ public class KillbillGuiceListener extends SetupServer
super.contextInitialized(event);
logger.info("KillbillLifecycleListener : contextInitialized");
- theInjector = injector(event);
+ Injector theInjector = injector(event);
killbillLifecycle = theInjector.getInstance(DefaultLifecycle.class);
killbillBusService = theInjector.getInstance(BusService.class);
killbilleventHandler = theInjector.getInstance(KillbillEventHandler.class);
diff --git a/server/src/test/java/com/ning/billing/jaxrs/TestJaxrsBase.java b/server/src/test/java/com/ning/billing/jaxrs/TestJaxrsBase.java
index 96e1ed6..a9fba1e 100644
--- a/server/src/test/java/com/ning/billing/jaxrs/TestJaxrsBase.java
+++ b/server/src/test/java/com/ning/billing/jaxrs/TestJaxrsBase.java
@@ -30,6 +30,7 @@ import java.util.concurrent.TimeUnit;
import javax.ws.rs.core.Response.Status;
+import org.apache.commons.io.IOUtils;
import org.codehaus.jackson.map.ObjectMapper;
import org.eclipse.jetty.servlet.FilterHolder;
import org.skife.config.ConfigurationObjectFactory;
@@ -42,13 +43,12 @@ import org.testng.annotations.BeforeClass;
import org.testng.annotations.BeforeMethod;
import org.testng.annotations.BeforeSuite;
-import com.google.inject.Injector;
import com.google.inject.Module;
-import com.google.inject.util.Modules;
import com.ning.billing.account.glue.AccountModule;
import com.ning.billing.analytics.setup.AnalyticsModule;
import com.ning.billing.beatrix.glue.BeatrixModule;
import com.ning.billing.beatrix.integration.TestBusHandler;
+import com.ning.billing.beatrix.integration.TestIntegration;
import com.ning.billing.catalog.api.PriceListSet;
import com.ning.billing.catalog.glue.CatalogModule;
import com.ning.billing.config.PaymentConfig;
@@ -93,13 +93,12 @@ public class TestJaxrsBase {
public static final String HEADER_CONTENT_TYPE = "Content-type";
public static final String CONTENT_TYPE = "application/json";
+ private static TestKillbillGuiceListener listener;
+
+
private MysqlTestingHelper helper;
private HttpServer server;
-
- // YAck...
- private static Injector injector;
-
protected CoreConfig config;
protected AsyncHttpClient httpClient;
protected ObjectMapper mapper;
@@ -117,23 +116,48 @@ public class TestJaxrsBase {
}
public static class TestKillbillGuiceListener extends KillbillGuiceListener {
- public TestKillbillGuiceListener() {
+
+ private final MysqlTestingHelper helper;
+ private final Clock clock;
+
+ public TestKillbillGuiceListener(final MysqlTestingHelper helper, final Clock clock) {
super();
+ this.helper = helper;
+ this.clock = clock;
}
@Override
protected Module getModule() {
- return new TestKillbillServerModule();
+ return new TestKillbillServerModule(helper, clock);
+ }
+
+ //
+ // Listener is created once befire Suite and keeps pointer to helper and clock so they can get
+ // reset for each test Class-- needed in order to ONLY start Jetty once across all the test classes
+ // while still being able to start mysql before Jetty is started
+ //
+ public MysqlTestingHelper getMysqlTestingHelper() {
+ return helper;
}
- public Injector getTheInjector() {
- return theInjector;
+
+ public Clock getClock() {
+ return clock;
}
}
public static class TestKillbillServerModule extends KillbillServerModule {
+ private final MysqlTestingHelper helper;
+ private final Clock clock;
+
+ public TestKillbillServerModule(final MysqlTestingHelper helper, final Clock clock) {
+ super();
+ this.helper = helper;
+ this.clock = clock;
+ }
+
@Override
protected void installClock() {
- bind(Clock.class).to(ClockMock.class).asEagerSingleton();
+ bind(Clock.class).toInstance(clock);
}
@@ -169,7 +193,6 @@ public class TestJaxrsBase {
@Override
protected void configureDao() {
- final MysqlTestingHelper helper = new MysqlTestingHelper();
bind(MysqlTestingHelper.class).toInstance(helper);
if (helper.isUsingLocalInstance()) {
bind(IDBI.class).toProvider(DBIProvider.class).asEagerSingleton();
@@ -183,20 +206,35 @@ public class TestJaxrsBase {
}
@BeforeMethod(groups="slow")
- public void cleanupTables() {
- helper.cleanupAllTables();
+ public void cleanupBeforeMethod() {
busHandler.reset();
+ helper.cleanupAllTables();
}
@BeforeClass(groups="slow")
- public void setupClass() {
-
+ public void setupClass() throws IOException {
loadConfig();
httpClient = new AsyncHttpClient();
mapper = new ObjectMapper();
- helper = injector.getInstance(MysqlTestingHelper.class);
- clock = (ClockMock) injector.getInstance(Clock.class);
busHandler = new TestBusHandler();
+ this.helper = listener.getMysqlTestingHelper();
+ this.clock = (ClockMock) listener.getClock();
+ }
+
+ private void setupMySQL() throws IOException {
+ final String accountDdl = IOUtils.toString(TestIntegration.class.getResourceAsStream("/com/ning/billing/account/ddl.sql"));
+ final String entitlementDdl = IOUtils.toString(TestIntegration.class.getResourceAsStream("/com/ning/billing/entitlement/ddl.sql"));
+ final String invoiceDdl = IOUtils.toString(TestIntegration.class.getResourceAsStream("/com/ning/billing/invoice/ddl.sql"));
+ final String paymentDdl = IOUtils.toString(TestIntegration.class.getResourceAsStream("/com/ning/billing/payment/ddl.sql"));
+ final String utilDdl = IOUtils.toString(TestIntegration.class.getResourceAsStream("/com/ning/billing/util/ddl.sql"));
+
+ helper.startMysql();
+
+ helper.initDb(accountDdl);
+ helper.initDb(entitlementDdl);
+ helper.initDb(invoiceDdl);
+ helper.initDb(paymentDdl);
+ helper.initDb(utilDdl);
}
@@ -210,33 +248,39 @@ public class TestJaxrsBase {
public void setup() throws Exception {
loadSystemPropertiesFromClasspath("/killbill.properties");
-
- final EventListener eventListener = new TestKillbillGuiceListener();
- server = new HttpServer();
loadConfig();
+
+ this.helper = new MysqlTestingHelper();
+ this.clock = new ClockMock();
+ listener = new TestKillbillGuiceListener(helper, clock);
+ server = new HttpServer();
+
final Iterable<EventListener> eventListeners = new Iterable<EventListener>() {
@Override
public Iterator<EventListener> iterator() {
ArrayList<EventListener> array = new ArrayList<EventListener>();
- array.add(eventListener);
+ array.add(listener);
return array.iterator();
}
};
server.configure(config, eventListeners, new HashMap<FilterHolder, String>());
+
+ setupMySQL();
+ helper.cleanupAllTables();
+
server.start();
- injector = ((TestKillbillGuiceListener) eventListener).getTheInjector();
}
@AfterSuite(groups="slow")
public void tearDown() {
- if (helper != null) {
- helper.stopMysql();
- }
try {
server.stop();
} catch (Exception e) {
}
+ if (helper != null) {
+ helper.stopMysql();
+ }
}
diff --git a/server/src/test/resources/killbill.properties b/server/src/test/resources/killbill.properties
index 2ff0814..3463266 100644
--- a/server/src/test/resources/killbill.properties
+++ b/server/src/test/resources/killbill.properties
@@ -1,5 +1,5 @@
-# Use killbill util test properties (DbiProvider/MysqltestingHelper) on the test side configured with test_killbill
-com.ning.billing.dbi.jdbc.url=jdbc:mysql://127.0.0.1:3306/test_killbill
+# Use killbill util test properties (DbiProvider/MysqltestingHelper) on the test side configured with killbill
+com.ning.billing.dbi.jdbc.url=jdbc:mysql://127.0.0.1:3306/killbill
killbill.catalog.uri=file:src/test/resources/catalog-weapons.xml
@@ -8,9 +8,10 @@ killbill.payment.retry.days=8,8,8
user.timezone=UTC
-com.ning.billing.dbi.test.useLocalDb=true
-
com.ning.core.server.jetty.logPath=/var/tmp/.logs
+# Local DB
+#com.ning.billing.dbi.test.useLocalDb=true
+
diff --git a/util/src/test/java/com/ning/billing/dbi/MysqlTestingHelper.java b/util/src/test/java/com/ning/billing/dbi/MysqlTestingHelper.java
index 9995229..1b0d9f6 100644
--- a/util/src/test/java/com/ning/billing/dbi/MysqlTestingHelper.java
+++ b/util/src/test/java/com/ning/billing/dbi/MysqlTestingHelper.java
@@ -46,7 +46,7 @@ public class MysqlTestingHelper
private static final Logger log = LoggerFactory.getLogger(MysqlTestingHelper.class);
- private static final String DB_NAME = "test_killbill";
+ private static final String DB_NAME = "killbill";
private static final String USERNAME = "root";
private static final String PASSWORD = "root";