killbill-uncached
Changes
entitlement/src/main/java/com/ning/billing/entitlement/api/billing/DefaultBillingEvent.java 43(+43 -0)
Details
diff --git a/api/src/main/java/com/ning/billing/account/api/AccountUserApi.java b/api/src/main/java/com/ning/billing/account/api/AccountUserApi.java
index 05d8660..9ee1920 100644
--- a/api/src/main/java/com/ning/billing/account/api/AccountUserApi.java
+++ b/api/src/main/java/com/ning/billing/account/api/AccountUserApi.java
@@ -31,6 +31,7 @@ public interface AccountUserApi {
*
* Note: does not update the external key
* @param account
+ * @throws AccountApiException
*/
public void updateAccount(Account account) throws AccountApiException;
diff --git a/api/src/main/java/com/ning/billing/invoice/api/InvoiceUserApi.java b/api/src/main/java/com/ning/billing/invoice/api/InvoiceUserApi.java
index 977d6f7..75337e3 100644
--- a/api/src/main/java/com/ning/billing/invoice/api/InvoiceUserApi.java
+++ b/api/src/main/java/com/ning/billing/invoice/api/InvoiceUserApi.java
@@ -32,8 +32,6 @@ public interface InvoiceUserApi {
public BigDecimal getAccountBalance(UUID accountId);
- public List<InvoiceItem> getInvoiceItemsByAccount(UUID accountId);
-
public Invoice getInvoice(UUID invoiceId);
public void notifyOfPaymentAttempt(InvoicePayment invoicePayment);
diff --git a/beatrix/src/test/java/com/ning/billing/beatrix/integration/TestIntegration.java b/beatrix/src/test/java/com/ning/billing/beatrix/integration/TestIntegration.java
index b69e48e..b4a4019 100644
--- a/beatrix/src/test/java/com/ning/billing/beatrix/integration/TestIntegration.java
+++ b/beatrix/src/test/java/com/ning/billing/beatrix/integration/TestIntegration.java
@@ -22,6 +22,7 @@ import static org.testng.Assert.assertTrue;
import java.io.IOException;
import java.math.BigDecimal;
+import java.util.ArrayList;
import java.util.List;
import java.util.UUID;
@@ -217,7 +218,11 @@ public class TestIntegration {
int totalInvoiceItemCount) {
SubscriptionData subscription = (SubscriptionData) entitlementUserApi.getSubscriptionFromId(subscriptionId);
- List<InvoiceItem> invoiceItems = invoiceUserApi.getInvoiceItemsByAccount(accountId);
+ List<Invoice> invoices = invoiceUserApi.getInvoicesByAccount(accountId);
+ List<InvoiceItem> invoiceItems = new ArrayList<InvoiceItem>();
+ for (Invoice invoice : invoices) {
+ invoiceItems.addAll(invoice.getInvoiceItems());
+ }
assertEquals(invoiceItems.size(), totalInvoiceItemCount);
boolean wasFound = false;
@@ -242,9 +247,6 @@ public class TestIntegration {
assertTrue(ctd.compareTo(chargeThroughDate) == 0);
}
-
-
-
@Test(groups = "slow", enabled = true)
public void testBasePlanCompleteWithBillingDayInPast() throws Exception {
DateTime startDate = new DateTime(2012, 2, 1, 0, 3, 42, 0);
@@ -293,10 +295,6 @@ public class TestIntegration {
}
}
-
-
- private static final long DELAY = 5000;
-
@Test(groups = "slow", enabled = true)
public void testWithRecreatePlan() throws Exception {
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 0c6f82a..2a4d8ec 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
@@ -201,4 +201,47 @@ public class DefaultBillingEvent implements BillingEvent {
return sb.toString();
}
+
+ @Override
+ public boolean equals(Object o) {
+ if (this == o) return true;
+ if (o == null || getClass() != o.getClass()) return false;
+
+ DefaultBillingEvent that = (DefaultBillingEvent) o;
+
+ if (billCycleDay != that.billCycleDay) return false;
+ if (billingModeType != that.billingModeType) return false;
+ if (billingPeriod != that.billingPeriod) return false;
+ if (currency != that.currency) return false;
+ if (!description.equals(that.description)) return false;
+ if (!effectiveDate.equals(that.effectiveDate)) return false;
+ if (fixedPrice != null ? !fixedPrice.equals(that.fixedPrice) : that.fixedPrice != null) return false;
+ if (!plan.equals(that.plan)) return false;
+ if (!planPhase.equals(that.planPhase)) return false;
+ if (recurringPrice != null ? !recurringPrice.equals(that.recurringPrice) : that.recurringPrice != null)
+ return false;
+ if (!subscription.equals(that.subscription)) return false;
+ if (!totalOrdering.equals(that.totalOrdering)) return false;
+ if (type != that.type) return false;
+
+ return true;
+ }
+
+ @Override
+ public int hashCode() {
+ int result = billCycleDay;
+ result = 31 * result + subscription.hashCode();
+ result = 31 * result + effectiveDate.hashCode();
+ result = 31 * result + planPhase.hashCode();
+ result = 31 * result + plan.hashCode();
+ result = 31 * result + (fixedPrice != null ? fixedPrice.hashCode() : 0);
+ result = 31 * result + (recurringPrice != null ? recurringPrice.hashCode() : 0);
+ result = 31 * result + currency.hashCode();
+ result = 31 * result + description.hashCode();
+ result = 31 * result + billingModeType.hashCode();
+ result = 31 * result + billingPeriod.hashCode();
+ result = 31 * result + type.hashCode();
+ result = 31 * result + totalOrdering.hashCode();
+ return result;
+ }
}
\ No newline at end of file
diff --git a/entitlement/src/main/java/com/ning/billing/entitlement/api/user/DefaultEntitlementUserApi.java b/entitlement/src/main/java/com/ning/billing/entitlement/api/user/DefaultEntitlementUserApi.java
index 883155f..6321d35 100644
--- a/entitlement/src/main/java/com/ning/billing/entitlement/api/user/DefaultEntitlementUserApi.java
+++ b/entitlement/src/main/java/com/ning/billing/entitlement/api/user/DefaultEntitlementUserApi.java
@@ -39,7 +39,6 @@ import com.ning.billing.util.clock.Clock;
import com.ning.billing.util.clock.DefaultClock;
public class DefaultEntitlementUserApi implements EntitlementUserApi {
-
private final Clock clock;
private final EntitlementDao dao;
private final CatalogService catalogService;
@@ -82,7 +81,6 @@ public class DefaultEntitlementUserApi implements EntitlementUserApi {
return dao.getSubscriptionsForKey(bundleKey);
}
-
@Override
public List<Subscription> getSubscriptionsForBundle(UUID bundleId) {
return dao.getSubscriptions(bundleId);
@@ -95,7 +93,6 @@ public class DefaultEntitlementUserApi implements EntitlementUserApi {
return dao.createSubscriptionBundle(bundle);
}
-
@Override
public Subscription createSubscription(UUID bundleId, PlanPhaseSpecifier spec, DateTime requestedDate) throws EntitlementUserApiException {
try {
diff --git a/invoice/src/main/java/com/ning/billing/invoice/api/user/DefaultInvoiceUserApi.java b/invoice/src/main/java/com/ning/billing/invoice/api/user/DefaultInvoiceUserApi.java
index d38773a..1800154 100644
--- a/invoice/src/main/java/com/ning/billing/invoice/api/user/DefaultInvoiceUserApi.java
+++ b/invoice/src/main/java/com/ning/billing/invoice/api/user/DefaultInvoiceUserApi.java
@@ -26,7 +26,6 @@ import com.google.inject.Inject;
import com.ning.billing.invoice.InvoiceDispatcher;
import com.ning.billing.invoice.api.Invoice;
import com.ning.billing.invoice.api.InvoiceApiException;
-import com.ning.billing.invoice.api.InvoiceItem;
import com.ning.billing.invoice.api.InvoicePayment;
import com.ning.billing.invoice.api.InvoiceUserApi;
import com.ning.billing.invoice.dao.InvoiceDao;
@@ -68,11 +67,6 @@ public class DefaultInvoiceUserApi implements InvoiceUserApi {
}
@Override
- public List<InvoiceItem> getInvoiceItemsByAccount(final UUID accountId) {
- return dao.getInvoiceItemsByAccount(accountId);
- }
-
- @Override
public Invoice getInvoice(final UUID invoiceId) {
return dao.getById(invoiceId);
}
diff --git a/invoice/src/main/java/com/ning/billing/invoice/dao/DefaultInvoiceDao.java b/invoice/src/main/java/com/ning/billing/invoice/dao/DefaultInvoiceDao.java
index 9b475d1..f797ff5 100644
--- a/invoice/src/main/java/com/ning/billing/invoice/dao/DefaultInvoiceDao.java
+++ b/invoice/src/main/java/com/ning/billing/invoice/dao/DefaultInvoiceDao.java
@@ -100,14 +100,6 @@ public class DefaultInvoiceDao implements InvoiceDao {
}
@Override
- public List<InvoiceItem> getInvoiceItemsByAccount(final UUID accountId) {
- List<InvoiceItem> results = new ArrayList<InvoiceItem>();
- results.addAll(recurringInvoiceItemSqlDao.getInvoiceItemsByAccount(accountId.toString()));
- results.addAll(fixedPriceInvoiceItemSqlDao.getInvoiceItemsByAccount(accountId.toString()));
- return results;
- }
-
- @Override
public List<Invoice> get() {
return invoiceSqlDao.inTransaction(new Transaction<List<Invoice>, InvoiceSqlDao>() {
@Override
diff --git a/invoice/src/main/java/com/ning/billing/invoice/dao/InvoiceDao.java b/invoice/src/main/java/com/ning/billing/invoice/dao/InvoiceDao.java
index 7a7c280..08f6e06 100644
--- a/invoice/src/main/java/com/ning/billing/invoice/dao/InvoiceDao.java
+++ b/invoice/src/main/java/com/ning/billing/invoice/dao/InvoiceDao.java
@@ -36,8 +36,6 @@ public interface InvoiceDao {
List<Invoice> getInvoicesByAccount(final UUID accountId, final DateTime fromDate);
- List<InvoiceItem> getInvoiceItemsByAccount(final UUID accountId);
-
List<Invoice> getInvoicesBySubscription(final UUID subscriptionId);
List<UUID> getInvoicesForPayment(final DateTime targetDate,
diff --git a/invoice/src/main/java/com/ning/billing/invoice/model/DefaultInvoiceGenerator.java b/invoice/src/main/java/com/ning/billing/invoice/model/DefaultInvoiceGenerator.java
index 66c71bd..acb54ad 100644
--- a/invoice/src/main/java/com/ning/billing/invoice/model/DefaultInvoiceGenerator.java
+++ b/invoice/src/main/java/com/ning/billing/invoice/model/DefaultInvoiceGenerator.java
@@ -246,8 +246,7 @@ public class DefaultInvoiceGenerator implements InvoiceGenerator {
return new FixedPriceInvoiceItem(invoiceId, thisEvent.getSubscription().getId(),
thisEvent.getPlan().getName(), thisEvent.getPlanPhase().getName(),
- thisEvent.getEffectiveDate(), endDate, fixedPrice, currency,
- clock.getUTCNow());
+ thisEvent.getEffectiveDate(), endDate, fixedPrice, currency);
} else {
return null;
}
diff --git a/invoice/src/main/java/com/ning/billing/invoice/model/FixedPriceInvoiceItem.java b/invoice/src/main/java/com/ning/billing/invoice/model/FixedPriceInvoiceItem.java
index 4a1bc1d..2c01329 100644
--- a/invoice/src/main/java/com/ning/billing/invoice/model/FixedPriceInvoiceItem.java
+++ b/invoice/src/main/java/com/ning/billing/invoice/model/FixedPriceInvoiceItem.java
@@ -25,9 +25,8 @@ import java.util.UUID;
public class FixedPriceInvoiceItem extends InvoiceItemBase {
public FixedPriceInvoiceItem(UUID invoiceId, UUID subscriptionId, String planName, String phaseName,
- DateTime startDate, DateTime endDate, BigDecimal amount, Currency currency,
- DateTime createdDate) {
- super(invoiceId, subscriptionId, planName, phaseName, startDate, endDate, amount, currency, createdDate);
+ DateTime startDate, DateTime endDate, BigDecimal amount, Currency currency) {
+ super(invoiceId, subscriptionId, planName, phaseName, startDate, endDate, amount, currency);
}
public FixedPriceInvoiceItem(UUID id, UUID invoiceId, UUID subscriptionId, String planName, String phaseName,
diff --git a/invoice/src/main/java/com/ning/billing/invoice/model/InvoiceItemBase.java b/invoice/src/main/java/com/ning/billing/invoice/model/InvoiceItemBase.java
index 6f69e33..d855681 100644
--- a/invoice/src/main/java/com/ning/billing/invoice/model/InvoiceItemBase.java
+++ b/invoice/src/main/java/com/ning/billing/invoice/model/InvoiceItemBase.java
@@ -16,10 +16,13 @@
package com.ning.billing.invoice.model;
+import com.google.inject.Inject;
import com.ning.billing.catalog.api.Currency;
import com.ning.billing.invoice.api.InvoiceItem;
+import com.ning.billing.util.clock.Clock;
import org.joda.time.DateTime;
+import javax.annotation.Nullable;
import java.math.BigDecimal;
import java.util.UUID;
@@ -35,16 +38,18 @@ public abstract class InvoiceItemBase implements InvoiceItem {
protected final Currency currency;
protected final DateTime createdDate;
+ @Inject
+ private Clock clock;
+
public InvoiceItemBase(UUID invoiceId, UUID subscriptionId, String planName, String phaseName,
- DateTime startDate, DateTime endDate, BigDecimal amount, Currency currency,
- DateTime createdDate) {
+ DateTime startDate, DateTime endDate, BigDecimal amount, Currency currency) {
this(UUID.randomUUID(), invoiceId, subscriptionId, planName, phaseName,
- startDate, endDate, amount, currency, createdDate);
+ startDate, endDate, amount, currency, null);
}
public InvoiceItemBase(UUID id, UUID invoiceId, UUID subscriptionId, String planName, String phaseName,
DateTime startDate, DateTime endDate, BigDecimal amount, Currency currency,
- DateTime createdDate) {
+ @Nullable DateTime createdDate) {
this.id = id;
this.invoiceId = invoiceId;
this.subscriptionId = subscriptionId;
@@ -54,7 +59,7 @@ public abstract class InvoiceItemBase implements InvoiceItem {
this.endDate = endDate;
this.amount = amount;
this.currency = currency;
- this.createdDate = createdDate;
+ this.createdDate = (createdDate == null) ? clock.getUTCNow() : createdDate;
}
public DateTime getCreatedDate() {
diff --git a/invoice/src/test/java/com/ning/billing/invoice/dao/MockInvoiceDao.java b/invoice/src/test/java/com/ning/billing/invoice/dao/MockInvoiceDao.java
index cf6c112..893912f 100644
--- a/invoice/src/test/java/com/ning/billing/invoice/dao/MockInvoiceDao.java
+++ b/invoice/src/test/java/com/ning/billing/invoice/dao/MockInvoiceDao.java
@@ -101,21 +101,6 @@ public class MockInvoiceDao implements InvoiceDao {
}
@Override
- public List<InvoiceItem> getInvoiceItemsByAccount(UUID accountId) {
- List<InvoiceItem> invoiceItemsForAccount = new ArrayList<InvoiceItem>();
-
- synchronized (monitor) {
- for (Invoice invoice : get()) {
- if (accountId.equals(invoice.getAccountId())) {
- invoiceItemsForAccount.addAll(invoice.getInvoiceItems());
- }
- }
- }
-
- return invoiceItemsForAccount;
- }
-
- @Override
public List<Invoice> getInvoicesBySubscription(UUID subscriptionId) {
List<Invoice> result = new ArrayList<Invoice>();