killbill-uncached
Changes
entitlement/src/main/java/com/ning/billing/entitlement/api/billing/DefaultBillingEvent.java 13(+12 -1)
entitlement/src/main/java/com/ning/billing/entitlement/api/user/SubscriptionTransitionData.java 9(+8 -1)
entitlement/src/test/java/com/ning/billing/entitlement/api/billing/TestDefaultBillingEvent.java 2(+1 -1)
Details
diff --git a/analytics/src/test/java/com/ning/billing/analytics/api/TestAnalyticsService.java b/analytics/src/test/java/com/ning/billing/analytics/api/TestAnalyticsService.java
index 852d4fc..abffae5 100644
--- a/analytics/src/test/java/com/ning/billing/analytics/api/TestAnalyticsService.java
+++ b/analytics/src/test/java/com/ning/billing/analytics/api/TestAnalyticsService.java
@@ -208,6 +208,7 @@ public class TestAnalyticsService {
plan,
phase,
priceList,
+ 1L,
true
);
expectedTransition = new BusinessSubscriptionTransition(
diff --git a/analytics/src/test/java/com/ning/billing/analytics/TestAnalyticsListener.java b/analytics/src/test/java/com/ning/billing/analytics/TestAnalyticsListener.java
index 79bea58..6d8e587 100644
--- a/analytics/src/test/java/com/ning/billing/analytics/TestAnalyticsListener.java
+++ b/analytics/src/test/java/com/ning/billing/analytics/TestAnalyticsListener.java
@@ -144,6 +144,7 @@ public class TestAnalyticsListener
plan,
phase,
priceList,
+ 1L,
true
);
}
@@ -169,6 +170,7 @@ public class TestAnalyticsListener
null,
null,
null,
+ 1L,
true
);
}
@@ -197,6 +199,7 @@ public class TestAnalyticsListener
plan,
phase,
priceList,
+ 1L,
true
);
}
diff --git a/api/src/main/java/com/ning/billing/entitlement/api/billing/BillingEvent.java b/api/src/main/java/com/ning/billing/entitlement/api/billing/BillingEvent.java
index 2628b36..8eb8ed8 100644
--- a/api/src/main/java/com/ning/billing/entitlement/api/billing/BillingEvent.java
+++ b/api/src/main/java/com/ning/billing/entitlement/api/billing/BillingEvent.java
@@ -79,13 +79,13 @@ public interface BillingEvent extends Comparable<BillingEvent> {
public String getDescription();
/**
- *
+ *
* @return the fixed price for the phase
*/
public InternationalPrice getFixedPrice();
/**
- *
+ *
* @return the recurring price for the phase
*/
public InternationalPrice getRecurringPrice();
@@ -94,4 +94,10 @@ public interface BillingEvent extends Comparable<BillingEvent> {
* @return the transition type of the underlying subscription event that triggered this
*/
public SubscriptionTransitionType getTransitionType();
+
+ /**
+ * @return a unique long indicating the ordering on which events got inserted on disk-- used for sorting only
+ */
+ public long getTotalOrdering();
+
}
diff --git a/beatrix/src/test/java/com/ning/billing/beatrix/integration/TestBasic.java b/beatrix/src/test/java/com/ning/billing/beatrix/integration/TestBasic.java
index fad00af..178ad0f 100644
--- a/beatrix/src/test/java/com/ning/billing/beatrix/integration/TestBasic.java
+++ b/beatrix/src/test/java/com/ning/billing/beatrix/integration/TestBasic.java
@@ -238,25 +238,25 @@ public class TestBasic {
assertTrue(ctd.compareTo(chargeThroughDate) == 0);
}
- @Test(groups = "fast", enabled = true)
+ @Test(groups = "slow", enabled = true)
public void testBasePlanCompleteWithBillingDayInPast() throws Exception {
DateTime startDate = new DateTime(2012, 2, 1, 0, 3, 42, 0);
testBasePlanComplete(startDate, 31, false);
}
- @Test(groups = "fast", enabled = true)
+ @Test(groups = "slow", enabled = true)
public void testBasePlanCompleteWithBillingDayPresent() throws Exception {
DateTime startDate = new DateTime(2012, 2, 1, 0, 3, 42, 0);
testBasePlanComplete(startDate, 1, false);
}
- @Test(groups = "fast", enabled = true)
+ @Test(groups = "slow", enabled = true)
public void testBasePlanCompleteWithBillingDayAlignedWithTrial() throws Exception {
DateTime startDate = new DateTime(2012, 2, 1, 0, 3, 42, 0);
testBasePlanComplete(startDate, 2, false);
}
- @Test(groups = "fast", enabled = true)
+ @Test(groups = "slow", enabled = true)
public void testBasePlanCompleteWithBillingDayInFuture() throws Exception {
DateTime startDate = new DateTime(2012, 2, 1, 0, 3, 42, 0);
testBasePlanComplete(startDate, 3, true);
@@ -266,7 +266,7 @@ public class TestBasic {
Thread.sleep(600000);
}
- @Test(groups = "stress", enabled = true)
+ @Test(groups = "stress", enabled = false)
public void stressTest() throws Exception {
final int maxIterations = 7;
for (int curIteration = 0; curIteration < maxIterations; curIteration++) {
diff --git a/entitlement/src/main/java/com/ning/billing/entitlement/api/billing/DefaultBillingEvent.java b/entitlement/src/main/java/com/ning/billing/entitlement/api/billing/DefaultBillingEvent.java
index 11c5a79..3a8ce9a 100644
--- a/entitlement/src/main/java/com/ning/billing/entitlement/api/billing/DefaultBillingEvent.java
+++ b/entitlement/src/main/java/com/ning/billing/entitlement/api/billing/DefaultBillingEvent.java
@@ -28,6 +28,7 @@ import com.ning.billing.catalog.api.PlanPhase;
import com.ning.billing.entitlement.api.user.Subscription;
import com.ning.billing.entitlement.api.user.SubscriptionTransition;
import com.ning.billing.entitlement.api.user.SubscriptionTransition.SubscriptionTransitionType;
+import com.ning.billing.entitlement.api.user.SubscriptionTransitionData;
public class DefaultBillingEvent implements BillingEvent {
Logger log = LoggerFactory.getLogger(DefaultBillingEvent.class);
@@ -43,6 +44,7 @@ public class DefaultBillingEvent implements BillingEvent {
final private BillingModeType billingModeType;
final private BillingPeriod billingPeriod;
final private SubscriptionTransitionType type;
+ final private long totalOrdering;
public DefaultBillingEvent(SubscriptionTransition transition, Subscription subscription, int billCycleDay) {
this.billCycleDay = billCycleDay;
@@ -61,11 +63,13 @@ public class DefaultBillingEvent implements BillingEvent {
billingPeriod = (transition.getTransitionType() != SubscriptionTransitionType.CANCEL) ?
transition.getNextPhase().getBillingPeriod() : transition.getPreviousPhase().getBillingPeriod();
type = transition.getTransitionType();
+ totalOrdering = ((SubscriptionTransitionData) transition).getTotalOrdering();
}
// Intended for test only
public DefaultBillingEvent(Subscription subscription, DateTime effectiveDate, Plan plan, PlanPhase planPhase, InternationalPrice fixedPrice,
- InternationalPrice recurringPrice, BillingPeriod billingPeriod, int billCycleDay, BillingModeType billingModeType, String description, SubscriptionTransitionType type) {
+ InternationalPrice recurringPrice, BillingPeriod billingPeriod, int billCycleDay, BillingModeType billingModeType, String description,
+ long totalOrdering, SubscriptionTransitionType type) {
this.subscription = subscription;
this.effectiveDate = effectiveDate;
this.plan = plan;
@@ -77,8 +81,10 @@ public class DefaultBillingEvent implements BillingEvent {
this.billingModeType = billingModeType;
this.description = description;
this.type = type;
+ this.totalOrdering = totalOrdering;
}
+
@Override
public int compareTo(BillingEvent e1) {
if (!getSubscription().getId().equals(e1.getSubscription().getId())) { // First order by subscription
@@ -152,6 +158,11 @@ public class DefaultBillingEvent implements BillingEvent {
}
@Override
+ public long getTotalOrdering() {
+ return totalOrdering;
+ }
+
+ @Override
public String toString() {
StringBuilder sb = new StringBuilder();
sb.append("BillingEvent {subscriptionId = ").append(subscription.getId().toString()).append(", ");
diff --git a/entitlement/src/main/java/com/ning/billing/entitlement/api/user/SubscriptionData.java b/entitlement/src/main/java/com/ning/billing/entitlement/api/user/SubscriptionData.java
index 3699d88..138528d 100644
--- a/entitlement/src/main/java/com/ning/billing/entitlement/api/user/SubscriptionData.java
+++ b/entitlement/src/main/java/com/ning/billing/entitlement/api/user/SubscriptionData.java
@@ -475,6 +475,7 @@ public class SubscriptionData extends CustomizableEntityBase implements Subscrip
nextPlan,
nextPhase,
nextPriceList,
+ cur.getTotalOrdering(),
isFromDisk);
transitions.add(transition);
diff --git a/entitlement/src/main/java/com/ning/billing/entitlement/api/user/SubscriptionTransitionData.java b/entitlement/src/main/java/com/ning/billing/entitlement/api/user/SubscriptionTransitionData.java
index fb8e2f2..f03193b 100644
--- a/entitlement/src/main/java/com/ning/billing/entitlement/api/user/SubscriptionTransitionData.java
+++ b/entitlement/src/main/java/com/ning/billing/entitlement/api/user/SubscriptionTransitionData.java
@@ -29,6 +29,7 @@ import java.util.UUID;
public class SubscriptionTransitionData implements SubscriptionTransition {
+ private final long totalOrdering;
private final UUID subscriptionId;
private final UUID bundleId;
private final UUID eventId;
@@ -49,7 +50,8 @@ public class SubscriptionTransitionData implements SubscriptionTransition {
public SubscriptionTransitionData(UUID eventId, UUID subscriptionId, UUID bundleId, EventType eventType,
ApiEventType apiEventType, DateTime requestedTransitionTime, DateTime effectiveTransitionTime,
SubscriptionState previousState, Plan previousPlan, PlanPhase previousPhase, String previousPriceList,
- SubscriptionState nextState, Plan nextPlan, PlanPhase nextPhase, String nextPriceList, boolean isFromDisk) {
+ SubscriptionState nextState, Plan nextPlan, PlanPhase nextPhase, String nextPriceList,
+ long totalOrdering, boolean isFromDisk) {
super();
this.eventId = eventId;
this.subscriptionId = subscriptionId;
@@ -66,6 +68,7 @@ public class SubscriptionTransitionData implements SubscriptionTransition {
this.nextPlan = nextPlan;
this.nextPriceList = nextPriceList;
this.nextPhase = nextPhase;
+ this.totalOrdering = totalOrdering;
this.isFromDisk = isFromDisk;
}
@@ -148,6 +151,10 @@ public class SubscriptionTransitionData implements SubscriptionTransition {
return effectiveTransitionTime;
}
+ public long getTotalOrdering() {
+ return totalOrdering;
+ }
+
public boolean isFromDisk() {
return isFromDisk;
}
diff --git a/entitlement/src/main/java/com/ning/billing/entitlement/engine/dao/EventSqlDao.java b/entitlement/src/main/java/com/ning/billing/entitlement/engine/dao/EventSqlDao.java
index 67c60c0..203877f 100644
--- a/entitlement/src/main/java/com/ning/billing/entitlement/engine/dao/EventSqlDao.java
+++ b/entitlement/src/main/java/com/ning/billing/entitlement/engine/dao/EventSqlDao.java
@@ -107,6 +107,7 @@ public interface EventSqlDao extends Transactional<EventSqlDao>, CloseMe, Transm
public EntitlementEvent map(int index, ResultSet r, StatementContext ctx)
throws SQLException {
+ long totalOrdering = r.getLong("id");
UUID id = UUID.fromString(r.getString("event_id"));
EventType eventType = EventType.valueOf(r.getString("event_type"));
ApiEventType userType = (eventType == EventType.API_USER) ? ApiEventType.valueOf(r.getString("user_type")) : null;
@@ -123,6 +124,7 @@ public interface EventSqlDao extends Transactional<EventSqlDao>, CloseMe, Transm
EventBaseBuilder<?> base = ((eventType == EventType.PHASE) ?
new PhaseEventBuilder() :
new ApiEventBuilder())
+ .setTotalOrdering(totalOrdering)
.setUuid(id)
.setSubscriptionId(subscriptionId)
.setRequestedDate(requestedDate)
diff --git a/entitlement/src/main/java/com/ning/billing/entitlement/events/EntitlementEvent.java b/entitlement/src/main/java/com/ning/billing/entitlement/events/EntitlementEvent.java
index b7bfece..d3895c0 100644
--- a/entitlement/src/main/java/com/ning/billing/entitlement/events/EntitlementEvent.java
+++ b/entitlement/src/main/java/com/ning/billing/entitlement/events/EntitlementEvent.java
@@ -30,6 +30,8 @@ public interface EntitlementEvent extends Comparable<EntitlementEvent> {
public EventType getType();
+ public long getTotalOrdering();
+
public UUID getId();
public long getActiveVersion();
diff --git a/entitlement/src/main/java/com/ning/billing/entitlement/events/EventBase.java b/entitlement/src/main/java/com/ning/billing/entitlement/events/EventBase.java
index 9420fbf..5861e5d 100644
--- a/entitlement/src/main/java/com/ning/billing/entitlement/events/EventBase.java
+++ b/entitlement/src/main/java/com/ning/billing/entitlement/events/EventBase.java
@@ -24,6 +24,7 @@ import java.util.UUID;
public abstract class EventBase implements EntitlementEvent {
+ private final long totalOrdering;
private final UUID uuid;
private final UUID subscriptionId;
private final DateTime requestedDate;
@@ -34,6 +35,7 @@ public abstract class EventBase implements EntitlementEvent {
private boolean isActive;
public EventBase(EventBaseBuilder<?> builder) {
+ this.totalOrdering = builder.getTotalOrdering();
this.uuid = builder.getUuid();
this.subscriptionId = builder.getSubscriptionId();
this.requestedDate = builder.getRequestedDate();
@@ -43,7 +45,7 @@ public abstract class EventBase implements EntitlementEvent {
this.activeVersion = builder.getActiveVersion();
this.isActive = builder.isActive();
}
-
+/*
public EventBase(UUID subscriptionId, DateTime requestedDate,
DateTime effectiveDate, DateTime processedDate,
long activeVersion, boolean isActive) {
@@ -62,7 +64,7 @@ public abstract class EventBase implements EntitlementEvent {
this.activeVersion = activeVersion;
this.isActive = isActive;
}
-
+*/
@Override
public DateTime getRequestedDate() {
@@ -85,11 +87,16 @@ public abstract class EventBase implements EntitlementEvent {
}
@Override
+ public long getTotalOrdering() {
+ return totalOrdering;
+ }
+
+
+ @Override
public UUID getId() {
return uuid;
}
-
@Override
public long getActiveVersion() {
return activeVersion;
diff --git a/entitlement/src/main/java/com/ning/billing/entitlement/events/EventBaseBuilder.java b/entitlement/src/main/java/com/ning/billing/entitlement/events/EventBaseBuilder.java
index 17f5e15..e74ea69 100644
--- a/entitlement/src/main/java/com/ning/billing/entitlement/events/EventBaseBuilder.java
+++ b/entitlement/src/main/java/com/ning/billing/entitlement/events/EventBaseBuilder.java
@@ -23,6 +23,7 @@ import java.util.UUID;
@SuppressWarnings("unchecked")
public class EventBaseBuilder<T extends EventBaseBuilder<T>> {
+ private long totalOrdering;
private UUID uuid;
private UUID subscriptionId;
private DateTime requestedDate;
@@ -49,6 +50,11 @@ public class EventBaseBuilder<T extends EventBaseBuilder<T>> {
this.isActive = copy.isActive;
}
+ public T setTotalOrdering(long totalOrdering) {
+ this.totalOrdering = totalOrdering;
+ return (T) this;
+ }
+
public T setUuid(UUID uuid) {
this.uuid = uuid;
return (T) this;
@@ -84,6 +90,10 @@ public class EventBaseBuilder<T extends EventBaseBuilder<T>> {
return (T) this;
}
+ public long getTotalOrdering() {
+ return totalOrdering;
+ }
+
public UUID getUuid() {
return uuid;
}
diff --git a/entitlement/src/main/resources/com/ning/billing/entitlement/engine/dao/EventSqlDao.sql.stg b/entitlement/src/main/resources/com/ning/billing/entitlement/engine/dao/EventSqlDao.sql.stg
index 10f565d..b639dce 100644
--- a/entitlement/src/main/resources/com/ning/billing/entitlement/engine/dao/EventSqlDao.sql.stg
+++ b/entitlement/src/main/resources/com/ning/billing/entitlement/engine/dao/EventSqlDao.sql.stg
@@ -2,7 +2,8 @@ group EventSqlDao;
getEventById(event_id) ::= <<
select
- event_id
+ id
+ , event_id
, event_type
, user_type
, created_dt
@@ -82,7 +83,8 @@ reactiveEvent(event_id, now) ::= <<
getFutureActiveEventForSubscription(subscription_id, now) ::= <<
select
- event_id
+ id
+ , event_id
, event_type
, user_type
, created_dt
@@ -110,7 +112,8 @@ getFutureActiveEventForSubscription(subscription_id, now) ::= <<
getEventsForSubscription(subscription_id) ::= <<
select
- event_id
+ id
+ , event_id
, event_type
, user_type
, created_dt
diff --git a/entitlement/src/test/java/com/ning/billing/entitlement/api/billing/TestDefaultBillingEvent.java b/entitlement/src/test/java/com/ning/billing/entitlement/api/billing/TestDefaultBillingEvent.java
index fc3362a..63ac93b 100644
--- a/entitlement/src/test/java/com/ning/billing/entitlement/api/billing/TestDefaultBillingEvent.java
+++ b/entitlement/src/test/java/com/ning/billing/entitlement/api/billing/TestDefaultBillingEvent.java
@@ -135,7 +135,7 @@ public class TestDefaultBillingEvent {
return new DefaultBillingEvent(sub , effectiveDate,
shotgun, shotgunMonthly,
zeroPrice, null, BillingPeriod.NO_BILLING_PERIOD, billCycleDay,
- BillingModeType.IN_ADVANCE, "Test Event 1", type);
+ BillingModeType.IN_ADVANCE, "Test Event 1", 1L, type);
}
private MockPlanPhase createMockMonthlyPlanPhase(@Nullable final BigDecimal recurringRate,
diff --git a/entitlement/src/test/java/com/ning/billing/entitlement/api/billing/TestDefaultEntitlementBillingApi.java b/entitlement/src/test/java/com/ning/billing/entitlement/api/billing/TestDefaultEntitlementBillingApi.java
index 21ed6fa..a7d04ae 100644
--- a/entitlement/src/test/java/com/ning/billing/entitlement/api/billing/TestDefaultEntitlementBillingApi.java
+++ b/entitlement/src/test/java/com/ning/billing/entitlement/api/billing/TestDefaultEntitlementBillingApi.java
@@ -141,7 +141,7 @@ public class TestDefaultEntitlementBillingApi {
PlanPhase nextPhase = nextPlan.getAllPhases()[0]; // The trial has no billing period
String nextPriceList = PriceListSet.DEFAULT_PRICELIST_NAME;
SubscriptionTransition t = new SubscriptionTransitionData(
- zeroId, oneId, twoId, EventType.API_USER, ApiEventType.CREATE, then, now, null, null, null, null, SubscriptionState.ACTIVE, nextPlan, nextPhase, nextPriceList, true);
+ zeroId, oneId, twoId, EventType.API_USER, ApiEventType.CREATE, then, now, null, null, null, null, SubscriptionState.ACTIVE, nextPlan, nextPhase, nextPriceList, 1, true);
transitions.add(t);
AccountUserApi accountApi = new BrainDeadAccountUserApi(){
@@ -166,7 +166,7 @@ public class TestDefaultEntitlementBillingApi {
PlanPhase nextPhase = nextPlan.getAllPhases()[1];
String nextPriceList = PriceListSet.DEFAULT_PRICELIST_NAME;
SubscriptionTransition t = new SubscriptionTransitionData(
- zeroId, oneId, twoId, EventType.API_USER, ApiEventType.CREATE, then, now, null, null, null, null, SubscriptionState.ACTIVE, nextPlan, nextPhase, nextPriceList, true);
+ zeroId, oneId, twoId, EventType.API_USER, ApiEventType.CREATE, then, now, null, null, null, null, SubscriptionState.ACTIVE, nextPlan, nextPhase, nextPriceList, 1, true);
transitions.add(t);
Account account = BrainDeadProxyFactory.createBrainDeadProxyFor(Account.class);
@@ -188,18 +188,19 @@ public class TestDefaultEntitlementBillingApi {
PlanPhase nextPhase = nextPlan.getAllPhases()[1];
String nextPriceList = PriceListSet.DEFAULT_PRICELIST_NAME;
SubscriptionTransition t = new SubscriptionTransitionData(
- zeroId, oneId, twoId, EventType.API_USER, ApiEventType.CREATE, then, now, null, null, null, null, SubscriptionState.ACTIVE, nextPlan, nextPhase, nextPriceList, true);
+ zeroId, oneId, twoId, EventType.API_USER, ApiEventType.CREATE, then, now, null, null, null, null, SubscriptionState.ACTIVE, nextPlan, nextPhase, nextPriceList, 1, true);
transitions.add(t);
AccountUserApi accountApi = new BrainDeadAccountUserApi(){
- @Override
- public Account getAccountById(UUID accountId) {
- return new BrainDeadAccount(){@Override
- public int getBillCycleDay() {
- return 32;
- }};
- }} ;
+ @Override
+ public Account getAccountById(UUID accountId) {
+ return new BrainDeadAccount(){
+ @Override
+ public int getBillCycleDay() {
+ return 32;
+ }};
+ }} ;
DefaultEntitlementBillingApi api = new DefaultEntitlementBillingApi(dao,accountApi,catalogService);
SortedSet<BillingEvent> events = api.getBillingEventsForAccount(new UUID(0L,0L));
checkFirstEvent(events, nextPlan, 32, oneId, now, nextPhase, ApiEventType.CREATE.toString());
@@ -213,7 +214,7 @@ public class TestDefaultEntitlementBillingApi {
PlanPhase nextPhase = nextPlan.getAllPhases()[0];
String nextPriceList = PriceListSet.DEFAULT_PRICELIST_NAME;
SubscriptionTransition t = new SubscriptionTransitionData(
- zeroId, oneId, twoId, EventType.API_USER, ApiEventType.CREATE, then, now, null, null, null, null, SubscriptionState.ACTIVE, nextPlan, nextPhase, nextPriceList, true);
+ zeroId, oneId, twoId, EventType.API_USER, ApiEventType.CREATE, then, now, null, null, null, null, SubscriptionState.ACTIVE, nextPlan, nextPhase, nextPriceList, 1, true);
transitions.add(t);
Account account = BrainDeadProxyFactory.createBrainDeadProxyFor(Account.class);
diff --git a/invoice/src/test/java/com/ning/billing/invoice/dao/InvoiceDaoTests.java b/invoice/src/test/java/com/ning/billing/invoice/dao/InvoiceDaoTests.java
index b46247a..755e510 100644
--- a/invoice/src/test/java/com/ning/billing/invoice/dao/InvoiceDaoTests.java
+++ b/invoice/src/test/java/com/ning/billing/invoice/dao/InvoiceDaoTests.java
@@ -516,7 +516,7 @@ public class InvoiceDaoTests extends InvoiceDaoTestBase {
DateTime effectiveDate1 = new DateTime(2011, 2, 1, 0, 0, 0, 0);
BillingEvent event1 = new DefaultBillingEvent(subscription, effectiveDate1, plan1, phase1, null,
recurringPrice, BillingPeriod.MONTHLY, 1, BillingModeType.IN_ADVANCE,
- "testEvent1", SubscriptionTransitionType.CREATE);
+ "testEvent1", 1L, SubscriptionTransitionType.CREATE);
BillingEventSet events = new BillingEventSet();
events.add(event1);
@@ -534,7 +534,7 @@ public class InvoiceDaoTests extends InvoiceDaoTestBase {
DateTime effectiveDate2 = new DateTime(2011, 2, 15, 0, 0, 0, 0);
BillingEvent event2 = new DefaultBillingEvent(subscription, effectiveDate2, plan2, phase2, null,
recurringPrice2, BillingPeriod.MONTHLY, 1, BillingModeType.IN_ADVANCE,
- "testEvent2", SubscriptionTransitionType.CREATE);
+ "testEvent2", 1L, SubscriptionTransitionType.CREATE);
events.add(event2);
// second invoice should be for one half (14/28 days) the difference between the rate plans
@@ -566,7 +566,7 @@ public class InvoiceDaoTests extends InvoiceDaoTestBase {
BillingEvent event = new DefaultBillingEvent(subscription, effectiveDate, plan, phase, null,
recurringPrice, BillingPeriod.MONTHLY, 15, BillingModeType.IN_ADVANCE,
- "testEvent", SubscriptionTransitionType.CREATE);
+ "testEvent", 1L, SubscriptionTransitionType.CREATE);
BillingEventSet events = new BillingEventSet();
events.add(event);
@@ -598,7 +598,7 @@ public class InvoiceDaoTests extends InvoiceDaoTestBase {
BillingEvent event1 = new DefaultBillingEvent(subscription, effectiveDate1, plan, phase1, fixedPrice,
null, BillingPeriod.MONTHLY, 1, BillingModeType.IN_ADVANCE,
- "testEvent1", SubscriptionTransitionType.CREATE);
+ "testEvent1", 1L, SubscriptionTransitionType.CREATE);
BillingEventSet events = new BillingEventSet();
events.add(event1);
@@ -613,7 +613,7 @@ public class InvoiceDaoTests extends InvoiceDaoTestBase {
DateTime effectiveDate2 = effectiveDate1.plusDays(30);
BillingEvent event2 = new DefaultBillingEvent(subscription, effectiveDate2, plan, phase2, null,
recurringPrice, BillingPeriod.MONTHLY, 31, BillingModeType.IN_ADVANCE,
- "testEvent2", SubscriptionTransitionType.CHANGE);
+ "testEvent2", 1L, SubscriptionTransitionType.CHANGE);
events.add(event2);
Invoice invoice2 = generator.generateInvoice(UUID.randomUUID(), events, existingItems, effectiveDate2, Currency.USD);
@@ -657,14 +657,14 @@ public class InvoiceDaoTests extends InvoiceDaoTestBase {
BillingEvent event1 = new DefaultBillingEvent(subscription, effectiveDate1, plan, phase1, fixedPrice,
null, BillingPeriod.MONTHLY, 1, BillingModeType.IN_ADVANCE,
- "testEvent1", SubscriptionTransitionType.CREATE);
+ "testEvent1", 1L, SubscriptionTransitionType.CREATE);
BillingEventSet events = new BillingEventSet();
events.add(event1);
DateTime effectiveDate2 = effectiveDate1.plusDays(30);
BillingEvent event2 = new DefaultBillingEvent(subscription, effectiveDate2, plan, phase2, null,
recurringPrice, BillingPeriod.MONTHLY, 31, BillingModeType.IN_ADVANCE,
- "testEvent2", SubscriptionTransitionType.CHANGE);
+ "testEvent2", 1L, SubscriptionTransitionType.CHANGE);
events.add(event2);
InvoiceGenerator generator = new DefaultInvoiceGenerator(clock);
diff --git a/invoice/src/test/java/com/ning/billing/invoice/TestInvoiceDispatcher.java b/invoice/src/test/java/com/ning/billing/invoice/TestInvoiceDispatcher.java
index 987dd4d..54597f7 100644
--- a/invoice/src/test/java/com/ning/billing/invoice/TestInvoiceDispatcher.java
+++ b/invoice/src/test/java/com/ning/billing/invoice/TestInvoiceDispatcher.java
@@ -69,13 +69,13 @@ public class TestInvoiceDispatcher {
private InvoiceDao invoiceDao;
@Inject
private GlobalLocker locker;
-
+
@Inject
private MysqlTestingHelper helper;
-
+
@Inject
NextBillingDateNotifier notifier;
-
+
@Inject
private BusService busService;
@@ -101,7 +101,7 @@ public class TestInvoiceDispatcher {
helper.initDb(utilDdl);
notifier.initialize();
notifier.start();
-
+
busService.getBus().start();
}
@@ -116,7 +116,7 @@ public class TestInvoiceDispatcher {
((ZombieControl)accountUserApi).addResult("getAccountById", account);
((ZombieControl)account).addResult("getCurrency", Currency.USD);
((ZombieControl)account).addResult("getId", accountId);
-
+
Subscription subscription = BrainDeadProxyFactory.createBrainDeadProxyFor(Subscription.class);
((ZombieControl)subscription).addResult("getId", subscriptionId);
SortedSet<BillingEvent> events = new TreeSet<BillingEvent>();
@@ -125,34 +125,34 @@ public class TestInvoiceDispatcher {
DateTime effectiveDate = new DateTime().minusDays(1);
InternationalPrice reccurringPrice = MockInternationalPrice.create1USD();
InternationalPrice fixedPrice = null;
- events.add(new DefaultBillingEvent(subscription, effectiveDate,plan,planPhase, fixedPrice , reccurringPrice, BillingPeriod.MONTHLY, 1, BillingModeType.IN_ADVANCE,"", SubscriptionTransitionType.CREATE));
+ events.add(new DefaultBillingEvent(subscription, effectiveDate,plan,planPhase, fixedPrice , reccurringPrice, BillingPeriod.MONTHLY, 1, BillingModeType.IN_ADVANCE,"", 1L, SubscriptionTransitionType.CREATE));
EntitlementBillingApi entitlementBillingApi = BrainDeadProxyFactory.createBrainDeadProxyFor(EntitlementBillingApi.class);
((ZombieControl)entitlementBillingApi).addResult("getBillingEventsForAccount", events);
-
-
+
+
DateTime target = new DateTime();
-
+
InvoiceDispatcher dispatcher = new InvoiceDispatcher(generator, accountUserApi, entitlementBillingApi, invoiceDao, locker);
-
+
Invoice invoice = dispatcher.processAccount(accountId, target, true);
Assert.assertNotNull(invoice);
-
+
List<Invoice> invoices = invoiceDao.getInvoicesByAccount(accountId);
Assert.assertEquals(invoices.size(),0);
-
+
// Try it again to double check
invoice = dispatcher.processAccount(accountId, target, true);
Assert.assertNotNull(invoice);
-
+
invoices = invoiceDao.getInvoicesByAccount(accountId);
Assert.assertEquals(invoices.size(),0);
-
+
// This time no dry run
invoice = dispatcher.processAccount(accountId, target, false);
Assert.assertNotNull(invoice);
-
+
invoices = invoiceDao.getInvoicesByAccount(accountId);
Assert.assertEquals(invoices.size(),1);
-
+
}
}
diff --git a/invoice/src/test/java/com/ning/billing/invoice/tests/DefaultInvoiceGeneratorTests.java b/invoice/src/test/java/com/ning/billing/invoice/tests/DefaultInvoiceGeneratorTests.java
index e633755..6b95ae5 100644
--- a/invoice/src/test/java/com/ning/billing/invoice/tests/DefaultInvoiceGeneratorTests.java
+++ b/invoice/src/test/java/com/ning/billing/invoice/tests/DefaultInvoiceGeneratorTests.java
@@ -470,13 +470,13 @@ public class DefaultInvoiceGeneratorTests extends InvoicingTestBase {
BillingEvent event1 = new DefaultBillingEvent(subscription, new DateTime("2012-01-1T00:00:00.000-08:00"),
plan, phase1,
zeroPrice, null, BillingPeriod.NO_BILLING_PERIOD, 1,
- BillingModeType.IN_ADVANCE, "Test Event 1",
+ BillingModeType.IN_ADVANCE, "Test Event 1", 1L,
SubscriptionTransitionType.CREATE);
BillingEvent event2 = new DefaultBillingEvent(subscription, changeDate,
plan, phase2,
zeroPrice, null, BillingPeriod.NO_BILLING_PERIOD, 1,
- BillingModeType.IN_ADVANCE, "Test Event 2",
+ BillingModeType.IN_ADVANCE, "Test Event 2", 1L,
SubscriptionTransitionType.PHASE);
events.add(event2);
@@ -597,7 +597,7 @@ public class DefaultInvoiceGeneratorTests extends InvoicingTestBase {
return new DefaultBillingEvent(sub, startDate, plan, planPhase,
planPhase.getFixedPrice(),
planPhase.getRecurringPrice(), planPhase.getBillingPeriod(),
- billCycleDay, BillingModeType.IN_ADVANCE,"Test", SubscriptionTransitionType.CREATE);
+ billCycleDay, BillingModeType.IN_ADVANCE,"Test", 1L, SubscriptionTransitionType.CREATE);
}
private void testInvoiceGeneration(final BillingEventSet events, final InvoiceItemList existingInvoiceItems,