killbill-aplcache
Changes
analytics/src/main/java/com/ning/billing/analytics/BusinessSubscriptionTransitionRecorder.java 68(+29 -39)
analytics/src/main/java/com/ning/billing/analytics/dao/BusinessSubscriptionTransitionBinder.java 66(+25 -41)
analytics/src/main/java/com/ning/billing/analytics/dao/BusinessSubscriptionTransitionDao.java 8(+4 -4)
analytics/src/main/java/com/ning/billing/analytics/dao/BusinessSubscriptionTransitionDaoProvider.java 10(+4 -6)
analytics/src/main/java/com/ning/billing/analytics/dao/BusinessSubscriptionTransitionMapper.java 93(+46 -47)
analytics/src/test/java/com/ning/billing/analytics/MockBusinessSubscriptionTransitionDao.java 21(+9 -12)
Details
diff --git a/analytics/src/main/java/com/ning/billing/analytics/AnalyticsListener.java b/analytics/src/main/java/com/ning/billing/analytics/AnalyticsListener.java
index bf6f3eb..caefaef 100644
--- a/analytics/src/main/java/com/ning/billing/analytics/AnalyticsListener.java
+++ b/analytics/src/main/java/com/ning/billing/analytics/AnalyticsListener.java
@@ -40,7 +40,7 @@ public class AnalyticsListener {
@Subscribe
public void handleSubscriptionTransitionChange(final SubscriptionEvent event) throws AccountApiException, EntitlementUserApiException {
switch (event.getTransitionType()) {
- // A susbcription enters either through migration or as newly created subscription
+ // A subscription enters either through migration or as newly created subscription
case MIGRATE_ENTITLEMENT:
case CREATE:
bstRecorder.subscriptionCreated(event);
diff --git a/analytics/src/main/java/com/ning/billing/analytics/api/DefaultAnalyticsService.java b/analytics/src/main/java/com/ning/billing/analytics/api/DefaultAnalyticsService.java
index 1ee53ee..3f61530 100644
--- a/analytics/src/main/java/com/ning/billing/analytics/api/DefaultAnalyticsService.java
+++ b/analytics/src/main/java/com/ning/billing/analytics/api/DefaultAnalyticsService.java
@@ -16,15 +16,15 @@
package com.ning.billing.analytics.api;
+import org.slf4j.Logger;
+import org.slf4j.LoggerFactory;
+
import com.google.inject.Inject;
import com.ning.billing.analytics.AnalyticsListener;
import com.ning.billing.lifecycle.LifecycleHandlerType;
import com.ning.billing.util.bus.Bus;
-import org.slf4j.Logger;
-import org.slf4j.LoggerFactory;
-public class DefaultAnalyticsService implements AnalyticsService
-{
+public class DefaultAnalyticsService implements AnalyticsService {
private static final Logger log = LoggerFactory.getLogger(DefaultAnalyticsService.class);
private static final String ANALYTICS_SERVICE = "analytics-service";
@@ -33,25 +33,21 @@ public class DefaultAnalyticsService implements AnalyticsService
private final Bus eventBus;
@Inject
- public DefaultAnalyticsService(final AnalyticsListener listener, final Bus eventBus)
- {
+ public DefaultAnalyticsService(final AnalyticsListener listener, final Bus eventBus) {
this.listener = listener;
this.eventBus = eventBus;
}
@Override
- public String getName()
- {
+ public String getName() {
return ANALYTICS_SERVICE;
}
@LifecycleHandlerType(LifecycleHandlerType.LifecycleLevel.REGISTER_EVENTS)
- public void registerForNotifications()
- {
+ public void registerForNotifications() {
try {
eventBus.register(listener);
- }
- catch (Bus.EventBusException e) {
+ } catch (Bus.EventBusException e) {
log.error("Unable to register to the EventBus!", e);
}
}
diff --git a/analytics/src/main/java/com/ning/billing/analytics/BusinessAccount.java b/analytics/src/main/java/com/ning/billing/analytics/BusinessAccount.java
index 1eb3add..bfc2da0 100644
--- a/analytics/src/main/java/com/ning/billing/analytics/BusinessAccount.java
+++ b/analytics/src/main/java/com/ning/billing/analytics/BusinessAccount.java
@@ -16,16 +16,16 @@
package com.ning.billing.analytics;
+import java.math.BigDecimal;
+import java.util.List;
+
+import org.joda.time.DateTime;
+
import com.google.common.base.Joiner;
import com.ning.billing.analytics.utils.Rounder;
import com.ning.billing.util.tag.Tag;
-import org.joda.time.DateTime;
-
-import java.math.BigDecimal;
-import java.util.List;
-public class BusinessAccount
-{
+public class BusinessAccount {
// Populated by the database
private DateTime createdDt = null;
private DateTime updatedDt = null;
@@ -40,8 +40,7 @@ public class BusinessAccount
private String creditCardType;
private String billingAddressCountry;
- public BusinessAccount(final String key, final BigDecimal balance, final List<Tag> tags, final DateTime lastInvoiceDate, final BigDecimal totalInvoiceBalance, final String lastPaymentStatus, final String paymentMethod, final String creditCardType, final String billingAddressCountry)
- {
+ public BusinessAccount(final String key, final BigDecimal balance, final List<Tag> tags, final DateTime lastInvoiceDate, final BigDecimal totalInvoiceBalance, final String lastPaymentStatus, final String paymentMethod, final String creditCardType, final String billingAddressCountry) {
this.key = key;
this.balance = balance;
this.billingAddressCountry = billingAddressCountry;
@@ -53,124 +52,100 @@ public class BusinessAccount
this.totalInvoiceBalance = totalInvoiceBalance;
}
- public String getKey()
- {
+ public String getKey() {
return key;
}
- public BigDecimal getBalance()
- {
+ public BigDecimal getBalance() {
return balance;
}
- public Double getRoundedBalance()
- {
+ public Double getRoundedBalance() {
return Rounder.round(balance);
}
- public void setBalance(final BigDecimal balance)
- {
+ public void setBalance(final BigDecimal balance) {
this.balance = balance;
}
- public String getBillingAddressCountry()
- {
+ public String getBillingAddressCountry() {
return billingAddressCountry;
}
- public void setBillingAddressCountry(final String billingAddressCountry)
- {
+ public void setBillingAddressCountry(final String billingAddressCountry) {
this.billingAddressCountry = billingAddressCountry;
}
- public DateTime getCreatedDt()
- {
+ public DateTime getCreatedDt() {
return createdDt;
}
- public void setCreatedDt(final DateTime createdDt)
- {
+ public void setCreatedDt(final DateTime createdDt) {
this.createdDt = createdDt;
}
- public String getCreditCardType()
- {
+ public String getCreditCardType() {
return creditCardType;
}
- public void setCreditCardType(final String creditCardType)
- {
+ public void setCreditCardType(final String creditCardType) {
this.creditCardType = creditCardType;
}
- public DateTime getLastInvoiceDate()
- {
+ public DateTime getLastInvoiceDate() {
return lastInvoiceDate;
}
- public void setLastInvoiceDate(final DateTime lastInvoiceDate)
- {
+ public void setLastInvoiceDate(final DateTime lastInvoiceDate) {
this.lastInvoiceDate = lastInvoiceDate;
}
- public String getLastPaymentStatus()
- {
+ public String getLastPaymentStatus() {
return lastPaymentStatus;
}
- public void setLastPaymentStatus(final String lastPaymentStatus)
- {
+ public void setLastPaymentStatus(final String lastPaymentStatus) {
this.lastPaymentStatus = lastPaymentStatus;
}
- public String getPaymentMethod()
- {
+ public String getPaymentMethod() {
return paymentMethod;
}
- public void setPaymentMethod(final String paymentMethod)
- {
+ public void setPaymentMethod(final String paymentMethod) {
this.paymentMethod = paymentMethod;
}
- public List<Tag> getTags()
- {
+ public List<Tag> getTags() {
return tags;
}
- public void setTags(final List<Tag> tags)
- {
+ public void setTags(final List<Tag> tags) {
this.tags = tags;
}
- public BigDecimal getTotalInvoiceBalance()
- {
+ public BigDecimal getTotalInvoiceBalance() {
return totalInvoiceBalance;
}
- public Double getRoundedTotalInvoiceBalance()
- {
+ public Double getRoundedTotalInvoiceBalance() {
return Rounder.round(totalInvoiceBalance);
}
- public void setTotalInvoiceBalance(final BigDecimal totalInvoiceBalance)
- {
+ public void setTotalInvoiceBalance(final BigDecimal totalInvoiceBalance) {
this.totalInvoiceBalance = totalInvoiceBalance;
}
- public DateTime getUpdatedDt()
- {
+ public DateTime getUpdatedDt() {
return updatedDt;
}
- public void setUpdatedDt(final DateTime updatedDt)
- {
+ public void setUpdatedDt(final DateTime updatedDt) {
this.updatedDt = updatedDt;
}
@Override
- public String toString()
- {
+ public String toString() {
final StringBuilder sb = new StringBuilder();
sb.append("BusinessAccount");
sb.append("{balance=").append(balance);
@@ -191,8 +166,7 @@ public class BusinessAccount
}
@Override
- public boolean equals(final Object o)
- {
+ public boolean equals(final Object o) {
if (this == o) {
return true;
}
@@ -240,8 +214,7 @@ public class BusinessAccount
}
@Override
- public int hashCode()
- {
+ public int hashCode() {
int result = createdDt != null ? createdDt.hashCode() : 0;
result = 31 * result + (updatedDt != null ? updatedDt.hashCode() : 0);
result = 31 * result + (key != null ? key.hashCode() : 0);
diff --git a/analytics/src/main/java/com/ning/billing/analytics/BusinessAccountRecorder.java b/analytics/src/main/java/com/ning/billing/analytics/BusinessAccountRecorder.java
index 2da5922..7c26a94 100644
--- a/analytics/src/main/java/com/ning/billing/analytics/BusinessAccountRecorder.java
+++ b/analytics/src/main/java/com/ning/billing/analytics/BusinessAccountRecorder.java
@@ -22,8 +22,6 @@ import java.util.List;
import java.util.Map;
import java.util.UUID;
-import com.ning.billing.util.api.TagUserApi;
-import com.ning.billing.util.dao.ObjectType;
import org.joda.time.DateTime;
import org.slf4j.Logger;
import org.slf4j.LoggerFactory;
@@ -41,6 +39,8 @@ import com.ning.billing.payment.api.PaymentApi;
import com.ning.billing.payment.api.PaymentApiException;
import com.ning.billing.payment.api.PaymentAttempt;
import com.ning.billing.payment.api.PaymentInfoEvent;
+import com.ning.billing.util.api.TagUserApi;
+import com.ning.billing.util.dao.ObjectType;
import com.ning.billing.util.tag.Tag;
public class BusinessAccountRecorder {
@@ -54,8 +54,8 @@ public class BusinessAccountRecorder {
@Inject
public BusinessAccountRecorder(final BusinessAccountDao dao, final AccountUserApi accountApi,
- final InvoiceUserApi invoiceUserApi, final PaymentApi paymentApi,
- final TagUserApi tagUserApi) {
+ final InvoiceUserApi invoiceUserApi, final PaymentApi paymentApi,
+ final TagUserApi tagUserApi) {
this.dao = dao;
this.accountApi = accountApi;
this.invoiceUserApi = invoiceUserApi;
@@ -73,7 +73,7 @@ public class BusinessAccountRecorder {
log.info("ACCOUNT CREATION " + bac);
dao.createAccount(bac);
} catch (AccountApiException e) {
- log.warn("Error encountered creating BusinessAccount",e);
+ log.warn("Error encountered creating BusinessAccount", e);
}
}
@@ -103,9 +103,9 @@ public class BusinessAccountRecorder {
final Account account = accountApi.getAccountById(paymentAttempt.getAccountId());
accountUpdated(account.getId());
} catch (AccountApiException e) {
- log.warn("Error encountered creating BusinessAccount",e);
+ log.warn("Error encountered creating BusinessAccount", e);
} catch (PaymentApiException e) {
- log.warn("Error encountered creating BusinessAccount",e);
+ log.warn("Error encountered creating BusinessAccount", e);
}
}
@@ -135,7 +135,7 @@ public class BusinessAccountRecorder {
dao.saveAccount(bac);
}
} catch (AccountApiException e) {
- log.warn("Error encountered creating BusinessAccount",e);
+ log.warn("Error encountered creating BusinessAccount", e);
}
}
@@ -220,7 +220,7 @@ public class BusinessAccountRecorder {
bac.setBalance(invoiceUserApi.getAccountBalance(account.getId()));
} catch (PaymentApiException ex) {
- log.error(String.format("Failed to handle acount update for account %s", account.getId()), ex);
+ log.error(String.format("Failed to handle account update for account %s", account.getId()), ex);
}
}
}
diff --git a/analytics/src/main/java/com/ning/billing/analytics/BusinessSubscription.java b/analytics/src/main/java/com/ning/billing/analytics/BusinessSubscription.java
index 8b00dff..c2b3205 100644
--- a/analytics/src/main/java/com/ning/billing/analytics/BusinessSubscription.java
+++ b/analytics/src/main/java/com/ning/billing/analytics/BusinessSubscription.java
@@ -16,6 +16,14 @@
package com.ning.billing.analytics;
+import java.math.BigDecimal;
+import java.math.RoundingMode;
+import java.util.UUID;
+
+import org.joda.time.DateTime;
+import org.slf4j.Logger;
+import org.slf4j.LoggerFactory;
+
import com.ning.billing.analytics.utils.Rounder;
import com.ning.billing.catalog.api.Catalog;
import com.ning.billing.catalog.api.CatalogApiException;
@@ -27,21 +35,13 @@ import com.ning.billing.catalog.api.Product;
import com.ning.billing.catalog.api.ProductCategory;
import com.ning.billing.catalog.api.TimeUnit;
import com.ning.billing.entitlement.api.user.Subscription;
-import org.joda.time.DateTime;
-import org.slf4j.Logger;
-import org.slf4j.LoggerFactory;
-
-import java.math.BigDecimal;
-import java.math.RoundingMode;
-import java.util.UUID;
import static com.ning.billing.entitlement.api.user.Subscription.SubscriptionState;
/**
* Describe a subscription for Analytics purposes
*/
-public class BusinessSubscription
-{
+public class BusinessSubscription {
private static final Logger log = LoggerFactory.getLogger(BusinessSubscription.class);
private static final BigDecimal DAYS_IN_MONTH = BigDecimal.valueOf(30);
@@ -63,8 +63,7 @@ public class BusinessSubscription
private final UUID subscriptionId;
private final UUID bundleId;
- public BusinessSubscription(final String productName, final String productType, final ProductCategory productCategory, final String slug, final String phase, final String billingPeriod, final BigDecimal price, final String priceList, final BigDecimal mrr, final String currency, final DateTime startDate, final SubscriptionState state, final UUID subscriptionId, final UUID bundleId)
- {
+ public BusinessSubscription(final String productName, final String productType, final ProductCategory productCategory, final String slug, final String phase, final String billingPeriod, final BigDecimal price, final String priceList, final BigDecimal mrr, final String currency, final DateTime startDate, final SubscriptionState state, final UUID subscriptionId, final UUID bundleId) {
this.productName = productName;
this.productType = productType;
this.productCategory = productCategory;
@@ -89,9 +88,9 @@ public class BusinessSubscription
*
* @param subscription Subscription to use as a model
* @param currency ACCOUNT currency
+ * @param catalog Catalog to use
*/
- BusinessSubscription(final Subscription subscription, final Currency currency, Catalog catalog)
- {
+ BusinessSubscription(final Subscription subscription, final Currency currency, Catalog catalog) {
this(subscription.getCurrentPriceList() == null ? null : subscription.getCurrentPriceList().getName(), subscription.getCurrentPlan().getName(), subscription.getCurrentPhase().getName(), currency, subscription.getStartDate(), subscription.getState(), subscription.getId(), subscription.getBundleId(), catalog);
}
@@ -102,46 +101,43 @@ public class BusinessSubscription
thePlan = (currentPlan != null) ? catalog.findPlan(currentPlan, new DateTime(), startDate) : null;
thePhase = (currentPhase != null) ? catalog.findPhase(currentPhase, new DateTime(), startDate) : null;
} catch (CatalogApiException e) {
- log.error(String.format("Failed to retrieve Plan from catalog for plan %s, phase ", currentPlan, currentPhase));
+ log.error("Failed to retrieve Plan from catalog for plan {}, phase {}", currentPlan, currentPhase);
}
-
- this.priceList = priceList;
-
+
+ this.priceList = priceList;
+
// Record plan information
- if (currentPlan != null && thePlan.getProduct() != null) {
+ if (currentPlan != null && thePlan != null && thePlan.getProduct() != null) {
final Product product = thePlan.getProduct();
productName = product.getName();
productCategory = product.getCategory();
// TODO - we should keep the product type
productType = product.getCatalogName();
- }
- else {
+ } else {
productName = null;
productCategory = null;
productType = null;
}
// Record phase information
- if (currentPhase != null) {
+ if (currentPhase != null && thePhase != null) {
slug = thePhase.getName();
if (thePhase.getPhaseType() != null) {
phase = thePhase.getPhaseType().toString();
- }
- else {
+ } else {
phase = null;
}
if (thePhase.getBillingPeriod() != null) {
billingPeriod = thePhase.getBillingPeriod().toString();
- }
- else {
+ } else {
billingPeriod = null;
}
if (thePhase.getRecurringPrice() != null) {
//TODO check if this is the right way to handle exception
- BigDecimal tmpPrice = null;
+ BigDecimal tmpPrice;
try {
tmpPrice = thePhase.getRecurringPrice().getPrice(USD);
} catch (CatalogApiException e) {
@@ -149,13 +145,11 @@ public class BusinessSubscription
}
price = tmpPrice;
mrr = getMrrFromISubscription(thePhase.getDuration(), price);
- }
- else {
+ } else {
price = BigDecimal.ZERO;
mrr = BigDecimal.ZERO;
}
- }
- else {
+ } else {
slug = null;
phase = null;
billingPeriod = null;
@@ -165,8 +159,7 @@ public class BusinessSubscription
if (currency != null) {
this.currency = currency.toString();
- }
- else {
+ } else {
this.currency = null;
}
@@ -175,11 +168,10 @@ public class BusinessSubscription
this.subscriptionId = subscriptionId;
this.bundleId = bundleId;
}
-
- public BusinessSubscription(final String priceList, final Plan currentPlan, final PlanPhase currentPhase, final Currency currency, final DateTime startDate, final SubscriptionState state, final UUID subscriptionId, final UUID bundleId)
- {
+
+ public BusinessSubscription(final String priceList, final Plan currentPlan, final PlanPhase currentPhase, final Currency currency, final DateTime startDate, final SubscriptionState state, final UUID subscriptionId, final UUID bundleId) {
this.priceList = priceList;
-
+
// Record plan information
if (currentPlan != null && currentPlan.getProduct() != null) {
final Product product = currentPlan.getProduct();
@@ -187,8 +179,7 @@ public class BusinessSubscription
productCategory = product.getCategory();
// TODO - we should keep the product type
productType = product.getCatalogName();
- }
- else {
+ } else {
productName = null;
productCategory = null;
productType = null;
@@ -200,35 +191,31 @@ public class BusinessSubscription
if (currentPhase.getPhaseType() != null) {
phase = currentPhase.getPhaseType().toString();
- }
- else {
+ } else {
phase = null;
}
if (currentPhase.getBillingPeriod() != null) {
billingPeriod = currentPhase.getBillingPeriod().toString();
- }
- else {
+ } else {
billingPeriod = null;
}
if (currentPhase.getRecurringPrice() != null) {
- //TODO check if this is the right way to handle exception
- BigDecimal tmpPrice = null;
+ //TODO check if this is the right way to handle exception
+ BigDecimal tmpPrice;
try {
- tmpPrice = currentPhase.getRecurringPrice().getPrice(USD);
- } catch (CatalogApiException e) {
- tmpPrice = new BigDecimal(0);
- }
+ tmpPrice = currentPhase.getRecurringPrice().getPrice(USD);
+ } catch (CatalogApiException e) {
+ tmpPrice = new BigDecimal(0);
+ }
price = tmpPrice;
mrr = getMrrFromISubscription(currentPhase.getDuration(), price);
- }
- else {
+ } else {
price = BigDecimal.ZERO;
mrr = BigDecimal.ZERO;
}
- }
- else {
+ } else {
slug = null;
phase = null;
billingPeriod = null;
@@ -238,8 +225,7 @@ public class BusinessSubscription
if (currency != null) {
this.currency = currency.toString();
- }
- else {
+ } else {
this.currency = null;
}
@@ -249,113 +235,91 @@ public class BusinessSubscription
this.bundleId = bundleId;
}
- public String getBillingPeriod()
- {
+ public String getBillingPeriod() {
return billingPeriod;
}
- public UUID getBundleId()
- {
+ public UUID getBundleId() {
return bundleId;
}
- public String getCurrency()
- {
+ public String getCurrency() {
return currency;
}
- public BigDecimal getMrr()
- {
+ public BigDecimal getMrr() {
return mrr;
}
- public double getRoundedMrr()
- {
+ public double getRoundedMrr() {
return Rounder.round(mrr);
}
- public String getPhase()
- {
+ public String getPhase() {
return phase;
}
- public BigDecimal getPrice()
- {
+ public BigDecimal getPrice() {
return price;
}
- public String getPriceList()
- {
+ public String getPriceList() {
return priceList;
}
- public double getRoundedPrice()
- {
+ public double getRoundedPrice() {
return Rounder.round(price);
}
- public ProductCategory getProductCategory()
- {
+ public ProductCategory getProductCategory() {
return productCategory;
}
- public String getProductName()
- {
+ public String getProductName() {
return productName;
}
- public String getProductType()
- {
+ public String getProductType() {
return productType;
}
- public String getSlug()
- {
+ public String getSlug() {
return slug;
}
- public DateTime getStartDate()
- {
+ public DateTime getStartDate() {
return startDate;
}
- public SubscriptionState getState()
- {
+ public SubscriptionState getState() {
return state;
}
- public UUID getSubscriptionId()
- {
+ public UUID getSubscriptionId() {
return subscriptionId;
}
- static BigDecimal getMrrFromISubscription(final Duration duration, final BigDecimal price)
- {
+ static BigDecimal getMrrFromISubscription(final Duration duration, final BigDecimal price) {
if (duration == null || duration.getUnit() == null || duration.getNumber() == 0) {
return BigDecimal.ZERO;
}
if (duration.getUnit().equals(TimeUnit.UNLIMITED)) {
return BigDecimal.ZERO;
- }
- else if (duration.getUnit().equals(TimeUnit.DAYS)) {
+ } else if (duration.getUnit().equals(TimeUnit.DAYS)) {
return price.multiply(DAYS_IN_MONTH).multiply(BigDecimal.valueOf(duration.getNumber()));
- }
- else if (duration.getUnit().equals(TimeUnit.MONTHS)) {
+ } else if (duration.getUnit().equals(TimeUnit.MONTHS)) {
return price.divide(BigDecimal.valueOf(duration.getNumber()), Rounder.SCALE, BigDecimal.ROUND_HALF_UP);
- }
- else if (duration.getUnit().equals(TimeUnit.YEARS)) {
+ } else if (duration.getUnit().equals(TimeUnit.YEARS)) {
return price.divide(BigDecimal.valueOf(duration.getNumber()), Rounder.SCALE, RoundingMode.HALF_UP).divide(MONTHS_IN_YEAR, Rounder.SCALE, RoundingMode.HALF_UP);
- }
- else {
+ } else {
log.error("Unknown duration [" + duration + "], can't compute mrr");
return null;
}
}
@Override
- public String toString()
- {
+ public String toString() {
final StringBuilder sb = new StringBuilder();
sb.append("BusinessSubscription");
sb.append("{billingPeriod='").append(billingPeriod).append('\'');
@@ -377,8 +341,7 @@ public class BusinessSubscription
}
@Override
- public boolean equals(final Object o)
- {
+ public boolean equals(final Object o) {
if (this == o) {
return true;
}
@@ -435,8 +398,7 @@ public class BusinessSubscription
}
@Override
- public int hashCode()
- {
+ public int hashCode() {
int result = productName != null ? productName.hashCode() : 0;
result = 31 * result + (productType != null ? productType.hashCode() : 0);
result = 31 * result + (productCategory != null ? productCategory.hashCode() : 0);
diff --git a/analytics/src/main/java/com/ning/billing/analytics/BusinessSubscriptionEvent.java b/analytics/src/main/java/com/ning/billing/analytics/BusinessSubscriptionEvent.java
index b1668dc..1425c26 100644
--- a/analytics/src/main/java/com/ning/billing/analytics/BusinessSubscriptionEvent.java
+++ b/analytics/src/main/java/com/ning/billing/analytics/BusinessSubscriptionEvent.java
@@ -22,7 +22,6 @@ import org.slf4j.LoggerFactory;
import com.ning.billing.catalog.api.Catalog;
import com.ning.billing.catalog.api.CatalogApiException;
-import com.ning.billing.catalog.api.CatalogService;
import com.ning.billing.catalog.api.Plan;
import com.ning.billing.catalog.api.Product;
import com.ning.billing.catalog.api.ProductCategory;
@@ -32,15 +31,13 @@ import static com.ning.billing.entitlement.api.user.Subscription.SubscriptionSta
/**
* Describe an event associated with a transition between two BusinessSubscription
*/
-public class BusinessSubscriptionEvent
-{
-
+public class BusinessSubscriptionEvent {
+
private static final Logger log = LoggerFactory.getLogger(BusinessSubscriptionEvent.class);
-
+
private static final String MISC = "MISC";
- public enum EventType
- {
+ public enum EventType {
ADD,
CANCEL,
RE_ADD,
@@ -52,8 +49,7 @@ public class BusinessSubscriptionEvent
private final EventType eventType;
private final ProductCategory category;
- public static BusinessSubscriptionEvent valueOf(final String eventString)
- {
+ public static BusinessSubscriptionEvent valueOf(final String eventString) {
for (final EventType possibleEventType : EventType.values()) {
if (!eventString.startsWith(possibleEventType.toString().toUpperCase())) {
continue;
@@ -63,8 +59,7 @@ public class BusinessSubscriptionEvent
if (categoryString.equals(MISC)) {
return new BusinessSubscriptionEvent(possibleEventType, null);
- }
- else {
+ } else {
return new BusinessSubscriptionEvent(possibleEventType, ProductCategory.valueOf(categoryString));
}
}
@@ -72,68 +67,57 @@ public class BusinessSubscriptionEvent
throw new IllegalArgumentException("Unable to parse event string: " + eventString);
}
- public BusinessSubscriptionEvent(final EventType eventType, final ProductCategory category)
- {
+ private BusinessSubscriptionEvent(final EventType eventType, final ProductCategory category) {
this.eventType = eventType;
this.category = category;
}
- public ProductCategory getCategory()
- {
+ public ProductCategory getCategory() {
return category;
}
- public EventType getEventType()
- {
+ public EventType getEventType() {
return eventType;
}
- public static BusinessSubscriptionEvent subscriptionCreated(final String plan, Catalog catalog, DateTime eventTime, DateTime subscriptionCreationDate)
- {
+ public static BusinessSubscriptionEvent subscriptionCreated(final String plan, Catalog catalog, DateTime eventTime, DateTime subscriptionCreationDate) {
return eventFromType(EventType.ADD, plan, catalog, eventTime, subscriptionCreationDate);
}
- public static BusinessSubscriptionEvent subscriptionCancelled(final String plan, Catalog catalog, DateTime eventTime, DateTime subscriptionCreationDate)
- {
+ public static BusinessSubscriptionEvent subscriptionCancelled(final String plan, Catalog catalog, DateTime eventTime, DateTime subscriptionCreationDate) {
return eventFromType(EventType.CANCEL, plan, catalog, eventTime, subscriptionCreationDate);
}
- public static BusinessSubscriptionEvent subscriptionChanged(final String plan, Catalog catalog, DateTime eventTime, DateTime subscriptionCreationDate)
- {
+ public static BusinessSubscriptionEvent subscriptionChanged(final String plan, Catalog catalog, DateTime eventTime, DateTime subscriptionCreationDate) {
return eventFromType(EventType.CHANGE, plan, catalog, eventTime, subscriptionCreationDate);
}
- public static BusinessSubscriptionEvent subscriptionRecreated(final String plan, Catalog catalog, DateTime eventTime, DateTime subscriptionCreationDate)
- {
+ public static BusinessSubscriptionEvent subscriptionRecreated(final String plan, Catalog catalog, DateTime eventTime, DateTime subscriptionCreationDate) {
return eventFromType(EventType.RE_ADD, plan, catalog, eventTime, subscriptionCreationDate);
}
- public static BusinessSubscriptionEvent subscriptionPhaseChanged(final String plan, final SubscriptionState state, Catalog catalog, DateTime eventTime, DateTime subscriptionCreationDate)
- {
+ public static BusinessSubscriptionEvent subscriptionPhaseChanged(final String plan, final SubscriptionState state, Catalog catalog, DateTime eventTime, DateTime subscriptionCreationDate) {
if (state != null && state.equals(SubscriptionState.CANCELLED)) {
return eventFromType(EventType.SYSTEM_CANCEL, plan, catalog, eventTime, subscriptionCreationDate);
- }
- else {
+ } else {
return eventFromType(EventType.SYSTEM_CHANGE, plan, catalog, eventTime, subscriptionCreationDate);
}
}
- private static BusinessSubscriptionEvent eventFromType(final EventType eventType, final String plan, Catalog catalog, DateTime eventTime, DateTime subscriptionCreationDate)
- {
+ private static BusinessSubscriptionEvent eventFromType(final EventType eventType, final String plan, Catalog catalog, DateTime eventTime, DateTime subscriptionCreationDate) {
Plan thePlan = null;
try {
thePlan = catalog.findPlan(plan, eventTime, subscriptionCreationDate);
} catch (CatalogApiException e) {
log.error(String.format("Failed to retrieve PLan from catalog for %s", plan));
-
+
}
final ProductCategory category = getTypeFromSubscription(thePlan);
return new BusinessSubscriptionEvent(eventType, category);
}
- private static ProductCategory getTypeFromSubscription(final Plan plan)
- {
-
+ private static ProductCategory getTypeFromSubscription(final Plan plan) {
+
if (plan != null && plan.getProduct() != null) {
final Product product = plan.getProduct();
if (product.getCatalogName() != null && product.getCategory() != null) {
@@ -145,14 +129,12 @@ public class BusinessSubscriptionEvent
}
@Override
- public String toString()
- {
+ public String toString() {
return eventType.toString() + "_" + (category == null ? MISC : category.toString().toUpperCase());
}
@Override
- public boolean equals(final Object o)
- {
+ public boolean equals(final Object o) {
if (this == o) {
return true;
}
@@ -173,8 +155,7 @@ public class BusinessSubscriptionEvent
}
@Override
- public int hashCode()
- {
+ public int hashCode() {
int result = eventType != null ? eventType.hashCode() : 0;
result = 31 * result + (category != null ? category.hashCode() : 0);
return result;
diff --git a/analytics/src/main/java/com/ning/billing/analytics/BusinessSubscriptionTransition.java b/analytics/src/main/java/com/ning/billing/analytics/BusinessSubscriptionTransition.java
index 6c3a393..6749260 100644
--- a/analytics/src/main/java/com/ning/billing/analytics/BusinessSubscriptionTransition.java
+++ b/analytics/src/main/java/com/ning/billing/analytics/BusinessSubscriptionTransition.java
@@ -16,17 +16,16 @@
package com.ning.billing.analytics;
-import org.joda.time.DateTime;
-
import java.util.UUID;
+import org.joda.time.DateTime;
+
/**
* Describe a state change between two BusinessSubscription
* <p/>
* The key is unique identifier that ties sets of subscriptions together.
*/
-public class BusinessSubscriptionTransition
-{
+public class BusinessSubscriptionTransition {
private final UUID id;
private final String key;
private final String accountKey;
@@ -35,8 +34,7 @@ public class BusinessSubscriptionTransition
private final BusinessSubscription previousSubscription;
private final BusinessSubscription nextSubscription;
- public BusinessSubscriptionTransition(final UUID id, final String key, final String accountKey, final DateTime requestedTimestamp, final BusinessSubscriptionEvent event, final BusinessSubscription previousSubscription, final BusinessSubscription nextsubscription)
- {
+ public BusinessSubscriptionTransition(final UUID id, final String key, final String accountKey, final DateTime requestedTimestamp, final BusinessSubscriptionEvent event, final BusinessSubscription previousSubscription, final BusinessSubscription nextSubscription) {
if (id == null) {
throw new IllegalArgumentException("An event must have an id");
}
@@ -59,47 +57,39 @@ public class BusinessSubscriptionTransition
this.requestedTimestamp = requestedTimestamp;
this.event = event;
this.previousSubscription = previousSubscription;
- this.nextSubscription = nextsubscription;
+ this.nextSubscription = nextSubscription;
}
- public UUID getId()
- {
+ public UUID getId() {
return id;
}
- public BusinessSubscriptionEvent getEvent()
- {
+ public BusinessSubscriptionEvent getEvent() {
return event;
}
- public String getKey()
- {
+ public String getKey() {
return key;
}
- public String getAccountKey()
- {
+ public String getAccountKey() {
return accountKey;
}
- public BusinessSubscription getNextSubscription()
- {
+ public BusinessSubscription getNextSubscription() {
return nextSubscription;
}
- public BusinessSubscription getPreviousSubscription()
- {
+ public BusinessSubscription getPreviousSubscription() {
return previousSubscription;
}
- public DateTime getRequestedTimestamp()
- {
+ public DateTime getRequestedTimestamp() {
return requestedTimestamp;
}
@Override
- public String toString()
- {
+ public String toString() {
final StringBuilder sb = new StringBuilder();
sb.append("BusinessSubscriptionTransition");
sb.append("{accountKey='").append(accountKey).append('\'');
@@ -114,8 +104,7 @@ public class BusinessSubscriptionTransition
}
@Override
- public boolean equals(final Object o)
- {
+ public boolean equals(final Object o) {
if (this == o) {
return true;
}
@@ -151,8 +140,7 @@ public class BusinessSubscriptionTransition
}
@Override
- public int hashCode()
- {
+ public int hashCode() {
int result = id != null ? id.hashCode() : 0;
result = 31 * result + (key != null ? key.hashCode() : 0);
result = 31 * result + (accountKey != null ? accountKey.hashCode() : 0);
diff --git a/analytics/src/main/java/com/ning/billing/analytics/BusinessSubscriptionTransitionRecorder.java b/analytics/src/main/java/com/ning/billing/analytics/BusinessSubscriptionTransitionRecorder.java
index 0044758..45d84ee 100644
--- a/analytics/src/main/java/com/ning/billing/analytics/BusinessSubscriptionTransitionRecorder.java
+++ b/analytics/src/main/java/com/ning/billing/analytics/BusinessSubscriptionTransitionRecorder.java
@@ -16,6 +16,13 @@
package com.ning.billing.analytics;
+import java.util.List;
+import java.util.UUID;
+
+import org.joda.time.DateTime;
+import org.slf4j.Logger;
+import org.slf4j.LoggerFactory;
+
import com.google.inject.Inject;
import com.ning.billing.account.api.Account;
import com.ning.billing.account.api.AccountApiException;
@@ -27,15 +34,8 @@ import com.ning.billing.entitlement.api.user.EntitlementUserApi;
import com.ning.billing.entitlement.api.user.EntitlementUserApiException;
import com.ning.billing.entitlement.api.user.SubscriptionBundle;
import com.ning.billing.entitlement.api.user.SubscriptionEvent;
-import org.joda.time.DateTime;
-import org.slf4j.Logger;
-import org.slf4j.LoggerFactory;
-import java.util.List;
-import java.util.UUID;
-
-public class BusinessSubscriptionTransitionRecorder
-{
+public class BusinessSubscriptionTransitionRecorder {
private static final Logger log = LoggerFactory.getLogger(BusinessSubscriptionTransitionRecorder.class);
private final BusinessSubscriptionTransitionDao dao;
@@ -44,8 +44,7 @@ public class BusinessSubscriptionTransitionRecorder
private final CatalogService catalogService;
@Inject
- public BusinessSubscriptionTransitionRecorder(final BusinessSubscriptionTransitionDao dao, final CatalogService catalogService, final EntitlementUserApi entitlementApi, final AccountUserApi accountApi)
- {
+ public BusinessSubscriptionTransitionRecorder(final BusinessSubscriptionTransitionDao dao, final CatalogService catalogService, final EntitlementUserApi entitlementApi, final AccountUserApi accountApi) {
this.dao = dao;
this.catalogService = catalogService;
this.entitlementApi = entitlementApi;
@@ -53,43 +52,37 @@ public class BusinessSubscriptionTransitionRecorder
}
- public void subscriptionCreated(final SubscriptionEvent created) throws AccountApiException, EntitlementUserApiException
- {
+ public void subscriptionCreated(final SubscriptionEvent created) throws AccountApiException, EntitlementUserApiException {
final BusinessSubscriptionEvent event = BusinessSubscriptionEvent.subscriptionCreated(created.getNextPlan(), catalogService.getFullCatalog(), created.getEffectiveTransitionTime(), created.getSubscriptionStartDate());
recordTransition(event, created);
}
- public void subscriptionRecreated(final SubscriptionEvent recreated) throws AccountApiException, EntitlementUserApiException
- {
+ public void subscriptionRecreated(final SubscriptionEvent recreated) throws AccountApiException, EntitlementUserApiException {
final BusinessSubscriptionEvent event = BusinessSubscriptionEvent.subscriptionRecreated(recreated.getNextPlan(), catalogService.getFullCatalog(), recreated.getEffectiveTransitionTime(), recreated.getSubscriptionStartDate());
recordTransition(event, recreated);
}
- public void subscriptionCancelled(final SubscriptionEvent cancelled) throws AccountApiException, EntitlementUserApiException
- {
+ public void subscriptionCancelled(final SubscriptionEvent cancelled) throws AccountApiException, EntitlementUserApiException {
// cancelled.getNextPlan() is null here - need to look at the previous one to create the correct event name
final BusinessSubscriptionEvent event = BusinessSubscriptionEvent.subscriptionCancelled(cancelled.getPreviousPlan(), catalogService.getFullCatalog(), cancelled.getEffectiveTransitionTime(), cancelled.getSubscriptionStartDate());
recordTransition(event, cancelled);
}
- public void subscriptionChanged(final SubscriptionEvent changed) throws AccountApiException, EntitlementUserApiException
- {
+ public void subscriptionChanged(final SubscriptionEvent changed) throws AccountApiException, EntitlementUserApiException {
final BusinessSubscriptionEvent event = BusinessSubscriptionEvent.subscriptionChanged(changed.getNextPlan(), catalogService.getFullCatalog(), changed.getEffectiveTransitionTime(), changed.getSubscriptionStartDate());
recordTransition(event, changed);
}
- public void subscriptionPhaseChanged(final SubscriptionEvent phaseChanged) throws AccountApiException, EntitlementUserApiException
- {
+ public void subscriptionPhaseChanged(final SubscriptionEvent phaseChanged) throws AccountApiException, EntitlementUserApiException {
final BusinessSubscriptionEvent event = BusinessSubscriptionEvent.subscriptionPhaseChanged(phaseChanged.getNextPlan(), phaseChanged.getNextState(), catalogService.getFullCatalog(), phaseChanged.getEffectiveTransitionTime(), phaseChanged.getSubscriptionStartDate());
recordTransition(event, phaseChanged);
}
- public void recordTransition(final BusinessSubscriptionEvent event, final SubscriptionEvent transition)
- throws AccountApiException, EntitlementUserApiException
- {
+ void recordTransition(final BusinessSubscriptionEvent event, final SubscriptionEvent transition)
+ throws AccountApiException, EntitlementUserApiException {
Currency currency = null;
String transitionKey = null;
String accountKey = null;
@@ -98,13 +91,13 @@ public class BusinessSubscriptionTransitionRecorder
final SubscriptionBundle bundle = entitlementApi.getBundleFromId(transition.getBundleId());
if (bundle != null) {
transitionKey = bundle.getKey();
-
+
final Account account = accountApi.getAccountById(bundle.getAccountId());
if (account != null) {
accountKey = account.getExternalKey();
currency = account.getCurrency();
}
- }
+ }
// The ISubscriptionTransition interface gives us all the prev/next information we need but the start date
// of the previous plan. We need to retrieve it from our own transitions table
@@ -121,9 +114,8 @@ public class BusinessSubscriptionTransitionRecorder
final BusinessSubscription prevSubscription;
if (previousEffectiveTransitionTime == null) {
prevSubscription = null;
- }
- else {
-
+ } else {
+
prevSubscription = new BusinessSubscription(transition.getPreviousPriceList(), transition.getPreviousPlan(), transition.getPreviousPhase(), currency, previousEffectiveTransitionTime, transition.getPreviousState(), transition.getSubscriptionId(), transition.getBundleId(), catalogService.getFullCatalog());
}
final BusinessSubscription nextSubscription;
@@ -131,8 +123,7 @@ public class BusinessSubscriptionTransitionRecorder
// next plan is null for CANCEL events
if (transition.getNextPlan() == null) {
nextSubscription = null;
- }
- else {
+ } else {
nextSubscription = new BusinessSubscription(transition.getNextPriceList(), transition.getNextPlan(), transition.getNextPhase(), currency, transition.getEffectiveTransitionTime(), transition.getNextState(), transition.getSubscriptionId(), transition.getBundleId(), catalogService.getFullCatalog());
}
@@ -140,16 +131,15 @@ public class BusinessSubscriptionTransitionRecorder
}
// Public for internal reasons
- public void record(final UUID id, final String key, final String accountKey, final DateTime requestedDateTime, final BusinessSubscriptionEvent event, final BusinessSubscription prevSubscription, final BusinessSubscription nextSubscription)
- {
+ void record(final UUID id, final String key, final String accountKey, final DateTime requestedDateTime, final BusinessSubscriptionEvent event, final BusinessSubscription prevSubscription, final BusinessSubscription nextSubscription) {
final BusinessSubscriptionTransition transition = new BusinessSubscriptionTransition(
- id,
- key,
- accountKey,
- requestedDateTime,
- event,
- prevSubscription,
- nextSubscription
+ id,
+ key,
+ accountKey,
+ requestedDateTime,
+ event,
+ prevSubscription,
+ nextSubscription
);
log.info(transition.getEvent() + " " + transition);
diff --git a/analytics/src/main/java/com/ning/billing/analytics/dao/BusinessAccountBinder.java b/analytics/src/main/java/com/ning/billing/analytics/dao/BusinessAccountBinder.java
index b9da3fa..234e543 100644
--- a/analytics/src/main/java/com/ning/billing/analytics/dao/BusinessAccountBinder.java
+++ b/analytics/src/main/java/com/ning/billing/analytics/dao/BusinessAccountBinder.java
@@ -16,8 +16,13 @@
package com.ning.billing.analytics.dao;
-import com.google.common.base.Joiner;
-import com.ning.billing.analytics.BusinessAccount;
+import java.lang.annotation.Annotation;
+import java.lang.annotation.ElementType;
+import java.lang.annotation.Retention;
+import java.lang.annotation.RetentionPolicy;
+import java.lang.annotation.Target;
+import java.sql.Types;
+
import org.joda.time.DateTime;
import org.joda.time.DateTimeZone;
import org.skife.jdbi.v2.SQLStatement;
@@ -25,34 +30,24 @@ import org.skife.jdbi.v2.sqlobject.Binder;
import org.skife.jdbi.v2.sqlobject.BinderFactory;
import org.skife.jdbi.v2.sqlobject.BindingAnnotation;
-import java.lang.annotation.Annotation;
-import java.lang.annotation.ElementType;
-import java.lang.annotation.Retention;
-import java.lang.annotation.RetentionPolicy;
-import java.lang.annotation.Target;
-import java.sql.Types;
+import com.google.common.base.Joiner;
+import com.ning.billing.analytics.BusinessAccount;
@BindingAnnotation(BusinessAccountBinder.BacBinderFactory.class)
@Retention(RetentionPolicy.RUNTIME)
@Target({ElementType.PARAMETER})
-public @interface BusinessAccountBinder
-{
- public static class BacBinderFactory implements BinderFactory
- {
+public @interface BusinessAccountBinder {
+ public static class BacBinderFactory implements BinderFactory {
private final Joiner joiner = Joiner.on(";").skipNulls();
- public Binder build(final Annotation annotation)
- {
- return new Binder<BusinessAccountBinder, BusinessAccount>()
- {
- public void bind(final SQLStatement q, final BusinessAccountBinder bind, final BusinessAccount account)
- {
+ public Binder build(final Annotation annotation) {
+ return new Binder<BusinessAccountBinder, BusinessAccount>() {
+ public void bind(final SQLStatement q, final BusinessAccountBinder bind, final BusinessAccount account) {
final DateTime dateTimeNow = new DateTime(DateTimeZone.UTC);
if (account.getCreatedDt() != null) {
q.bind("created_date", account.getCreatedDt().getMillis());
- }
- else {
+ } else {
q.bind("created_date", dateTimeNow.getMillis());
}
q.bind("updated_date", dateTimeNow.getMillis());
@@ -62,8 +57,7 @@ public @interface BusinessAccountBinder
q.bind("tags", joiner.join(account.getTags()));
if (account.getLastInvoiceDate() != null) {
q.bind("last_invoice_date", account.getLastInvoiceDate().getMillis());
- }
- else {
+ } else {
q.bindNull("last_invoice_date", Types.BIGINT);
}
q.bind("total_invoice_balance", account.getRoundedTotalInvoiceBalance());
diff --git a/analytics/src/main/java/com/ning/billing/analytics/dao/BusinessAccountDao.java b/analytics/src/main/java/com/ning/billing/analytics/dao/BusinessAccountDao.java
index 7223f82..0cd9db4 100644
--- a/analytics/src/main/java/com/ning/billing/analytics/dao/BusinessAccountDao.java
+++ b/analytics/src/main/java/com/ning/billing/analytics/dao/BusinessAccountDao.java
@@ -16,17 +16,17 @@
package com.ning.billing.analytics.dao;
-import com.ning.billing.analytics.BusinessAccount;
import org.skife.jdbi.v2.sqlobject.Bind;
import org.skife.jdbi.v2.sqlobject.SqlQuery;
import org.skife.jdbi.v2.sqlobject.SqlUpdate;
import org.skife.jdbi.v2.sqlobject.customizers.RegisterMapper;
import org.skife.jdbi.v2.sqlobject.stringtemplate.ExternalizedSqlViaStringTemplate3;
+import com.ning.billing.analytics.BusinessAccount;
+
@ExternalizedSqlViaStringTemplate3()
@RegisterMapper(BusinessAccountMapper.class)
-public interface BusinessAccountDao
-{
+public interface BusinessAccountDao {
@SqlQuery
BusinessAccount getAccount(@Bind("account_key") final String key);
diff --git a/analytics/src/main/java/com/ning/billing/analytics/dao/BusinessAccountDaoProvider.java b/analytics/src/main/java/com/ning/billing/analytics/dao/BusinessAccountDaoProvider.java
index a2d6b2e..f2a9bf4 100644
--- a/analytics/src/main/java/com/ning/billing/analytics/dao/BusinessAccountDaoProvider.java
+++ b/analytics/src/main/java/com/ning/billing/analytics/dao/BusinessAccountDaoProvider.java
@@ -17,22 +17,20 @@
package com.ning.billing.analytics.dao;
import org.skife.jdbi.v2.IDBI;
+
import com.google.inject.Inject;
import com.google.inject.Provider;
-public class BusinessAccountDaoProvider implements Provider<BusinessAccountDao>
-{
+public class BusinessAccountDaoProvider implements Provider<BusinessAccountDao> {
private final IDBI dbi;
@Inject
- public BusinessAccountDaoProvider(final IDBI dbi)
- {
+ public BusinessAccountDaoProvider(final IDBI dbi) {
this.dbi = dbi;
}
@Override
- public BusinessAccountDao get()
- {
+ public BusinessAccountDao get() {
return dbi.onDemand(BusinessAccountDao.class);
}
}
diff --git a/analytics/src/main/java/com/ning/billing/analytics/dao/BusinessAccountMapper.java b/analytics/src/main/java/com/ning/billing/analytics/dao/BusinessAccountMapper.java
index 03299d1..366bb3b 100644
--- a/analytics/src/main/java/com/ning/billing/analytics/dao/BusinessAccountMapper.java
+++ b/analytics/src/main/java/com/ning/billing/analytics/dao/BusinessAccountMapper.java
@@ -16,15 +16,6 @@
package com.ning.billing.analytics.dao;
-import com.google.common.base.Splitter;
-import com.google.common.collect.Iterables;
-import com.ning.billing.analytics.BusinessAccount;
-import com.ning.billing.util.tag.Tag;
-import org.joda.time.DateTime;
-import org.joda.time.DateTimeZone;
-import org.skife.jdbi.v2.StatementContext;
-import org.skife.jdbi.v2.tweak.ResultSetMapper;
-
import java.math.BigDecimal;
import java.sql.ResultSet;
import java.sql.SQLException;
@@ -32,13 +23,21 @@ import java.util.ArrayList;
import java.util.List;
import java.util.UUID;
-public class BusinessAccountMapper implements ResultSetMapper<BusinessAccount>
-{
+import org.joda.time.DateTime;
+import org.joda.time.DateTimeZone;
+import org.skife.jdbi.v2.StatementContext;
+import org.skife.jdbi.v2.tweak.ResultSetMapper;
+
+import com.google.common.base.Splitter;
+import com.google.common.collect.Iterables;
+import com.ning.billing.analytics.BusinessAccount;
+import com.ning.billing.util.tag.Tag;
+
+public class BusinessAccountMapper implements ResultSetMapper<BusinessAccount> {
private final Splitter splitter = Splitter.on(";").trimResults().omitEmptyStrings();
@Override
- public BusinessAccount map(final int index, final ResultSet r, final StatementContext ctx) throws SQLException
- {
+ public BusinessAccount map(final int index, final ResultSet r, final StatementContext ctx) throws SQLException {
final List<String> tagNames = new ArrayList<String>();
Iterables.addAll(tagNames, splitter.split(r.getString(5)));
@@ -46,22 +45,34 @@ public class BusinessAccountMapper implements ResultSetMapper<BusinessAccount>
for (final String tagName : tagNames) {
tags.add(new Tag() {
private final UUID id = UUID.randomUUID();
- @Override public String getTagDefinitionName() {return tagName;}
- @Override public UUID getId() {return id;}
- @Override public String toString() {return tagName;}
+
+ @Override
+ public String getTagDefinitionName() {
+ return tagName;
+ }
+
+ @Override
+ public UUID getId() {
+ return id;
+ }
+
+ @Override
+ public String toString() {
+ return tagName;
+ }
});
}
final BusinessAccount account = new BusinessAccount(
- r.getString(1),
- BigDecimal.valueOf(r.getDouble(4)),
- tags,
- new DateTime(r.getLong(6), DateTimeZone.UTC),
- BigDecimal.valueOf(r.getDouble(7)),
- r.getString(8),
- r.getString(9),
- r.getString(10),
- r.getString(11)
+ r.getString(1),
+ BigDecimal.valueOf(r.getDouble(4)),
+ tags,
+ new DateTime(r.getLong(6), DateTimeZone.UTC),
+ BigDecimal.valueOf(r.getDouble(7)),
+ r.getString(8),
+ r.getString(9),
+ r.getString(10),
+ r.getString(11)
);
account.setCreatedDt(new DateTime(r.getLong(2), DateTimeZone.UTC));
account.setUpdatedDt(new DateTime(r.getLong(3), DateTimeZone.UTC));
diff --git a/analytics/src/main/java/com/ning/billing/analytics/dao/BusinessSubscriptionTransitionBinder.java b/analytics/src/main/java/com/ning/billing/analytics/dao/BusinessSubscriptionTransitionBinder.java
index b769e5a..2a04c8e 100644
--- a/analytics/src/main/java/com/ning/billing/analytics/dao/BusinessSubscriptionTransitionBinder.java
+++ b/analytics/src/main/java/com/ning/billing/analytics/dao/BusinessSubscriptionTransitionBinder.java
@@ -16,13 +16,6 @@
package com.ning.billing.analytics.dao;
-import com.ning.billing.analytics.BusinessSubscription;
-import com.ning.billing.analytics.BusinessSubscriptionTransition;
-import org.skife.jdbi.v2.SQLStatement;
-import org.skife.jdbi.v2.sqlobject.Binder;
-import org.skife.jdbi.v2.sqlobject.BinderFactory;
-import org.skife.jdbi.v2.sqlobject.BindingAnnotation;
-
import java.lang.annotation.Annotation;
import java.lang.annotation.ElementType;
import java.lang.annotation.Retention;
@@ -30,19 +23,22 @@ import java.lang.annotation.RetentionPolicy;
import java.lang.annotation.Target;
import java.sql.Types;
+import org.skife.jdbi.v2.SQLStatement;
+import org.skife.jdbi.v2.sqlobject.Binder;
+import org.skife.jdbi.v2.sqlobject.BinderFactory;
+import org.skife.jdbi.v2.sqlobject.BindingAnnotation;
+
+import com.ning.billing.analytics.BusinessSubscription;
+import com.ning.billing.analytics.BusinessSubscriptionTransition;
+
@BindingAnnotation(BusinessSubscriptionTransitionBinder.BstBinderFactory.class)
@Retention(RetentionPolicy.RUNTIME)
@Target({ElementType.PARAMETER})
-public @interface BusinessSubscriptionTransitionBinder
-{
- public static class BstBinderFactory implements BinderFactory
- {
- public Binder build(final Annotation annotation)
- {
- return new Binder<BusinessSubscriptionTransitionBinder, BusinessSubscriptionTransition>()
- {
- public void bind(final SQLStatement q, final BusinessSubscriptionTransitionBinder bind, final BusinessSubscriptionTransition arg)
- {
+public @interface BusinessSubscriptionTransitionBinder {
+ public static class BstBinderFactory implements BinderFactory {
+ public Binder build(final Annotation annotation) {
+ return new Binder<BusinessSubscriptionTransitionBinder, BusinessSubscriptionTransition>() {
+ public void bind(final SQLStatement q, final BusinessSubscriptionTransitionBinder bind, final BusinessSubscriptionTransition arg) {
q.bind("event_id", arg.getId().toString());
q.bind("event_key", arg.getKey());
q.bind("account_key", arg.getAccountKey());
@@ -65,14 +61,12 @@ public @interface BusinessSubscriptionTransitionBinder
q.bindNull("prev_state", Types.VARCHAR);
q.bindNull("prev_subscription_id", Types.VARCHAR);
q.bindNull("prev_bundle_id", Types.VARCHAR);
- }
- else {
+ } else {
q.bind("prev_product_name", previousSubscription.getProductName());
q.bind("prev_product_type", previousSubscription.getProductType());
if (previousSubscription.getProductCategory() == null) {
q.bindNull("prev_product_category", Types.VARCHAR);
- }
- else {
+ } else {
q.bind("prev_product_category", previousSubscription.getProductCategory().toString());
}
q.bind("prev_slug", previousSubscription.getSlug());
@@ -84,26 +78,22 @@ public @interface BusinessSubscriptionTransitionBinder
q.bind("prev_currency", previousSubscription.getCurrency());
if (previousSubscription.getStartDate() == null) {
q.bindNull("prev_start_date", Types.BIGINT);
- }
- else {
+ } else {
q.bind("prev_start_date", previousSubscription.getStartDate().getMillis());
}
if (previousSubscription.getState() == null) {
q.bindNull("prev_state", Types.VARCHAR);
- }
- else {
+ } else {
q.bind("prev_state", previousSubscription.getState().toString());
}
if (previousSubscription.getSubscriptionId() == null) {
q.bindNull("prev_subscription_id", Types.VARCHAR);
- }
- else {
+ } else {
q.bind("prev_subscription_id", previousSubscription.getSubscriptionId().toString());
}
if (previousSubscription.getBundleId() == null) {
q.bindNull("prev_bundle_id", Types.VARCHAR);
- }
- else {
+ } else {
q.bind("prev_bundle_id", previousSubscription.getBundleId().toString());
}
}
@@ -124,14 +114,12 @@ public @interface BusinessSubscriptionTransitionBinder
q.bindNull("next_state", Types.VARCHAR);
q.bindNull("next_subscription_id", Types.VARCHAR);
q.bindNull("next_bundle_id", Types.VARCHAR);
- }
- else {
+ } else {
q.bind("next_product_name", nextSubscription.getProductName());
q.bind("next_product_type", nextSubscription.getProductType());
if (nextSubscription.getProductCategory() == null) {
q.bindNull("next_product_category", Types.VARCHAR);
- }
- else {
+ } else {
q.bind("next_product_category", nextSubscription.getProductCategory().toString());
}
q.bind("next_slug", nextSubscription.getSlug());
@@ -143,26 +131,22 @@ public @interface BusinessSubscriptionTransitionBinder
q.bind("next_currency", nextSubscription.getCurrency());
if (nextSubscription.getStartDate() == null) {
q.bindNull("next_start_date", Types.BIGINT);
- }
- else {
+ } else {
q.bind("next_start_date", nextSubscription.getStartDate().getMillis());
}
if (nextSubscription.getState() == null) {
q.bindNull("next_state", Types.VARCHAR);
- }
- else {
+ } else {
q.bind("next_state", nextSubscription.getState().toString());
}
if (nextSubscription.getSubscriptionId() == null) {
q.bindNull("next_subscription_id", Types.VARCHAR);
- }
- else {
+ } else {
q.bind("next_subscription_id", nextSubscription.getSubscriptionId().toString());
}
if (nextSubscription.getBundleId() == null) {
q.bindNull("next_bundle_id", Types.VARCHAR);
- }
- else {
+ } else {
q.bind("next_bundle_id", nextSubscription.getBundleId().toString());
}
}
diff --git a/analytics/src/main/java/com/ning/billing/analytics/dao/BusinessSubscriptionTransitionDao.java b/analytics/src/main/java/com/ning/billing/analytics/dao/BusinessSubscriptionTransitionDao.java
index cb57ab5..a05aeca 100644
--- a/analytics/src/main/java/com/ning/billing/analytics/dao/BusinessSubscriptionTransitionDao.java
+++ b/analytics/src/main/java/com/ning/billing/analytics/dao/BusinessSubscriptionTransitionDao.java
@@ -16,19 +16,19 @@
package com.ning.billing.analytics.dao;
-import com.ning.billing.analytics.BusinessSubscriptionTransition;
+import java.util.List;
+
import org.skife.jdbi.v2.sqlobject.Bind;
import org.skife.jdbi.v2.sqlobject.SqlQuery;
import org.skife.jdbi.v2.sqlobject.SqlUpdate;
import org.skife.jdbi.v2.sqlobject.customizers.RegisterMapper;
import org.skife.jdbi.v2.sqlobject.stringtemplate.ExternalizedSqlViaStringTemplate3;
-import java.util.List;
+import com.ning.billing.analytics.BusinessSubscriptionTransition;
@ExternalizedSqlViaStringTemplate3()
@RegisterMapper(BusinessSubscriptionTransitionMapper.class)
-public interface BusinessSubscriptionTransitionDao
-{
+public interface BusinessSubscriptionTransitionDao {
@SqlQuery
List<BusinessSubscriptionTransition> getTransitions(@Bind("event_key") final String key);
diff --git a/analytics/src/main/java/com/ning/billing/analytics/dao/BusinessSubscriptionTransitionDaoProvider.java b/analytics/src/main/java/com/ning/billing/analytics/dao/BusinessSubscriptionTransitionDaoProvider.java
index 0890f84..3519011 100644
--- a/analytics/src/main/java/com/ning/billing/analytics/dao/BusinessSubscriptionTransitionDaoProvider.java
+++ b/analytics/src/main/java/com/ning/billing/analytics/dao/BusinessSubscriptionTransitionDaoProvider.java
@@ -17,22 +17,20 @@
package com.ning.billing.analytics.dao;
import org.skife.jdbi.v2.IDBI;
+
import com.google.inject.Inject;
import com.google.inject.Provider;
-public class BusinessSubscriptionTransitionDaoProvider implements Provider<BusinessSubscriptionTransitionDao>
-{
+public class BusinessSubscriptionTransitionDaoProvider implements Provider<BusinessSubscriptionTransitionDao> {
private final IDBI dbi;
@Inject
- public BusinessSubscriptionTransitionDaoProvider(final IDBI dbi)
- {
+ public BusinessSubscriptionTransitionDaoProvider(final IDBI dbi) {
this.dbi = dbi;
}
@Override
- public BusinessSubscriptionTransitionDao get()
- {
+ public BusinessSubscriptionTransitionDao get() {
return dbi.onDemand(BusinessSubscriptionTransitionDao.class);
}
}
diff --git a/analytics/src/main/java/com/ning/billing/analytics/dao/BusinessSubscriptionTransitionMapper.java b/analytics/src/main/java/com/ning/billing/analytics/dao/BusinessSubscriptionTransitionMapper.java
index ed41ab5..ac38463 100644
--- a/analytics/src/main/java/com/ning/billing/analytics/dao/BusinessSubscriptionTransitionMapper.java
+++ b/analytics/src/main/java/com/ning/billing/analytics/dao/BusinessSubscriptionTransitionMapper.java
@@ -16,42 +16,41 @@
package com.ning.billing.analytics.dao;
-import com.ning.billing.analytics.BusinessSubscription;
-import com.ning.billing.analytics.BusinessSubscriptionEvent;
-import com.ning.billing.analytics.BusinessSubscriptionTransition;
-import com.ning.billing.catalog.api.ProductCategory;
+import java.math.BigDecimal;
+import java.sql.ResultSet;
+import java.sql.SQLException;
+import java.util.UUID;
+
import org.joda.time.DateTime;
import org.joda.time.DateTimeZone;
import org.skife.jdbi.v2.StatementContext;
import org.skife.jdbi.v2.tweak.ResultSetMapper;
-import java.math.BigDecimal;
-import java.sql.ResultSet;
-import java.sql.SQLException;
-import java.util.UUID;
+import com.ning.billing.analytics.BusinessSubscription;
+import com.ning.billing.analytics.BusinessSubscriptionEvent;
+import com.ning.billing.analytics.BusinessSubscriptionTransition;
+import com.ning.billing.catalog.api.ProductCategory;
import static com.ning.billing.entitlement.api.user.Subscription.SubscriptionState;
-public class BusinessSubscriptionTransitionMapper implements ResultSetMapper<BusinessSubscriptionTransition>
-{
+public class BusinessSubscriptionTransitionMapper implements ResultSetMapper<BusinessSubscriptionTransition> {
@Override
- public BusinessSubscriptionTransition map(final int index, final ResultSet r, final StatementContext ctx) throws SQLException
- {
+ public BusinessSubscriptionTransition map(final int index, final ResultSet r, final StatementContext ctx) throws SQLException {
BusinessSubscription prev = new BusinessSubscription(
- r.getString(6), // productName
- r.getString(7), // productType
- r.getString(8) == null ? null : ProductCategory.valueOf(r.getString(8)), // productCategory
- r.getString(9), // slug
- r.getString(10), // phase
- r.getString(11), // billing period
- BigDecimal.valueOf(r.getDouble(12)), // price
- r.getString(13), // priceList
- BigDecimal.valueOf(r.getDouble(14)), // mrr
- r.getString(15), // currency
- r.getLong(16) == 0 ? null : new DateTime(r.getLong(16), DateTimeZone.UTC), // startDate
- r.getString(17) == null ? null : SubscriptionState.valueOf(r.getString(17)), // state
- r.getString(18) == null ? null : UUID.fromString(r.getString(18)), // subscriptionId
- r.getString(19) == null ? null : UUID.fromString(r.getString(19)) //bundleId
+ r.getString(6), // productName
+ r.getString(7), // productType
+ r.getString(8) == null ? null : ProductCategory.valueOf(r.getString(8)), // productCategory
+ r.getString(9), // slug
+ r.getString(10), // phase
+ r.getString(11), // billing period
+ BigDecimal.valueOf(r.getDouble(12)), // price
+ r.getString(13), // priceList
+ BigDecimal.valueOf(r.getDouble(14)), // mrr
+ r.getString(15), // currency
+ r.getLong(16) == 0 ? null : new DateTime(r.getLong(16), DateTimeZone.UTC), // startDate
+ r.getString(17) == null ? null : SubscriptionState.valueOf(r.getString(17)), // state
+ r.getString(18) == null ? null : UUID.fromString(r.getString(18)), // subscriptionId
+ r.getString(19) == null ? null : UUID.fromString(r.getString(19)) //bundleId
);
// Avoid creating a dummy subscriptions with all null fields
@@ -60,20 +59,20 @@ public class BusinessSubscriptionTransitionMapper implements ResultSetMapper<Bus
}
BusinessSubscription next = new BusinessSubscription(
- r.getString(20), // productName
- r.getString(21), // productType
- r.getString(22) == null ? null : ProductCategory.valueOf(r.getString(22)), // productCategory
- r.getString(23), // slug8
- r.getString(24), // phase
- r.getString(25), // billing period
- BigDecimal.valueOf(r.getDouble(26)), // price
- r.getString(27), // priceList
- BigDecimal.valueOf(r.getDouble(28)), // mrr
- r.getString(29), // currency
- r.getLong(30) == 0 ? null : new DateTime(r.getLong(30), DateTimeZone.UTC), // startDate
- r.getString(31) == null ? null : SubscriptionState.valueOf(r.getString(31)), // state
- r.getString(32) == null ? null : UUID.fromString(r.getString(32)), // subscriptionId
- r.getString(33) == null ? null : UUID.fromString(r.getString(33)) //bundleId
+ r.getString(20), // productName
+ r.getString(21), // productType
+ r.getString(22) == null ? null : ProductCategory.valueOf(r.getString(22)), // productCategory
+ r.getString(23), // slug8
+ r.getString(24), // phase
+ r.getString(25), // billing period
+ BigDecimal.valueOf(r.getDouble(26)), // price
+ r.getString(27), // priceList
+ BigDecimal.valueOf(r.getDouble(28)), // mrr
+ r.getString(29), // currency
+ r.getLong(30) == 0 ? null : new DateTime(r.getLong(30), DateTimeZone.UTC), // startDate
+ r.getString(31) == null ? null : SubscriptionState.valueOf(r.getString(31)), // state
+ r.getString(32) == null ? null : UUID.fromString(r.getString(32)), // subscriptionId
+ r.getString(33) == null ? null : UUID.fromString(r.getString(33)) //bundleId
);
// Avoid creating a dummy subscriptions with all null fields
@@ -84,13 +83,13 @@ public class BusinessSubscriptionTransitionMapper implements ResultSetMapper<Bus
final BusinessSubscriptionEvent event = BusinessSubscriptionEvent.valueOf(r.getString(5));
return new BusinessSubscriptionTransition(
- UUID.fromString(r.getString(1)),
- r.getString(2),
- r.getString(3),
- new DateTime(r.getLong(4), DateTimeZone.UTC),
- event,
- prev,
- next
+ UUID.fromString(r.getString(1)),
+ r.getString(2),
+ r.getString(3),
+ new DateTime(r.getLong(4), DateTimeZone.UTC),
+ event,
+ prev,
+ next
);
}
}
diff --git a/analytics/src/main/java/com/ning/billing/analytics/setup/AnalyticsModule.java b/analytics/src/main/java/com/ning/billing/analytics/setup/AnalyticsModule.java
index 1b128b0..2233e1e 100644
--- a/analytics/src/main/java/com/ning/billing/analytics/setup/AnalyticsModule.java
+++ b/analytics/src/main/java/com/ning/billing/analytics/setup/AnalyticsModule.java
@@ -21,18 +21,16 @@ import com.google.inject.AbstractModule;
import com.ning.billing.analytics.AnalyticsListener;
import com.ning.billing.analytics.BusinessAccountRecorder;
import com.ning.billing.analytics.BusinessSubscriptionTransitionRecorder;
-import com.ning.billing.analytics.api.DefaultAnalyticsService;
import com.ning.billing.analytics.api.AnalyticsService;
+import com.ning.billing.analytics.api.DefaultAnalyticsService;
import com.ning.billing.analytics.dao.BusinessAccountDao;
import com.ning.billing.analytics.dao.BusinessAccountDaoProvider;
import com.ning.billing.analytics.dao.BusinessSubscriptionTransitionDao;
import com.ning.billing.analytics.dao.BusinessSubscriptionTransitionDaoProvider;
-public class AnalyticsModule extends AbstractModule
-{
+public class AnalyticsModule extends AbstractModule {
@Override
- protected void configure()
- {
+ protected void configure() {
bind(BusinessSubscriptionTransitionDao.class).toProvider(BusinessSubscriptionTransitionDaoProvider.class).asEagerSingleton();
bind(BusinessAccountDao.class).toProvider(BusinessAccountDaoProvider.class).asEagerSingleton();
diff --git a/analytics/src/main/java/com/ning/billing/analytics/utils/Rounder.java b/analytics/src/main/java/com/ning/billing/analytics/utils/Rounder.java
index ab5728d..6222a34 100644
--- a/analytics/src/main/java/com/ning/billing/analytics/utils/Rounder.java
+++ b/analytics/src/main/java/com/ning/billing/analytics/utils/Rounder.java
@@ -18,21 +18,17 @@ package com.ning.billing.analytics.utils;
import java.math.BigDecimal;
-public class Rounder
-{
+public class Rounder {
public static final int SCALE = 4;
// Static only
- private Rounder()
- {
+ private Rounder() {
}
- public static double round(final BigDecimal decimal)
- {
+ public static double round(final BigDecimal decimal) {
if (decimal == null) {
return 0;
- }
- else {
+ } else {
return decimal.setScale(SCALE, BigDecimal.ROUND_HALF_UP).doubleValue();
}
}
diff --git a/analytics/src/test/java/com/ning/billing/analytics/AnalyticsTestModule.java b/analytics/src/test/java/com/ning/billing/analytics/AnalyticsTestModule.java
index 17b3c14..71c35ac 100644
--- a/analytics/src/test/java/com/ning/billing/analytics/AnalyticsTestModule.java
+++ b/analytics/src/test/java/com/ning/billing/analytics/AnalyticsTestModule.java
@@ -36,11 +36,9 @@ import com.ning.billing.util.glue.NotificationQueueModule;
import com.ning.billing.util.glue.TagStoreModule;
import com.ning.billing.util.tag.dao.TagDefinitionSqlDao;
-public class AnalyticsTestModule extends AnalyticsModule
-{
+public class AnalyticsTestModule extends AnalyticsModule {
@Override
- protected void configure()
- {
+ protected void configure() {
super.configure();
// Need to configure a few more things for the EventBus
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 3a8637f..6037013 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
@@ -16,8 +16,6 @@
package com.ning.billing.analytics.api;
-import static org.testng.Assert.fail;
-
import java.io.IOException;
import java.math.BigDecimal;
import java.sql.SQLException;
@@ -26,10 +24,6 @@ import java.util.Arrays;
import java.util.List;
import java.util.UUID;
-import com.ning.billing.payment.api.DefaultPaymentAttempt;
-import com.ning.billing.util.tag.TagDefinition;
-import com.ning.billing.util.tag.dao.AuditedTagDao;
-import com.ning.billing.util.tag.dao.TagDao;
import org.apache.commons.io.IOUtils;
import org.joda.time.DateTime;
import org.testng.Assert;
@@ -82,6 +76,7 @@ import com.ning.billing.invoice.dao.InvoiceDao;
import com.ning.billing.invoice.model.DefaultInvoice;
import com.ning.billing.invoice.model.FixedPriceInvoiceItem;
import com.ning.billing.mock.BrainDeadProxyFactory.ZombieControl;
+import com.ning.billing.payment.api.DefaultPaymentAttempt;
import com.ning.billing.payment.api.DefaultPaymentInfoEvent;
import com.ning.billing.payment.api.PaymentAttempt;
import com.ning.billing.payment.api.PaymentAttempt.PaymentAttemptStatus;
@@ -95,11 +90,16 @@ import com.ning.billing.util.callcontext.UserType;
import com.ning.billing.util.clock.Clock;
import com.ning.billing.util.clock.DefaultClock;
import com.ning.billing.util.tag.DefaultTagDefinition;
+import com.ning.billing.util.tag.TagDefinition;
+import com.ning.billing.util.tag.dao.AuditedTagDao;
+import com.ning.billing.util.tag.dao.TagDao;
import com.ning.billing.util.tag.dao.TagDefinitionSqlDao;
+import static org.testng.Assert.fail;
+
@Guice(modules = {AnalyticsTestModule.class, MockCatalogModule.class})
public class TestAnalyticsService {
-
+
final Product product = new MockProduct("platinum", "subscription", ProductCategory.BASE);
final Plan plan = new MockPlan("platinum-monthly", product);
final PlanPhase phase = new MockPhase(PhaseType.EVERGREEN, plan, MockDuration.UNLIMITED(), 25.95);
@@ -156,22 +156,22 @@ public class TestAnalyticsService {
private PaymentInfoEvent paymentInfoNotification;
@Inject
- private CatalogService catalogService;
-
+ private CatalogService catalogService;
+
private Catalog catalog;
-
+
@BeforeClass(groups = "slow")
public void startMysql() throws IOException, ClassNotFoundException, SQLException, EntitlementUserApiException {
catalog = catalogService.getFullCatalog();
((ZombieControl) catalog).addResult("findPlan", plan);
- ((ZombieControl) catalog).addResult("findPhase", phase);
+ ((ZombieControl) catalog).addResult("findPhase", phase);
// Killbill generic setup
setupBusAndMySQL();
helper.cleanupAllTables();
-
+
tagDao.create(TAG_ONE, context);
tagDao.create(TAG_TWO, context);
@@ -212,7 +212,7 @@ public class TestAnalyticsService {
helper.initDb(junctionDdl);
helper.cleanupAllTables();
-
+
bus.start();
}
@@ -229,7 +229,7 @@ public class TestAnalyticsService {
final DateTime requestedTransitionTime = clock.getUTCNow();
final PriceList priceList = new MockPriceList().setName("something");
-
+
transition = new DefaultSubscriptionEvent(new SubscriptionTransitionData(
ID,
subscriptionId,
@@ -294,7 +294,7 @@ public class TestAnalyticsService {
helper.stopMysql();
}
- @Test(groups = "slow", enabled=true)
+ @Test(groups = "slow", enabled = true)
public void testRegisterForNotifications() throws Exception {
// Make sure the service has been instantiated
Assert.assertEquals(service.getName(), "analytics-service");
diff --git a/analytics/src/test/java/com/ning/billing/analytics/dao/TestAnalyticsDao.java b/analytics/src/test/java/com/ning/billing/analytics/dao/TestAnalyticsDao.java
index 9305d55..31b9097 100644
--- a/analytics/src/test/java/com/ning/billing/analytics/dao/TestAnalyticsDao.java
+++ b/analytics/src/test/java/com/ning/billing/analytics/dao/TestAnalyticsDao.java
@@ -16,6 +16,23 @@
package com.ning.billing.analytics.dao;
+import java.io.IOException;
+import java.math.BigDecimal;
+import java.sql.SQLException;
+import java.util.ArrayList;
+import java.util.List;
+import java.util.UUID;
+
+import org.apache.commons.io.IOUtils;
+import org.joda.time.DateTime;
+import org.joda.time.DateTimeZone;
+import org.skife.jdbi.v2.IDBI;
+import org.testng.Assert;
+import org.testng.annotations.AfterClass;
+import org.testng.annotations.BeforeClass;
+import org.testng.annotations.BeforeMethod;
+import org.testng.annotations.Test;
+
import com.ning.billing.analytics.BusinessAccount;
import com.ning.billing.analytics.BusinessSubscription;
import com.ning.billing.analytics.BusinessSubscriptionEvent;
@@ -37,27 +54,9 @@ import com.ning.billing.dbi.MysqlTestingHelper;
import com.ning.billing.entitlement.api.user.Subscription;
import com.ning.billing.mock.BrainDeadProxyFactory;
import com.ning.billing.mock.BrainDeadProxyFactory.ZombieControl;
-
import com.ning.billing.util.tag.Tag;
-import org.apache.commons.io.IOUtils;
-import org.joda.time.DateTime;
-import org.joda.time.DateTimeZone;
-import org.skife.jdbi.v2.IDBI;
-import org.testng.Assert;
-import org.testng.annotations.AfterClass;
-import org.testng.annotations.BeforeClass;
-import org.testng.annotations.BeforeMethod;
-import org.testng.annotations.Test;
-import java.io.IOException;
-import java.math.BigDecimal;
-import java.sql.SQLException;
-import java.util.ArrayList;
-import java.util.List;
-import java.util.UUID;
-
-public class TestAnalyticsDao
-{
+public class TestAnalyticsDao {
private static final UUID EVENT_ID = UUID.randomUUID();
private static final String EVENT_KEY = "23456";
private static final String ACCOUNT_KEY = "pierre-143343-vcc";
@@ -74,15 +73,14 @@ public class TestAnalyticsDao
private final CatalogService catalogService = BrainDeadProxyFactory.createBrainDeadProxyFor(CatalogService.class);
private final Catalog catalog = BrainDeadProxyFactory.createBrainDeadProxyFor(Catalog.class);
-
+
@BeforeClass(alwaysRun = true)
- public void startMysql() throws IOException, ClassNotFoundException, SQLException
- {
+ public void startMysql() throws IOException, ClassNotFoundException, SQLException {
((ZombieControl) catalog).addResult("findPlan", plan);
- ((ZombieControl) catalog).addResult("findPhase", phase);
- ((ZombieControl) catalogService).addResult("getFullCatalog", catalog);
-
+ ((ZombieControl) catalog).addResult("findPhase", phase);
+ ((ZombieControl) catalogService).addResult("getFullCatalog", catalog);
+
final String ddl = IOUtils.toString(BusinessSubscriptionTransitionDao.class.getResourceAsStream("/com/ning/billing/analytics/ddl.sql"));
helper.startMysql();
@@ -92,13 +90,12 @@ public class TestAnalyticsDao
setupBusinessAccount();
}
- private void setupBusinessSubscriptionTransition()
- {
+ private void setupBusinessSubscriptionTransition() {
final DateTime requestedTimestamp = new DateTime(DateTimeZone.UTC);
final BusinessSubscription prevSubscription = new BusinessSubscription(null, plan.getName(), phase.getName(), Currency.USD, new DateTime(DateTimeZone.UTC), Subscription.SubscriptionState.ACTIVE, UUID.randomUUID(), UUID.randomUUID(), catalog);
final BusinessSubscription nextSubscription = new BusinessSubscription(null, plan.getName(), phase.getName(), Currency.USD, new DateTime(DateTimeZone.UTC), Subscription.SubscriptionState.CANCELLED, UUID.randomUUID(), UUID.randomUUID(), catalog);
final BusinessSubscriptionEvent event = BusinessSubscriptionEvent.subscriptionCancelled(plan.getName(), catalog, requestedTimestamp, requestedTimestamp);
-
+
transition = new BusinessSubscriptionTransition(EVENT_ID, EVENT_KEY, ACCOUNT_KEY, requestedTimestamp, event, prevSubscription, nextSubscription);
@@ -108,14 +105,12 @@ public class TestAnalyticsDao
// Healthcheck test to make sure MySQL is setup properly
try {
businessSubscriptionTransitionDao.test();
- }
- catch (Throwable t) {
+ } catch (Throwable t) {
Assert.fail(t.toString());
}
}
- private void setupBusinessAccount()
- {
+ private void setupBusinessAccount() {
final List<Tag> tags = new ArrayList<Tag>();
tags.add(getMockTag("batch1"));
tags.add(getMockTag("great,guy"));
@@ -127,8 +122,7 @@ public class TestAnalyticsDao
// Healthcheck test to make sure MySQL is setup properly
try {
businessAccountDao.test();
- }
- catch (Throwable t) {
+ } catch (Throwable t) {
Assert.fail(t.toString());
}
}
@@ -142,29 +136,26 @@ public class TestAnalyticsDao
}
@AfterClass(groups = "slow")
- public void stopMysql()
- {
+ public void stopMysql() {
helper.stopMysql();
}
@BeforeMethod(groups = "slow")
- public void cleanup() throws Exception
- {
+ public void cleanup() throws Exception {
helper.cleanupTable("bst");
helper.cleanupTable("bac");
}
@Test(groups = "slow")
- public void testHandleDuplicatedEvents()
- {
+ public void testHandleDuplicatedEvents() {
final BusinessSubscriptionTransition transitionWithNullPrev = new BusinessSubscriptionTransition(
- transition.getId(),
- transition.getKey(),
- transition.getAccountKey(),
- transition.getRequestedTimestamp(),
- transition.getEvent(),
- null,
- transition.getNextSubscription()
+ transition.getId(),
+ transition.getKey(),
+ transition.getAccountKey(),
+ transition.getRequestedTimestamp(),
+ transition.getEvent(),
+ null,
+ transition.getNextSubscription()
);
businessSubscriptionTransitionDao.createTransition(transitionWithNullPrev);
@@ -179,13 +170,13 @@ public class TestAnalyticsDao
// Try now to store a look-alike transition (same fields except UUID) - we should store it this time
final BusinessSubscriptionTransition secondTransitionWithNullPrev = new BusinessSubscriptionTransition(
- UUID.randomUUID(),
- transition.getKey(),
- transition.getAccountKey(),
- transition.getRequestedTimestamp(),
- transition.getEvent(),
- null,
- transition.getNextSubscription()
+ UUID.randomUUID(),
+ transition.getKey(),
+ transition.getAccountKey(),
+ transition.getRequestedTimestamp(),
+ transition.getEvent(),
+ null,
+ transition.getNextSubscription()
);
businessSubscriptionTransitionDao.createTransition(secondTransitionWithNullPrev);
transitions = businessSubscriptionTransitionDao.getTransitions(EVENT_KEY);
@@ -195,16 +186,15 @@ public class TestAnalyticsDao
}
@Test(groups = "slow")
- public void testTransitionsWithNullPrevSubscription()
- {
+ public void testTransitionsWithNullPrevSubscription() {
final BusinessSubscriptionTransition transitionWithNullPrev = new BusinessSubscriptionTransition(
- transition.getId(),
- transition.getKey(),
- transition.getAccountKey(),
- transition.getRequestedTimestamp(),
- transition.getEvent(),
- null,
- transition.getNextSubscription()
+ transition.getId(),
+ transition.getKey(),
+ transition.getAccountKey(),
+ transition.getRequestedTimestamp(),
+ transition.getEvent(),
+ null,
+ transition.getNextSubscription()
);
businessSubscriptionTransitionDao.createTransition(transitionWithNullPrev);
@@ -214,16 +204,15 @@ public class TestAnalyticsDao
}
@Test(groups = "slow")
- public void testTransitionsWithNullNextSubscription()
- {
+ public void testTransitionsWithNullNextSubscription() {
final BusinessSubscriptionTransition transitionWithNullNext = new BusinessSubscriptionTransition(
- transition.getId(),
- transition.getKey(),
- transition.getAccountKey(),
- transition.getRequestedTimestamp(),
- transition.getEvent(),
- transition.getPreviousSubscription(),
- null
+ transition.getId(),
+ transition.getKey(),
+ transition.getAccountKey(),
+ transition.getRequestedTimestamp(),
+ transition.getEvent(),
+ transition.getPreviousSubscription(),
+ null
);
businessSubscriptionTransitionDao.createTransition(transitionWithNullNext);
@@ -233,17 +222,16 @@ public class TestAnalyticsDao
}
@Test(groups = "slow")
- public void testTransitionsWithNullFieldsInSubscription()
- {
+ public void testTransitionsWithNullFieldsInSubscription() {
final BusinessSubscription subscriptionWithNullFields = new BusinessSubscription(null, plan.getName(), phase.getName(), Currency.USD, null, null, null, null, catalog);
final BusinessSubscriptionTransition transitionWithNullFields = new BusinessSubscriptionTransition(
- transition.getId(),
- transition.getKey(),
- transition.getAccountKey(),
- transition.getRequestedTimestamp(),
- transition.getEvent(),
- subscriptionWithNullFields,
- subscriptionWithNullFields
+ transition.getId(),
+ transition.getKey(),
+ transition.getAccountKey(),
+ transition.getRequestedTimestamp(),
+ transition.getEvent(),
+ subscriptionWithNullFields,
+ subscriptionWithNullFields
);
businessSubscriptionTransitionDao.createTransition(transitionWithNullFields);
@@ -253,17 +241,16 @@ public class TestAnalyticsDao
}
@Test(groups = "slow")
- public void testTransitionsWithNullPlanAndPhase() throws Exception
- {
+ public void testTransitionsWithNullPlanAndPhase() throws Exception {
final BusinessSubscription subscriptionWithNullPlanAndPhase = new BusinessSubscription(null, null, null, Currency.USD, null, null, null, null, catalog);
final BusinessSubscriptionTransition transitionWithNullPlanAndPhase = new BusinessSubscriptionTransition(
- transition.getId(),
- transition.getKey(),
- transition.getAccountKey(),
- transition.getRequestedTimestamp(),
- transition.getEvent(),
- subscriptionWithNullPlanAndPhase,
- subscriptionWithNullPlanAndPhase
+ transition.getId(),
+ transition.getKey(),
+ transition.getAccountKey(),
+ transition.getRequestedTimestamp(),
+ transition.getEvent(),
+ subscriptionWithNullPlanAndPhase,
+ subscriptionWithNullPlanAndPhase
);
businessSubscriptionTransitionDao.createTransition(transitionWithNullPlanAndPhase);
@@ -277,17 +264,16 @@ public class TestAnalyticsDao
}
@Test(groups = "slow")
- public void testTransitionsWithNullPlan() throws Exception
- {
+ public void testTransitionsWithNullPlan() throws Exception {
final BusinessSubscription subscriptionWithNullPlan = new BusinessSubscription(null, null, phase.getName(), Currency.USD, null, null, null, null, catalog);
final BusinessSubscriptionTransition transitionWithNullPlan = new BusinessSubscriptionTransition(
- transition.getId(),
- transition.getKey(),
- transition.getAccountKey(),
- transition.getRequestedTimestamp(),
- transition.getEvent(),
- subscriptionWithNullPlan,
- subscriptionWithNullPlan
+ transition.getId(),
+ transition.getKey(),
+ transition.getAccountKey(),
+ transition.getRequestedTimestamp(),
+ transition.getEvent(),
+ subscriptionWithNullPlan,
+ subscriptionWithNullPlan
);
businessSubscriptionTransitionDao.createTransition(transitionWithNullPlan);
@@ -298,17 +284,16 @@ public class TestAnalyticsDao
}
@Test(groups = "slow")
- public void testTransitionsWithNullPhase() throws Exception
- {
+ public void testTransitionsWithNullPhase() throws Exception {
final BusinessSubscription subscriptionWithNullPhase = new BusinessSubscription(null, plan.getName(), null, Currency.USD, null, null, null, null, catalog);
final BusinessSubscriptionTransition transitionWithNullPhase = new BusinessSubscriptionTransition(
- transition.getId(),
- transition.getKey(),
- transition.getAccountKey(),
- transition.getRequestedTimestamp(),
- transition.getEvent(),
- subscriptionWithNullPhase,
- subscriptionWithNullPhase
+ transition.getId(),
+ transition.getKey(),
+ transition.getAccountKey(),
+ transition.getRequestedTimestamp(),
+ transition.getEvent(),
+ subscriptionWithNullPhase,
+ subscriptionWithNullPhase
);
businessSubscriptionTransitionDao.createTransition(transitionWithNullPhase);
@@ -325,8 +310,7 @@ public class TestAnalyticsDao
}
@Test(groups = "slow")
- public void testCreateAndRetrieveTransitions()
- {
+ public void testCreateAndRetrieveTransitions() {
businessSubscriptionTransitionDao.createTransition(transition);
final List<BusinessSubscriptionTransition> transitions = businessSubscriptionTransitionDao.getTransitions(EVENT_KEY);
@@ -337,8 +321,7 @@ public class TestAnalyticsDao
}
@Test(groups = "slow")
- public void testCreateSaveAndRetrieveAccounts()
- {
+ public void testCreateSaveAndRetrieveAccounts() {
// Create and retrieve an account
businessAccountDao.createAccount(account);
final BusinessAccount foundAccount = businessAccountDao.getAccount(ACCOUNT_KEY);
diff --git a/analytics/src/test/java/com/ning/billing/analytics/MockAccount.java b/analytics/src/test/java/com/ning/billing/analytics/MockAccount.java
index 6a11803..bdad487 100644
--- a/analytics/src/test/java/com/ning/billing/analytics/MockAccount.java
+++ b/analytics/src/test/java/com/ning/billing/analytics/MockAccount.java
@@ -25,14 +25,12 @@ import com.ning.billing.account.api.MutableAccountData;
import com.ning.billing.catalog.api.Currency;
import com.ning.billing.junction.api.BlockingState;
-public class MockAccount implements Account
-{
+public class MockAccount implements Account {
private final UUID id;
private final String accountKey;
private final Currency currency;
- public MockAccount(final UUID id, final String accountKey, final Currency currency)
- {
+ public MockAccount(final UUID id, final String accountKey, final Currency currency) {
this.id = id;
this.accountKey = accountKey;
this.currency = currency;
@@ -44,14 +42,12 @@ public class MockAccount implements Account
}
@Override
- public String getEmail()
- {
+ public String getEmail() {
return "test@test.com";
}
@Override
- public String getPhone()
- {
+ public String getPhone() {
return "408-555-6665";
}
@@ -66,8 +62,7 @@ public class MockAccount implements Account
}
@Override
- public String getExternalKey()
- {
+ public String getExternalKey() {
return accountKey;
}
@@ -77,14 +72,12 @@ public class MockAccount implements Account
}
@Override
- public int getBillCycleDay()
- {
+ public int getBillCycleDay() {
return 12;
}
@Override
- public Currency getCurrency()
- {
+ public Currency getCurrency() {
return currency;
}
@@ -139,8 +132,7 @@ public class MockAccount implements Account
}
@Override
- public UUID getId()
- {
+ public UUID getId() {
return id;
}
diff --git a/analytics/src/test/java/com/ning/billing/analytics/MockAccountUserApi.java b/analytics/src/test/java/com/ning/billing/analytics/MockAccountUserApi.java
index 795360f..d650fe2 100644
--- a/analytics/src/test/java/com/ning/billing/analytics/MockAccountUserApi.java
+++ b/analytics/src/test/java/com/ning/billing/analytics/MockAccountUserApi.java
@@ -19,35 +19,32 @@ package com.ning.billing.analytics;
import java.util.List;
import java.util.UUID;
-import com.ning.billing.account.api.AccountEmail;
-import com.ning.billing.util.tag.TagDefinition;
import org.apache.commons.lang.NotImplementedException;
import com.ning.billing.account.api.Account;
import com.ning.billing.account.api.AccountApiException;
import com.ning.billing.account.api.AccountData;
+import com.ning.billing.account.api.AccountEmail;
import com.ning.billing.account.api.AccountUserApi;
import com.ning.billing.account.api.DefaultAccount;
import com.ning.billing.account.api.MigrationAccountData;
import com.ning.billing.catalog.api.Currency;
import com.ning.billing.util.callcontext.CallContext;
import com.ning.billing.util.customfield.CustomField;
+import com.ning.billing.util.tag.TagDefinition;
-public class MockAccountUserApi implements AccountUserApi
-{
+public class MockAccountUserApi implements AccountUserApi {
private final AccountData account;
private final UUID id;
- public MockAccountUserApi(final String accountKey, final Currency currency)
- {
+ public MockAccountUserApi(final String accountKey, final Currency currency) {
this.id = UUID.randomUUID();
account = new MockAccount(id, accountKey, currency);
}
@Override
public Account createAccount(final AccountData data, final List<CustomField> fields,
- final List<TagDefinition> tagDefinitions, final CallContext context)
- {
+ final List<TagDefinition> tagDefinitions, final CallContext context) {
throw new UnsupportedOperationException();
}
@@ -57,8 +54,7 @@ public class MockAccountUserApi implements AccountUserApi
}
@Override
- public Account getAccountByKey(final String key)
- {
+ public Account getAccountByKey(final String key) {
throw new UnsupportedOperationException();
}
@@ -68,8 +64,7 @@ public class MockAccountUserApi implements AccountUserApi
}
@Override
- public List<Account> getAccounts()
- {
+ public List<Account> getAccounts() {
throw new UnsupportedOperationException();
}
@@ -89,17 +84,17 @@ public class MockAccountUserApi implements AccountUserApi
}
@Override
- public Account migrateAccount(MigrationAccountData data,
- List<CustomField> fields, List<TagDefinition> tagDefinitions, final CallContext context)
- throws AccountApiException {
- throw new UnsupportedOperationException();
- }
-
- @Override
- public void updateAccount(String key, AccountData accountData, final CallContext context)
- throws AccountApiException {
- throw new UnsupportedOperationException();
- }
+ public Account migrateAccount(MigrationAccountData data,
+ List<CustomField> fields, List<TagDefinition> tagDefinitions, final CallContext context)
+ throws AccountApiException {
+ throw new UnsupportedOperationException();
+ }
+
+ @Override
+ public void updateAccount(String key, AccountData accountData, final CallContext context)
+ throws AccountApiException {
+ throw new UnsupportedOperationException();
+ }
@Override
public void updateAccount(UUID accountId, AccountData accountData, CallContext context)
diff --git a/analytics/src/test/java/com/ning/billing/analytics/MockBusinessSubscriptionTransitionDao.java b/analytics/src/test/java/com/ning/billing/analytics/MockBusinessSubscriptionTransitionDao.java
index d7e36b4..68012eb 100644
--- a/analytics/src/test/java/com/ning/billing/analytics/MockBusinessSubscriptionTransitionDao.java
+++ b/analytics/src/test/java/com/ning/billing/analytics/MockBusinessSubscriptionTransitionDao.java
@@ -16,28 +16,26 @@
package com.ning.billing.analytics;
-import com.ning.billing.analytics.dao.BusinessSubscriptionTransitionBinder;
-import com.ning.billing.analytics.dao.BusinessSubscriptionTransitionDao;
-import org.skife.jdbi.v2.sqlobject.Bind;
-
import java.util.ArrayList;
import java.util.HashMap;
import java.util.List;
import java.util.Map;
-public class MockBusinessSubscriptionTransitionDao implements BusinessSubscriptionTransitionDao
-{
+import org.skife.jdbi.v2.sqlobject.Bind;
+
+import com.ning.billing.analytics.dao.BusinessSubscriptionTransitionBinder;
+import com.ning.billing.analytics.dao.BusinessSubscriptionTransitionDao;
+
+public class MockBusinessSubscriptionTransitionDao implements BusinessSubscriptionTransitionDao {
private final Map<String, List<BusinessSubscriptionTransition>> content = new HashMap<String, List<BusinessSubscriptionTransition>>();
@Override
- public List<BusinessSubscriptionTransition> getTransitions(@Bind("event_key") final String key)
- {
+ public List<BusinessSubscriptionTransition> getTransitions(@Bind("event_key") final String key) {
return content.get(key);
}
@Override
- public int createTransition(@BusinessSubscriptionTransitionBinder final BusinessSubscriptionTransition transition)
- {
+ public int createTransition(@BusinessSubscriptionTransitionBinder final BusinessSubscriptionTransition transition) {
if (content.get(transition.getKey()) == null) {
content.put(transition.getKey(), new ArrayList<BusinessSubscriptionTransition>());
}
@@ -46,7 +44,6 @@ public class MockBusinessSubscriptionTransitionDao implements BusinessSubscripti
}
@Override
- public void test()
- {
+ public void test() {
}
}
diff --git a/analytics/src/test/java/com/ning/billing/analytics/MockDuration.java b/analytics/src/test/java/com/ning/billing/analytics/MockDuration.java
index e2fa1a2..2bc723b 100644
--- a/analytics/src/test/java/com/ning/billing/analytics/MockDuration.java
+++ b/analytics/src/test/java/com/ning/billing/analytics/MockDuration.java
@@ -16,27 +16,23 @@
package com.ning.billing.analytics;
-import com.ning.billing.catalog.api.Duration;
-import com.ning.billing.catalog.api.TimeUnit;
import org.apache.commons.lang.NotImplementedException;
import org.joda.time.DateTime;
import org.joda.time.Period;
-public class MockDuration
-{
- public static Duration MONHTLY()
- {
- return new Duration()
- {
+import com.ning.billing.catalog.api.Duration;
+import com.ning.billing.catalog.api.TimeUnit;
+
+public class MockDuration {
+ public static Duration MONHTLY() {
+ return new Duration() {
@Override
- public TimeUnit getUnit()
- {
+ public TimeUnit getUnit() {
return TimeUnit.MONTHS;
}
@Override
- public int getNumber()
- {
+ public int getNumber() {
return 1;
}
@@ -44,6 +40,7 @@ public class MockDuration
public DateTime addToDateTime(DateTime dateTime) {
throw new NotImplementedException();
}
+
@Override
public Period toJodaPeriod() {
throw new UnsupportedOperationException();
@@ -51,19 +48,15 @@ public class MockDuration
};
}
- public static Duration YEARLY()
- {
- return new Duration()
- {
+ public static Duration YEARLY() {
+ return new Duration() {
@Override
- public TimeUnit getUnit()
- {
+ public TimeUnit getUnit() {
return TimeUnit.YEARS;
}
@Override
- public int getNumber()
- {
+ public int getNumber() {
return 1;
}
@@ -71,6 +64,7 @@ public class MockDuration
public DateTime addToDateTime(DateTime dateTime) {
throw new NotImplementedException();
}
+
@Override
public Period toJodaPeriod() {
throw new UnsupportedOperationException();
@@ -78,19 +72,15 @@ public class MockDuration
};
}
- public static Duration UNLIMITED()
- {
- return new Duration()
- {
+ public static Duration UNLIMITED() {
+ return new Duration() {
@Override
- public TimeUnit getUnit()
- {
+ public TimeUnit getUnit() {
return TimeUnit.UNLIMITED;
}
@Override
- public int getNumber()
- {
+ public int getNumber() {
return 1;
}
@@ -98,6 +88,7 @@ public class MockDuration
public DateTime addToDateTime(DateTime dateTime) {
throw new NotImplementedException();
}
+
@Override
public Period toJodaPeriod() {
throw new UnsupportedOperationException();
diff --git a/analytics/src/test/java/com/ning/billing/analytics/MockEntitlementUserApi.java b/analytics/src/test/java/com/ning/billing/analytics/MockEntitlementUserApi.java
index 725c62b..789edfc 100644
--- a/analytics/src/test/java/com/ning/billing/analytics/MockEntitlementUserApi.java
+++ b/analytics/src/test/java/com/ning/billing/analytics/MockEntitlementUserApi.java
@@ -33,46 +33,38 @@ import com.ning.billing.junction.api.BlockingState;
import com.ning.billing.overdue.OverdueState;
import com.ning.billing.util.callcontext.CallContext;
-public class MockEntitlementUserApi implements EntitlementUserApi
-{
+public class MockEntitlementUserApi implements EntitlementUserApi {
private final Map<UUID, String> subscriptionBundles = new HashMap<UUID, String>();
- public MockEntitlementUserApi(final UUID bundleUUID, final String key)
- {
+ public MockEntitlementUserApi(final UUID bundleUUID, final String key) {
subscriptionBundles.put(bundleUUID, key);
}
@Override
- public SubscriptionBundle getBundleFromId(final UUID id)
- {
+ public SubscriptionBundle getBundleFromId(final UUID id) {
final String key = subscriptionBundles.get(id);
if (key == null) {
return null;
}
- return new SubscriptionBundle()
- {
+ return new SubscriptionBundle() {
@Override
- public UUID getAccountId()
- {
+ public UUID getAccountId() {
return UUID.randomUUID();
}
@Override
- public UUID getId()
- {
+ public UUID getId() {
return id;
}
@Override
- public DateTime getStartDate()
- {
+ public DateTime getStartDate() {
throw new UnsupportedOperationException();
}
@Override
- public String getKey()
- {
+ public String getKey() {
return key;
}
@@ -89,26 +81,22 @@ public class MockEntitlementUserApi implements EntitlementUserApi
}
@Override
- public Subscription getSubscriptionFromId(final UUID id)
- {
+ public Subscription getSubscriptionFromId(final UUID id) {
throw new UnsupportedOperationException();
}
@Override
- public List<SubscriptionBundle> getBundlesForAccount(final UUID accountId)
- {
+ public List<SubscriptionBundle> getBundlesForAccount(final UUID accountId) {
throw new UnsupportedOperationException();
}
@Override
- public List<Subscription> getSubscriptionsForBundle(final UUID bundleId)
- {
+ public List<Subscription> getSubscriptionsForBundle(final UUID bundleId) {
throw new UnsupportedOperationException();
}
@Override
- public SubscriptionBundle createBundleForAccount(final UUID accountId, final String bundleKey, CallContext context) throws EntitlementUserApiException
- {
+ public SubscriptionBundle createBundleForAccount(final UUID accountId, final String bundleKey, CallContext context) throws EntitlementUserApiException {
throw new UnsupportedOperationException();
}
@@ -117,21 +105,21 @@ public class MockEntitlementUserApi implements EntitlementUserApi
throw new UnsupportedOperationException();
}
- @Override
- public Subscription createSubscription(UUID bundleId, PlanPhaseSpecifier spec,
- DateTime requestedDate, CallContext context) throws EntitlementUserApiException {
+ @Override
+ public Subscription createSubscription(UUID bundleId, PlanPhaseSpecifier spec,
+ DateTime requestedDate, CallContext context) throws EntitlementUserApiException {
throw new UnsupportedOperationException();
- }
+ }
@Override
public SubscriptionBundle getBundleForKey(String bundleKey) {
throw new UnsupportedOperationException();
}
- @Override
- public DateTime getNextBillingDate(UUID account) {
- throw new UnsupportedOperationException();
- }
+ @Override
+ public DateTime getNextBillingDate(UUID account) {
+ throw new UnsupportedOperationException();
+ }
@Override
public Subscription getBaseSubscription(UUID bundleId) {
diff --git a/analytics/src/test/java/com/ning/billing/analytics/MockPhase.java b/analytics/src/test/java/com/ning/billing/analytics/MockPhase.java
index 10b5c70..c3779df 100644
--- a/analytics/src/test/java/com/ning/billing/analytics/MockPhase.java
+++ b/analytics/src/test/java/com/ning/billing/analytics/MockPhase.java
@@ -16,6 +16,8 @@
package com.ning.billing.analytics;
+import java.math.BigDecimal;
+
import com.ning.billing.catalog.api.BillingPeriod;
import com.ning.billing.catalog.api.Currency;
import com.ning.billing.catalog.api.Duration;
@@ -25,17 +27,13 @@ import com.ning.billing.catalog.api.Plan;
import com.ning.billing.catalog.api.PlanPhase;
import com.ning.billing.catalog.api.Price;
-import java.math.BigDecimal;
-
-public class MockPhase implements PlanPhase
-{
+public class MockPhase implements PlanPhase {
private final PhaseType cohort;
private final Plan plan;
private final Duration duration;
private final double price;
- public MockPhase(final PhaseType cohort, final Plan plan, final Duration duration, final double price)
- {
+ public MockPhase(final PhaseType cohort, final Plan plan, final Duration duration, final double price) {
this.cohort = cohort;
this.plan = plan;
this.duration = duration;
@@ -43,86 +41,72 @@ public class MockPhase implements PlanPhase
}
@Override
- public InternationalPrice getRecurringPrice()
- {
- return new InternationalPrice()
- {
+ public InternationalPrice getRecurringPrice() {
+ return new InternationalPrice() {
@Override
- public Price[] getPrices()
- {
+ public Price[] getPrices() {
throw new UnsupportedOperationException();
}
@Override
- public BigDecimal getPrice(final Currency currency)
- {
+ public BigDecimal getPrice(final Currency currency) {
return BigDecimal.valueOf(price);
}
- @Override
- public boolean isZero() {
- return price == 0.0;
- }
+ @Override
+ public boolean isZero() {
+ return price == 0.0;
+ }
- };
+ };
}
@Override
- public InternationalPrice getFixedPrice()
- {
- return new InternationalPrice()
- {
+ public InternationalPrice getFixedPrice() {
+ return new InternationalPrice() {
@Override
- public Price[] getPrices()
- {
+ public Price[] getPrices() {
throw new UnsupportedOperationException();
}
@Override
- public BigDecimal getPrice(final Currency currency)
- {
+ public BigDecimal getPrice(final Currency currency) {
return BigDecimal.valueOf(price);
}
-
- @Override
- public boolean isZero() {
- return price == 0.0;
- }
+
+ @Override
+ public boolean isZero() {
+ return price == 0.0;
+ }
};
}
@Override
- public BillingPeriod getBillingPeriod()
- {
+ public BillingPeriod getBillingPeriod() {
return null;
}
@Override
- public String getName()
- {
+ public String getName() {
if (plan == null) {
return null;
- }
- else {
+ } else {
return plan.getName() + "-" + cohort;
}
}
@Override
- public Plan getPlan()
- {
+ public Plan getPlan() {
return plan;
}
@Override
- public Duration getDuration()
- {
+ public Duration getDuration() {
return duration;
}
@Override
- public PhaseType getPhaseType()
- {
+ public PhaseType getPhaseType() {
return cohort;
}
}
diff --git a/analytics/src/test/java/com/ning/billing/analytics/MockPlan.java b/analytics/src/test/java/com/ning/billing/analytics/MockPlan.java
index d611eee..49dc993 100644
--- a/analytics/src/test/java/com/ning/billing/analytics/MockPlan.java
+++ b/analytics/src/test/java/com/ning/billing/analytics/MockPlan.java
@@ -16,95 +16,84 @@
package com.ning.billing.analytics;
+import java.util.Date;
+import java.util.Iterator;
+
+import org.joda.time.DateTime;
+
import com.ning.billing.catalog.api.BillingPeriod;
import com.ning.billing.catalog.api.CatalogApiException;
-import com.ning.billing.catalog.api.PhaseType;
import com.ning.billing.catalog.api.Plan;
import com.ning.billing.catalog.api.PlanPhase;
import com.ning.billing.catalog.api.Product;
-import java.util.Date;
-import java.util.Iterator;
-
-import org.joda.time.DateTime;
-
-public class MockPlan implements Plan
-{
+public class MockPlan implements Plan {
private final String name;
private final Product product;
- public MockPlan(final String name, final Product product)
- {
+ public MockPlan(final String name, final Product product) {
this.name = name;
this.product = product;
}
@Override
- public PlanPhase[] getInitialPhases()
- {
+ public PlanPhase[] getInitialPhases() {
throw new UnsupportedOperationException();
}
@Override
- public Product getProduct()
- {
+ public Product getProduct() {
return product;
}
@Override
- public String getName()
- {
+ public String getName() {
return name;
}
-
+
@Override
- public Date getEffectiveDateForExistingSubscriptons()
- {
+ public Date getEffectiveDateForExistingSubscriptons() {
return new Date();
}
@Override
- public Iterator<PlanPhase> getInitialPhaseIterator()
- {
+ public Iterator<PlanPhase> getInitialPhaseIterator() {
throw new UnsupportedOperationException();
}
@Override
- public PlanPhase getFinalPhase()
- {
+ public PlanPhase getFinalPhase() {
throw new UnsupportedOperationException();
}
@Override
- public BillingPeriod getBillingPeriod()
- {
+ public BillingPeriod getBillingPeriod() {
throw new UnsupportedOperationException();
}
@Override
- public int getPlansAllowedInBundle()
- {
+ public int getPlansAllowedInBundle() {
throw new UnsupportedOperationException();
}
- @Override
- public PlanPhase[] getAllPhases() {
- throw new UnsupportedOperationException();
- }
-
- @Override
- public PlanPhase findPhase(String name) throws CatalogApiException {
- throw new UnsupportedOperationException();
- }
-
- @Override
- public boolean isRetired() {
- return false;
- }
-
- @Override
- public DateTime dateOfFirstRecurringNonZeroCharge(
- DateTime subscriptionStartDate) {
- throw new UnsupportedOperationException();
- }
+ @Override
+ public PlanPhase[] getAllPhases() {
+ throw new UnsupportedOperationException();
+ }
+
+ @Override
+ public PlanPhase findPhase(String name) throws CatalogApiException {
+ throw new UnsupportedOperationException();
+ }
+
+ @Override
+ public boolean isRetired() {
+ return false;
+ }
+
+ @Override
+ public DateTime dateOfFirstRecurringNonZeroCharge(
+ DateTime subscriptionStartDate) {
+ throw new UnsupportedOperationException();
+ }
}
diff --git a/analytics/src/test/java/com/ning/billing/analytics/MockProduct.java b/analytics/src/test/java/com/ning/billing/analytics/MockProduct.java
index 36fba0d..624768e 100644
--- a/analytics/src/test/java/com/ning/billing/analytics/MockProduct.java
+++ b/analytics/src/test/java/com/ning/billing/analytics/MockProduct.java
@@ -19,51 +19,44 @@ package com.ning.billing.analytics;
import com.ning.billing.catalog.api.Product;
import com.ning.billing.catalog.api.ProductCategory;
-public class MockProduct implements Product
-{
+public class MockProduct implements Product {
private final String name;
private final String type;
private final ProductCategory category;
- public MockProduct(final String name, final String type, final ProductCategory category)
- {
+ public MockProduct(final String name, final String type, final ProductCategory category) {
this.name = name;
this.type = type;
this.category = category;
}
@Override
- public String getCatalogName()
- {
+ public String getCatalogName() {
return type;
}
@Override
- public String getName()
- {
+ public String getName() {
return name;
}
@Override
- public ProductCategory getCategory()
- {
+ public ProductCategory getCategory() {
return category;
}
@Override
- public Product[] getAvailable()
- {
+ public Product[] getAvailable() {
return null;
}
@Override
- public Product[] getIncluded()
- {
+ public Product[] getIncluded() {
return null;
}
- @Override
- public boolean isRetired() {
- return false;
- }
+ @Override
+ public boolean isRetired() {
+ return false;
+ }
}
diff --git a/analytics/src/test/java/com/ning/billing/analytics/MockSubscription.java b/analytics/src/test/java/com/ning/billing/analytics/MockSubscription.java
index 9ce97a4..385599f 100644
--- a/analytics/src/test/java/com/ning/billing/analytics/MockSubscription.java
+++ b/analytics/src/test/java/com/ning/billing/analytics/MockSubscription.java
@@ -34,8 +34,7 @@ import com.ning.billing.entitlement.api.user.SubscriptionEvent;
import com.ning.billing.junction.api.BlockingState;
import com.ning.billing.util.callcontext.CallContext;
-public class MockSubscription implements Subscription
-{
+public class MockSubscription implements Subscription {
private static final UUID ID = UUID.randomUUID();
private static final UUID BUNDLE_ID = UUID.randomUUID();
private static final DateTime START_DATE = new DateTime(DateTimeZone.UTC);
@@ -44,71 +43,60 @@ public class MockSubscription implements Subscription
private final Plan plan;
private final PlanPhase phase;
- public MockSubscription(final SubscriptionState state, final Plan plan, final PlanPhase phase)
- {
+ public MockSubscription(final SubscriptionState state, final Plan plan, final PlanPhase phase) {
this.state = state;
this.plan = plan;
this.phase = phase;
}
@Override
- public boolean cancel(DateTime requestedDate, boolean eot, CallContext context)
- {
+ public boolean cancel(DateTime requestedDate, boolean eot, CallContext context) {
throw new UnsupportedOperationException();
}
@Override
- public boolean changePlan(final String productName, final BillingPeriod term, final String planSet, DateTime requestedDate, CallContext context)
- {
+ public boolean changePlan(final String productName, final BillingPeriod term, final String planSet, DateTime requestedDate, CallContext context) {
throw new UnsupportedOperationException();
}
@Override
- public UUID getId()
- {
+ public UUID getId() {
return ID;
}
@Override
- public UUID getBundleId()
- {
+ public UUID getBundleId() {
return BUNDLE_ID;
}
@Override
- public SubscriptionState getState()
- {
+ public SubscriptionState getState() {
return state;
}
@Override
- public DateTime getStartDate()
- {
+ public DateTime getStartDate() {
return START_DATE;
}
@Override
- public Plan getCurrentPlan()
- {
+ public Plan getCurrentPlan() {
return plan;
}
@Override
- public PlanPhase getCurrentPhase()
- {
+ public PlanPhase getCurrentPhase() {
return phase;
}
@Override
- public boolean uncancel(CallContext context) throws EntitlementUserApiException
- {
+ public boolean uncancel(CallContext context) throws EntitlementUserApiException {
throw new UnsupportedOperationException();
}
@Override
- public PriceList getCurrentPriceList()
- {
+ public PriceList getCurrentPriceList() {
return null;
}
@@ -122,15 +110,15 @@ public class MockSubscription implements Subscription
throw new UnsupportedOperationException();
}
- @Override
- public DateTime getChargedThroughDate() {
- throw new UnsupportedOperationException();
- }
+ @Override
+ public DateTime getChargedThroughDate() {
+ throw new UnsupportedOperationException();
+ }
- @Override
- public DateTime getPaidThroughDate() {
+ @Override
+ public DateTime getPaidThroughDate() {
throw new UnsupportedOperationException();
- }
+ }
@Override
public SubscriptionEvent getPreviousTransition() {
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 72aa146..e928caf 100644
--- a/analytics/src/test/java/com/ning/billing/analytics/TestAnalyticsListener.java
+++ b/analytics/src/test/java/com/ning/billing/analytics/TestAnalyticsListener.java
@@ -16,9 +16,8 @@
package com.ning.billing.analytics;
-import java.util.UUID;
-
import javax.annotation.Nullable;
+import java.util.UUID;
import org.joda.time.DateTime;
import org.joda.time.DateTimeZone;
@@ -44,8 +43,7 @@ import com.ning.billing.entitlement.events.user.ApiEventType;
import com.ning.billing.mock.BrainDeadProxyFactory;
import com.ning.billing.mock.BrainDeadProxyFactory.ZombieControl;
-public class TestAnalyticsListener
-{
+public class TestAnalyticsListener {
private static final String KEY = "1234";
private static final String ACCOUNT_KEY = "pierre-1234";
private final Currency CURRENCY = Currency.BRL;
@@ -60,27 +58,26 @@ public class TestAnalyticsListener
private final CatalogService catalogService = BrainDeadProxyFactory.createBrainDeadProxyFor(CatalogService.class);
private final Catalog catalog = BrainDeadProxyFactory.createBrainDeadProxyFor(Catalog.class);
-
-
+
+
private AnalyticsListener listener;
- @BeforeClass(alwaysRun = true)
+ @BeforeClass(alwaysRun = true)
public void setupCatalog() {
((ZombieControl) catalog).addResult("findPlan", plan);
- ((ZombieControl) catalog).addResult("findPhase", phase);
- ((ZombieControl) catalogService).addResult("getFullCatalog", catalog);
-
+ ((ZombieControl) catalog).addResult("findPhase", phase);
+ ((ZombieControl) catalogService).addResult("getFullCatalog", catalog);
+
}
+
@BeforeMethod(alwaysRun = true)
- public void setUp() throws Exception
- {
+ public void setUp() throws Exception {
final BusinessSubscriptionTransitionRecorder recorder = new BusinessSubscriptionTransitionRecorder(dao, catalogService, new MockEntitlementUserApi(bundleUUID, KEY), new MockAccountUserApi(ACCOUNT_KEY, CURRENCY));
listener = new AnalyticsListener(recorder, null);
}
@Test(groups = "fast")
- public void testSubscriptionLifecycle() throws Exception
- {
+ public void testSubscriptionLifecycle() throws Exception {
// Create a subscription
final DateTime effectiveTransitionTime = new DateTime(DateTimeZone.UTC);
final DateTime requestedTransitionTime = effectiveTransitionTime;
@@ -99,7 +96,7 @@ public class TestAnalyticsListener
Assert.assertEquals(dao.getTransitions(KEY).size(), 2);
Assert.assertEquals(dao.getTransitions(KEY).get(1), cancelledBST);
- // Recreate it
+ // Recreate it
final DateTime effectiveRecreatedTransitionTime = new DateTime(DateTimeZone.UTC);
final DateTime requestedRecreatedTransitionTime = effectiveRecreatedTransitionTime;
final SubscriptionTransitionData recreatedSubscriptionTransition = createRecreatedSubscriptionTransition(requestedRecreatedTransitionTime, effectiveRecreatedTransitionTime, cancelledSubscriptionTransition.getNextState());
@@ -110,22 +107,19 @@ public class TestAnalyticsListener
}
- private BusinessSubscriptionTransition createExpectedFirstBST(final UUID id, final DateTime requestedTransitionTime, final DateTime effectiveTransitionTime)
- {
+ private BusinessSubscriptionTransition createExpectedFirstBST(final UUID id, final DateTime requestedTransitionTime, final DateTime effectiveTransitionTime) {
final BusinessSubscriptionEvent event = BusinessSubscriptionEvent.subscriptionCreated(plan.getName(), catalog, effectiveTransitionTime, effectiveTransitionTime);
-
+
final Subscription.SubscriptionState subscriptionState = Subscription.SubscriptionState.ACTIVE;
return createExpectedBST(id, event, requestedTransitionTime, effectiveTransitionTime, null, subscriptionState);
}
- private BusinessSubscriptionTransition createExpectedCancelledBST(final UUID id, final DateTime requestedTransitionTime, final DateTime effectiveTransitionTime, final BusinessSubscription lastSubscription)
- {
+ private BusinessSubscriptionTransition createExpectedCancelledBST(final UUID id, final DateTime requestedTransitionTime, final DateTime effectiveTransitionTime, final BusinessSubscription lastSubscription) {
final BusinessSubscriptionEvent event = BusinessSubscriptionEvent.subscriptionCancelled(plan.getName(), catalog, effectiveTransitionTime, effectiveTransitionTime);
return createExpectedBST(id, event, requestedTransitionTime, effectiveTransitionTime, lastSubscription, null);
}
- private BusinessSubscriptionTransition createExpectedRecreatedBST(final UUID id, final DateTime requestedTransitionTime, final DateTime effectiveTransitionTime, final BusinessSubscription lastSubscription)
- {
+ private BusinessSubscriptionTransition createExpectedRecreatedBST(final UUID id, final DateTime requestedTransitionTime, final DateTime effectiveTransitionTime, final BusinessSubscription lastSubscription) {
final BusinessSubscriptionEvent event = BusinessSubscriptionEvent.subscriptionRecreated(plan.getName(), catalog, effectiveTransitionTime, effectiveTransitionTime);
final Subscription.SubscriptionState subscriptionState = Subscription.SubscriptionState.ACTIVE;
return createExpectedBST(id, event, requestedTransitionTime, effectiveTransitionTime, lastSubscription, subscriptionState);
@@ -133,141 +127,136 @@ public class TestAnalyticsListener
private BusinessSubscriptionTransition createExpectedBST(
- final UUID eventId,
- final BusinessSubscriptionEvent eventType,
- final DateTime requestedTransitionTime,
- final DateTime effectiveTransitionTime,
- @Nullable final BusinessSubscription previousSubscription,
- @Nullable final Subscription.SubscriptionState nextState
- )
- {
+ final UUID eventId,
+ final BusinessSubscriptionEvent eventType,
+ final DateTime requestedTransitionTime,
+ final DateTime effectiveTransitionTime,
+ @Nullable final BusinessSubscription previousSubscription,
+ @Nullable final Subscription.SubscriptionState nextState
+ ) {
return new BusinessSubscriptionTransition(
- eventId,
- KEY,
- ACCOUNT_KEY,
- requestedTransitionTime,
- eventType,
- previousSubscription,
- nextState == null ? null : new BusinessSubscription(
- null,
- plan.getName(),
- phase.getName(),
- CURRENCY,
- effectiveTransitionTime,
- nextState,
- subscriptionId,
- bundleUUID, catalog
- )
+ eventId,
+ KEY,
+ ACCOUNT_KEY,
+ requestedTransitionTime,
+ eventType,
+ previousSubscription,
+ nextState == null ? null : new BusinessSubscription(
+ null,
+ plan.getName(),
+ phase.getName(),
+ CURRENCY,
+ effectiveTransitionTime,
+ nextState,
+ subscriptionId,
+ bundleUUID, catalog
+ )
);
}
- private SubscriptionTransitionData createFirstSubscriptionTransition(final DateTime requestedTransitionTime, final DateTime effectiveTransitionTime)
- {
+ private SubscriptionTransitionData createFirstSubscriptionTransition(final DateTime requestedTransitionTime, final DateTime effectiveTransitionTime) {
final ApiEventType eventType = ApiEventType.CREATE;
final Subscription.SubscriptionState nextState = Subscription.SubscriptionState.ACTIVE;
return new SubscriptionTransitionData(
- UUID.randomUUID(),
- subscriptionId,
- bundleUUID,
- EntitlementEvent.EventType.API_USER,
- eventType,
- requestedTransitionTime,
- effectiveTransitionTime,
- null,
- null,
- null,
- null,
- nextState,
- plan,
- phase,
- priceList,
- 1L,
- null,
- true
+ UUID.randomUUID(),
+ subscriptionId,
+ bundleUUID,
+ EntitlementEvent.EventType.API_USER,
+ eventType,
+ requestedTransitionTime,
+ effectiveTransitionTime,
+ null,
+ null,
+ null,
+ null,
+ nextState,
+ plan,
+ phase,
+ priceList,
+ 1L,
+ null,
+ true
);
}
- private SubscriptionTransitionData createCancelSubscriptionTransition(final DateTime requestedTransitionTime, final DateTime effectiveTransitionTime, final Subscription.SubscriptionState previousState)
- {
+ private SubscriptionTransitionData createCancelSubscriptionTransition(final DateTime requestedTransitionTime, final DateTime effectiveTransitionTime, final Subscription.SubscriptionState previousState) {
final ApiEventType eventType = ApiEventType.CANCEL;
// next state is null for canceled events
return new SubscriptionTransitionData(
- UUID.randomUUID(),
- subscriptionId,
- bundleUUID,
- EntitlementEvent.EventType.API_USER,
- eventType,
- requestedTransitionTime,
- effectiveTransitionTime,
- previousState,
- plan,
- phase,
- priceList,
- null,
- null,
- null,
- null,
- 1L,
- null,
- true
+ UUID.randomUUID(),
+ subscriptionId,
+ bundleUUID,
+ EntitlementEvent.EventType.API_USER,
+ eventType,
+ requestedTransitionTime,
+ effectiveTransitionTime,
+ previousState,
+ plan,
+ phase,
+ priceList,
+ null,
+ null,
+ null,
+ null,
+ 1L,
+ null,
+ true
);
}
- private SubscriptionTransitionData createRecreatedSubscriptionTransition(final DateTime requestedTransitionTime, final DateTime effectiveTransitionTime, final Subscription.SubscriptionState previousState)
- {
+ private SubscriptionTransitionData createRecreatedSubscriptionTransition(final DateTime requestedTransitionTime, final DateTime effectiveTransitionTime, final Subscription.SubscriptionState previousState) {
final ApiEventType eventType = ApiEventType.RE_CREATE;
final Subscription.SubscriptionState nextState = Subscription.SubscriptionState.ACTIVE;
return new SubscriptionTransitionData(
- UUID.randomUUID(),
- subscriptionId,
- bundleUUID,
- EntitlementEvent.EventType.API_USER,
- eventType,
- requestedTransitionTime,
- effectiveTransitionTime,
- previousState,
- null,
- null,
- null,
- nextState,
- plan,
- phase,
- priceList,
- 1L,
- null,
- true
+ UUID.randomUUID(),
+ subscriptionId,
+ bundleUUID,
+ EntitlementEvent.EventType.API_USER,
+ eventType,
+ requestedTransitionTime,
+ effectiveTransitionTime,
+ previousState,
+ null,
+ null,
+ null,
+ nextState,
+ plan,
+ phase,
+ priceList,
+ 1L,
+ null,
+ true
);
}
private SubscriptionTransitionData createSubscriptionTransition(
- final ApiEventType eventType,
- final DateTime requestedTransitionTime,
- final DateTime effectiveTransitionTime,
- final Subscription.SubscriptionState previousState,
- final Subscription.SubscriptionState nextState
- )
- {
+ final ApiEventType eventType,
+ final DateTime requestedTransitionTime,
+ final DateTime effectiveTransitionTime,
+ final Subscription.SubscriptionState previousState,
+ final Subscription.SubscriptionState nextState
+ ) {
return new SubscriptionTransitionData(
- UUID.randomUUID(),
- subscriptionId,
- bundleUUID,
- EntitlementEvent.EventType.API_USER,
- eventType,
- requestedTransitionTime,
- effectiveTransitionTime,
- previousState,
- plan,
- phase,
- priceList,
- nextState,
- plan,
- phase,
- priceList,
- 1L,
- null,
- true
+ UUID.randomUUID(),
+ subscriptionId,
+ bundleUUID,
+ EntitlementEvent.EventType.API_USER,
+ eventType,
+ requestedTransitionTime,
+ effectiveTransitionTime,
+ previousState,
+ plan,
+ phase,
+ priceList,
+ nextState,
+ plan,
+ phase,
+ priceList,
+ 1L,
+ null,
+ true
);
}
}
\ No newline at end of file
diff --git a/analytics/src/test/java/com/ning/billing/analytics/TestBusinessAccount.java b/analytics/src/test/java/com/ning/billing/analytics/TestBusinessAccount.java
index 35eb2f0..3588d5e 100644
--- a/analytics/src/test/java/com/ning/billing/analytics/TestBusinessAccount.java
+++ b/analytics/src/test/java/com/ning/billing/analytics/TestBusinessAccount.java
@@ -16,29 +16,27 @@
package com.ning.billing.analytics;
-import com.ning.billing.mock.BrainDeadProxyFactory;
-import com.ning.billing.util.tag.Tag;
+import java.math.BigDecimal;
+import java.util.Collections;
+
import org.joda.time.DateTime;
import org.testng.Assert;
import org.testng.annotations.BeforeMethod;
import org.testng.annotations.Test;
-import java.math.BigDecimal;
-import java.util.Collections;
+import com.ning.billing.mock.BrainDeadProxyFactory;
+import com.ning.billing.util.tag.Tag;
-public class TestBusinessAccount
-{
+public class TestBusinessAccount {
private BusinessAccount account;
@BeforeMethod(alwaysRun = true)
- public void setUp() throws Exception
- {
+ public void setUp() throws Exception {
account = new BusinessAccount("pierre", BigDecimal.ONE, Collections.singletonList(getMockTag("batch15")), new DateTime(), BigDecimal.TEN, "ERROR_NOT_ENOUGH_FUNDS", "CreditCard", "Visa", "");
}
@Test(groups = "fast", enabled = false)
- public void testEquals() throws Exception
- {
+ public void testEquals() throws Exception {
Assert.assertSame(account, account);
Assert.assertEquals(account, account);
Assert.assertTrue(account.equals(account));
diff --git a/analytics/src/test/java/com/ning/billing/analytics/TestBusinessSubscription.java b/analytics/src/test/java/com/ning/billing/analytics/TestBusinessSubscription.java
index 2df0aeb..dff0c53 100644
--- a/analytics/src/test/java/com/ning/billing/analytics/TestBusinessSubscription.java
+++ b/analytics/src/test/java/com/ning/billing/analytics/TestBusinessSubscription.java
@@ -16,6 +16,12 @@
package com.ning.billing.analytics;
+import java.math.BigDecimal;
+
+import org.testng.Assert;
+import org.testng.annotations.BeforeMethod;
+import org.testng.annotations.Test;
+
import com.ning.billing.catalog.api.Catalog;
import com.ning.billing.catalog.api.CatalogService;
import com.ning.billing.catalog.api.Duration;
@@ -28,30 +34,22 @@ import com.ning.billing.entitlement.api.user.Subscription;
import com.ning.billing.mock.BrainDeadProxyFactory;
import com.ning.billing.mock.BrainDeadProxyFactory.ZombieControl;
-import org.testng.Assert;
-import org.testng.annotations.BeforeClass;
-import org.testng.annotations.BeforeMethod;
-import org.testng.annotations.Test;
-
-import java.math.BigDecimal;
-
import static com.ning.billing.catalog.api.Currency.USD;
-public class TestBusinessSubscription
-{
+public class TestBusinessSubscription {
private final Duration MONTHLY = MockDuration.MONHTLY();
private final Duration YEARLY = MockDuration.YEARLY();
final Object[][] catalogMapping = {
- {MONTHLY, 229.0000, 229.0000},
- {MONTHLY, 19.9500, 19.9500},
- {MONTHLY, 14.9500, 14.9500},
- {MONTHLY, 12.9500, 12.9500},
- {YEARLY, 19.9500, 1.6625},
- {YEARLY, 399.0000, 33.2500},
- {YEARLY, 29.9500, 2.4958},
- {YEARLY, 59.0000, 4.9167},
- {YEARLY, 18.2900, 1.5242},
- {YEARLY, 49.0000, 4.0833}};
+ {MONTHLY, 229.0000, 229.0000},
+ {MONTHLY, 19.9500, 19.9500},
+ {MONTHLY, 14.9500, 14.9500},
+ {MONTHLY, 12.9500, 12.9500},
+ {YEARLY, 19.9500, 1.6625},
+ {YEARLY, 399.0000, 33.2500},
+ {YEARLY, 29.9500, 2.4958},
+ {YEARLY, 59.0000, 4.9167},
+ {YEARLY, 18.2900, 1.5242},
+ {YEARLY, 49.0000, 4.0833}};
private Product product;
private Plan plan;
@@ -61,26 +59,24 @@ public class TestBusinessSubscription
private final CatalogService catalogService = BrainDeadProxyFactory.createBrainDeadProxyFor(CatalogService.class);
private final Catalog catalog = BrainDeadProxyFactory.createBrainDeadProxyFor(Catalog.class);
-
+
@BeforeMethod(alwaysRun = true)
- public void setUp() throws Exception
- {
+ public void setUp() throws Exception {
product = new MockProduct("platinium", "subscription", ProductCategory.BASE);
plan = new MockPlan("platinum-monthly", product);
phase = new MockPhase(PhaseType.EVERGREEN, plan, MockDuration.UNLIMITED(), 25.95);
((ZombieControl) catalog).addResult("findPlan", plan);
- ((ZombieControl) catalog).addResult("findPhase", phase);
- ((ZombieControl) catalogService).addResult("getFullCatalog", catalog);
+ ((ZombieControl) catalog).addResult("findPhase", phase);
+ ((ZombieControl) catalogService).addResult("getFullCatalog", catalog);
isubscription = new MockSubscription(Subscription.SubscriptionState.ACTIVE, plan, phase);
subscription = new BusinessSubscription(isubscription, USD, catalog);
}
@Test(groups = "fast")
- public void testMrrComputation() throws Exception
- {
+ public void testMrrComputation() throws Exception {
int i = 0;
for (final Object[] object : catalogMapping) {
final Duration duration = (Duration) object[0];
@@ -94,8 +90,7 @@ public class TestBusinessSubscription
}
@Test(groups = "fast")
- public void testConstructor() throws Exception
- {
+ public void testConstructor() throws Exception {
Assert.assertEquals(subscription.getRoundedMrr(), 0.0);
Assert.assertEquals(subscription.getSlug(), phase.getName());
Assert.assertEquals(subscription.getPhase(), phase.getPhaseType().toString());
@@ -108,8 +103,7 @@ public class TestBusinessSubscription
}
@Test(groups = "fast")
- public void testEquals() throws Exception
- {
+ public void testEquals() throws Exception {
Assert.assertSame(subscription, subscription);
Assert.assertEquals(subscription, subscription);
Assert.assertTrue(subscription.equals(subscription));
diff --git a/analytics/src/test/java/com/ning/billing/analytics/TestBusinessSubscriptionEvent.java b/analytics/src/test/java/com/ning/billing/analytics/TestBusinessSubscriptionEvent.java
index e42c72f..79d01d9 100644
--- a/analytics/src/test/java/com/ning/billing/analytics/TestBusinessSubscriptionEvent.java
+++ b/analytics/src/test/java/com/ning/billing/analytics/TestBusinessSubscriptionEvent.java
@@ -16,6 +16,11 @@
package com.ning.billing.analytics;
+import org.joda.time.DateTime;
+import org.testng.Assert;
+import org.testng.annotations.BeforeMethod;
+import org.testng.annotations.Test;
+
import com.ning.billing.catalog.api.Catalog;
import com.ning.billing.catalog.api.CatalogService;
import com.ning.billing.catalog.api.PhaseType;
@@ -27,14 +32,7 @@ import com.ning.billing.entitlement.api.user.Subscription;
import com.ning.billing.mock.BrainDeadProxyFactory;
import com.ning.billing.mock.BrainDeadProxyFactory.ZombieControl;
-import org.joda.time.DateTime;
-import org.testng.Assert;
-import org.testng.annotations.BeforeClass;
-import org.testng.annotations.BeforeMethod;
-import org.testng.annotations.Test;
-
-public class TestBusinessSubscriptionEvent
-{
+public class TestBusinessSubscriptionEvent {
private Product product;
private Plan plan;
private PlanPhase phase;
@@ -42,24 +40,22 @@ public class TestBusinessSubscriptionEvent
private final CatalogService catalogService = BrainDeadProxyFactory.createBrainDeadProxyFor(CatalogService.class);
private final Catalog catalog = BrainDeadProxyFactory.createBrainDeadProxyFor(Catalog.class);
-
+
@BeforeMethod(alwaysRun = true)
- public void setUp() throws Exception
- {
+ public void setUp() throws Exception {
product = new MockProduct("platinium", "subscription", ProductCategory.BASE);
plan = new MockPlan("platinum-monthly", product);
phase = new MockPhase(PhaseType.EVERGREEN, plan, MockDuration.UNLIMITED(), 25.95);
((ZombieControl) catalog).addResult("findPlan", plan);
- ((ZombieControl) catalog).addResult("findPhase", phase);
- ((ZombieControl) catalogService).addResult("getFullCatalog", catalog);
+ ((ZombieControl) catalog).addResult("findPhase", phase);
+ ((ZombieControl) catalogService).addResult("getFullCatalog", catalog);
subscription = new MockSubscription(Subscription.SubscriptionState.ACTIVE, plan, phase);
}
@Test(groups = "fast")
- public void testValueOf() throws Exception
- {
+ public void testValueOf() throws Exception {
BusinessSubscriptionEvent event;
event = BusinessSubscriptionEvent.valueOf("ADD_ADD_ON");
@@ -76,12 +72,11 @@ public class TestBusinessSubscriptionEvent
}
@Test(groups = "fast")
- public void testFromSubscription() throws Exception
- {
+ public void testFromSubscription() throws Exception {
BusinessSubscriptionEvent event;
DateTime now = new DateTime();
-
+
event = BusinessSubscriptionEvent.subscriptionCreated(subscription.getCurrentPlan().getName(), catalog, now, now);
Assert.assertEquals(event.getEventType(), BusinessSubscriptionEvent.EventType.ADD);
Assert.assertEquals(event.getCategory(), product.getCategory());
@@ -112,8 +107,7 @@ public class TestBusinessSubscriptionEvent
}
@Test(groups = "fast")
- public void testEquals() throws Exception
- {
+ public void testEquals() throws Exception {
DateTime now = new DateTime();
final BusinessSubscriptionEvent event = BusinessSubscriptionEvent.subscriptionChanged(subscription.getCurrentPlan().getName(), catalog, now, now);
Assert.assertSame(event, event);
diff --git a/analytics/src/test/java/com/ning/billing/analytics/TestBusinessSubscriptionTransition.java b/analytics/src/test/java/com/ning/billing/analytics/TestBusinessSubscriptionTransition.java
index be27a91..c72692e 100644
--- a/analytics/src/test/java/com/ning/billing/analytics/TestBusinessSubscriptionTransition.java
+++ b/analytics/src/test/java/com/ning/billing/analytics/TestBusinessSubscriptionTransition.java
@@ -16,6 +16,14 @@
package com.ning.billing.analytics;
+import java.util.UUID;
+
+import org.joda.time.DateTime;
+import org.joda.time.DateTimeZone;
+import org.testng.Assert;
+import org.testng.annotations.BeforeMethod;
+import org.testng.annotations.Test;
+
import com.ning.billing.catalog.api.Catalog;
import com.ning.billing.catalog.api.CatalogService;
import com.ning.billing.catalog.api.PhaseType;
@@ -27,18 +35,9 @@ import com.ning.billing.entitlement.api.user.Subscription;
import com.ning.billing.mock.BrainDeadProxyFactory;
import com.ning.billing.mock.BrainDeadProxyFactory.ZombieControl;
-import org.joda.time.DateTime;
-import org.joda.time.DateTimeZone;
-import org.testng.Assert;
-import org.testng.annotations.BeforeMethod;
-import org.testng.annotations.Test;
-
-import java.util.UUID;
-
import static com.ning.billing.catalog.api.Currency.USD;
-public class TestBusinessSubscriptionTransition
-{
+public class TestBusinessSubscriptionTransition {
private BusinessSubscription prevSubscription;
private BusinessSubscription nextSubscription;
private BusinessSubscriptionEvent event;
@@ -50,10 +49,9 @@ public class TestBusinessSubscriptionTransition
private final CatalogService catalogService = BrainDeadProxyFactory.createBrainDeadProxyFor(CatalogService.class);
private final Catalog catalog = BrainDeadProxyFactory.createBrainDeadProxyFor(Catalog.class);
-
+
@BeforeMethod(alwaysRun = true)
- public void setUp() throws Exception
- {
+ public void setUp() throws Exception {
final Product product = new MockProduct("platinium", "subscription", ProductCategory.BASE);
final Plan plan = new MockPlan("platinum-monthly", product);
final PlanPhase phase = new MockPhase(PhaseType.EVERGREEN, plan, MockDuration.UNLIMITED(), 25.95);
@@ -61,11 +59,11 @@ public class TestBusinessSubscriptionTransition
final Subscription nextISubscription = new MockSubscription(Subscription.SubscriptionState.CANCELLED, plan, phase);
((ZombieControl) catalog).addResult("findPlan", plan);
- ((ZombieControl) catalog).addResult("findPhase", phase);
- ((ZombieControl) catalogService).addResult("getFullCatalog", catalog);
-
+ ((ZombieControl) catalog).addResult("findPhase", phase);
+ ((ZombieControl) catalogService).addResult("getFullCatalog", catalog);
+
DateTime now = new DateTime();
-
+
prevSubscription = new BusinessSubscription(prevISubscription, USD, catalog);
nextSubscription = new BusinessSubscription(nextISubscription, USD, catalog);
event = BusinessSubscriptionEvent.subscriptionCancelled(prevISubscription.getCurrentPlan().getName(), catalog, now, now);
@@ -77,8 +75,7 @@ public class TestBusinessSubscriptionTransition
}
@Test(groups = "fast")
- public void testConstructor() throws Exception
- {
+ public void testConstructor() throws Exception {
Assert.assertEquals(transition.getEvent(), event);
Assert.assertEquals(transition.getPreviousSubscription(), prevSubscription);
Assert.assertEquals(transition.getNextSubscription(), nextSubscription);
@@ -86,8 +83,7 @@ public class TestBusinessSubscriptionTransition
}
@Test(groups = "fast")
- public void testEquals() throws Exception
- {
+ public void testEquals() throws Exception {
Assert.assertSame(transition, transition);
Assert.assertEquals(transition, transition);
Assert.assertTrue(transition.equals(transition));
@@ -111,37 +107,32 @@ public class TestBusinessSubscriptionTransition
}
@Test(groups = "fast")
- public void testRejectInvalidTransitions() throws Exception
- {
+ public void testRejectInvalidTransitions() throws Exception {
try {
new BusinessSubscriptionTransition(null, key, accountKey, requestedTimestamp, event, prevSubscription, nextSubscription);
Assert.fail();
- }
- catch (IllegalArgumentException e) {
+ } catch (IllegalArgumentException e) {
Assert.assertTrue(true);
}
try {
new BusinessSubscriptionTransition(id, null, accountKey, requestedTimestamp, event, prevSubscription, nextSubscription);
Assert.fail();
- }
- catch (IllegalArgumentException e) {
+ } catch (IllegalArgumentException e) {
Assert.assertTrue(true);
}
try {
new BusinessSubscriptionTransition(id, key, accountKey, null, event, prevSubscription, nextSubscription);
Assert.fail();
- }
- catch (IllegalArgumentException e) {
+ } catch (IllegalArgumentException e) {
Assert.assertTrue(true);
}
try {
new BusinessSubscriptionTransition(id, key, accountKey, requestedTimestamp, null, prevSubscription, nextSubscription);
Assert.fail();
- }
- catch (IllegalArgumentException e) {
+ } catch (IllegalArgumentException e) {
Assert.assertTrue(true);
}
}
diff --git a/analytics/src/test/java/com/ning/billing/analytics/utils/TestRounder.java b/analytics/src/test/java/com/ning/billing/analytics/utils/TestRounder.java
index b3414d7..5b15474 100644
--- a/analytics/src/test/java/com/ning/billing/analytics/utils/TestRounder.java
+++ b/analytics/src/test/java/com/ning/billing/analytics/utils/TestRounder.java
@@ -16,16 +16,14 @@
package com.ning.billing.analytics.utils;
+import java.math.BigDecimal;
+
import org.testng.Assert;
import org.testng.annotations.Test;
-import java.math.BigDecimal;
-
-public class TestRounder
-{
+public class TestRounder {
@Test(groups = "fast")
- public void testRound() throws Exception
- {
+ public void testRound() throws Exception {
Assert.assertEquals(Rounder.round(null), 0.0);
Assert.assertEquals(Rounder.round(BigDecimal.ZERO), 0.0);
Assert.assertEquals(Rounder.round(BigDecimal.ONE), 1.0);
diff --git a/analytics/src/test/resources/log4j.xml b/analytics/src/test/resources/log4j.xml
index 82b5a26..292e955 100644
--- a/analytics/src/test/resources/log4j.xml
+++ b/analytics/src/test/resources/log4j.xml
@@ -14,7 +14,8 @@
~ License for the specific language governing permissions and limitations
~ under the License.
-->
-<!DOCTYPE log4j:configuration SYSTEM "http://logging.apache.org/log4j/1.2/apidocs/org/apache/log4j/xml/doc-files/log4j.dtd">
+<!DOCTYPE log4j:configuration SYSTEM
+ "http://logging.apache.org/log4j/1.2/apidocs/org/apache/log4j/xml/doc-files/log4j.dtd">
<log4j:configuration debug="false"
xmlns:log4j='http://jakarta.apache.org/log4j/'>
<appender name="CONSOLE" class="org.apache.log4j.ConsoleAppender">