killbill-memoizeit
Changes
osgi-bundles/bundles/analytics/src/main/java/com/ning/billing/osgi/bundles/analytics/api/BusinessAccount.java 13(+12 -1)
osgi-bundles/bundles/analytics/src/main/java/com/ning/billing/osgi/bundles/analytics/dao/AnalyticsDao.java 12(+10 -2)
osgi-bundles/bundles/analytics/src/main/java/com/ning/billing/osgi/bundles/analytics/dao/BusinessAnalyticsSqlDao.java 61(+44 -17)
osgi-bundles/bundles/analytics/src/main/java/com/ning/billing/osgi/bundles/analytics/dao/model/BusinessAccountModelDao.java 27(+20 -7)
osgi-bundles/bundles/analytics/src/main/resources/com/ning/billing/osgi/bundles/analytics/dao/BusinessAnalyticsSqlDao.sql.stg 41(+30 -11)
osgi-bundles/bundles/analytics/src/test/java/com/ning/billing/osgi/bundles/analytics/AnalyticsTestSuiteNoDB.java 25(+24 -1)
osgi-bundles/bundles/analytics/src/test/java/com/ning/billing/osgi/bundles/analytics/api/TestBusinessAccount.java 4(+4 -0)
Details
diff --git a/osgi-bundles/bundles/analytics/src/main/java/com/ning/billing/osgi/bundles/analytics/api/BusinessAccount.java b/osgi-bundles/bundles/analytics/src/main/java/com/ning/billing/osgi/bundles/analytics/api/BusinessAccount.java
index bfa4a40..65686e9 100644
--- a/osgi-bundles/bundles/analytics/src/main/java/com/ning/billing/osgi/bundles/analytics/api/BusinessAccount.java
+++ b/osgi-bundles/bundles/analytics/src/main/java/com/ning/billing/osgi/bundles/analytics/api/BusinessAccount.java
@@ -43,6 +43,7 @@ public class BusinessAccount extends BusinessEntityBase {
private final String phone;
private final Boolean isMigrated;
private final Boolean isNotifiedForInvoices;
+ private final DateTime updatedDate;
private final BigDecimal balance;
private final LocalDate lastInvoiceDate;
private final DateTime lastPaymentDate;
@@ -73,6 +74,7 @@ public class BusinessAccount extends BusinessEntityBase {
this.phone = businessAccountModelDao.getPhone();
this.isMigrated = businessAccountModelDao.getMigrated();
this.isNotifiedForInvoices = businessAccountModelDao.getNotifiedForInvoices();
+ this.updatedDate = businessAccountModelDao.getUpdatedDate();
this.balance = businessAccountModelDao.getBalance();
this.lastInvoiceDate = businessAccountModelDao.getLastInvoiceDate();
this.lastPaymentDate = businessAccountModelDao.getLastPaymentDate();
@@ -147,6 +149,10 @@ public class BusinessAccount extends BusinessEntityBase {
return isNotifiedForInvoices;
}
+ public DateTime getUpdatedDate() {
+ return updatedDate;
+ }
+
public BigDecimal getBalance() {
return balance;
}
@@ -184,6 +190,7 @@ public class BusinessAccount extends BusinessEntityBase {
sb.append(", phone='").append(phone).append('\'');
sb.append(", isMigrated=").append(isMigrated);
sb.append(", isNotifiedForInvoices=").append(isNotifiedForInvoices);
+ sb.append(", updatedDate=").append(updatedDate);
sb.append(", balance=").append(balance);
sb.append(", lastInvoiceDate=").append(lastInvoiceDate);
sb.append(", lastPaymentDate=").append(lastPaymentDate);
@@ -212,7 +219,7 @@ public class BusinessAccount extends BusinessEntityBase {
if (address2 != null ? !address2.equals(that.address2) : that.address2 != null) {
return false;
}
- if (balance != null ? !balance.equals(that.balance) : that.balance != null) {
+ if (balance != null ? balance.compareTo(that.balance) != 0 : that.balance != null) {
return false;
}
if (billingCycleDayLocal != null ? !billingCycleDayLocal.equals(that.billingCycleDayLocal) : that.billingCycleDayLocal != null) {
@@ -269,6 +276,9 @@ public class BusinessAccount extends BusinessEntityBase {
if (timeZone != null ? !timeZone.equals(that.timeZone) : that.timeZone != null) {
return false;
}
+ if (updatedDate != null ? !updatedDate.equals(that.updatedDate) : that.updatedDate != null) {
+ return false;
+ }
return true;
}
@@ -293,6 +303,7 @@ public class BusinessAccount extends BusinessEntityBase {
result = 31 * result + (phone != null ? phone.hashCode() : 0);
result = 31 * result + (isMigrated != null ? isMigrated.hashCode() : 0);
result = 31 * result + (isNotifiedForInvoices != null ? isNotifiedForInvoices.hashCode() : 0);
+ result = 31 * result + (updatedDate != null ? updatedDate.hashCode() : 0);
result = 31 * result + (balance != null ? balance.hashCode() : 0);
result = 31 * result + (lastInvoiceDate != null ? lastInvoiceDate.hashCode() : 0);
result = 31 * result + (lastPaymentDate != null ? lastPaymentDate.hashCode() : 0);
diff --git a/osgi-bundles/bundles/analytics/src/main/java/com/ning/billing/osgi/bundles/analytics/dao/AnalyticsDao.java b/osgi-bundles/bundles/analytics/src/main/java/com/ning/billing/osgi/bundles/analytics/dao/AnalyticsDao.java
index b211639..ac39ac7 100644
--- a/osgi-bundles/bundles/analytics/src/main/java/com/ning/billing/osgi/bundles/analytics/dao/AnalyticsDao.java
+++ b/osgi-bundles/bundles/analytics/src/main/java/com/ning/billing/osgi/bundles/analytics/dao/AnalyticsDao.java
@@ -140,7 +140,11 @@ public class AnalyticsDao {
final Long accountRecordId = getAccountRecordId(accountId, context);
final Long tenantRecordId = getTenantRecordId(context);
- final List<BusinessFieldModelDao> businessFieldModelDaos = sqlDao.getFieldsByAccountRecordId(accountRecordId, tenantRecordId, context);
+ final List<BusinessFieldModelDao> businessFieldModelDaos = new LinkedList<BusinessFieldModelDao>();
+ businessFieldModelDaos.addAll(sqlDao.getAccountFieldsByAccountRecordId(accountRecordId, tenantRecordId, context));
+ businessFieldModelDaos.addAll(sqlDao.getInvoiceFieldsByAccountRecordId(accountRecordId, tenantRecordId, context));
+ businessFieldModelDaos.addAll(sqlDao.getInvoicePaymentFieldsByAccountRecordId(accountRecordId, tenantRecordId, context));
+
return Lists.transform(businessFieldModelDaos, new Function<BusinessFieldModelDao, BusinessField>() {
@Override
public BusinessField apply(final BusinessFieldModelDao input) {
@@ -153,7 +157,11 @@ public class AnalyticsDao {
final Long accountRecordId = getAccountRecordId(accountId, context);
final Long tenantRecordId = getTenantRecordId(context);
- final List<BusinessTagModelDao> businessTagModelDaos = sqlDao.getTagsByAccountRecordId(accountRecordId, tenantRecordId, context);
+ final List<BusinessTagModelDao> businessTagModelDaos = new LinkedList<BusinessTagModelDao>();
+ businessTagModelDaos.addAll(sqlDao.getAccountTagsByAccountRecordId(accountRecordId, tenantRecordId, context));
+ businessTagModelDaos.addAll(sqlDao.getInvoiceTagsByAccountRecordId(accountRecordId, tenantRecordId, context));
+ businessTagModelDaos.addAll(sqlDao.getInvoicePaymentTagsByAccountRecordId(accountRecordId, tenantRecordId, context));
+
return Lists.transform(businessTagModelDaos, new Function<BusinessTagModelDao, BusinessTag>() {
@Override
public BusinessTag apply(final BusinessTagModelDao input) {
diff --git a/osgi-bundles/bundles/analytics/src/main/java/com/ning/billing/osgi/bundles/analytics/dao/BusinessAnalyticsSqlDao.java b/osgi-bundles/bundles/analytics/src/main/java/com/ning/billing/osgi/bundles/analytics/dao/BusinessAnalyticsSqlDao.java
index 72cf2f5..5ba5502 100644
--- a/osgi-bundles/bundles/analytics/src/main/java/com/ning/billing/osgi/bundles/analytics/dao/BusinessAnalyticsSqlDao.java
+++ b/osgi-bundles/bundles/analytics/src/main/java/com/ning/billing/osgi/bundles/analytics/dao/BusinessAnalyticsSqlDao.java
@@ -21,71 +21,98 @@ 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.Define;
import org.skife.jdbi.v2.sqlobject.mixins.Transactional;
import com.ning.billing.commons.jdbi.binder.SmartBindBean;
+import com.ning.billing.osgi.bundles.analytics.dao.model.BusinessAccountFieldModelDao;
import com.ning.billing.osgi.bundles.analytics.dao.model.BusinessAccountModelDao;
-import com.ning.billing.osgi.bundles.analytics.dao.model.BusinessFieldModelDao;
+import com.ning.billing.osgi.bundles.analytics.dao.model.BusinessAccountTagModelDao;
+import com.ning.billing.osgi.bundles.analytics.dao.model.BusinessInvoiceFieldModelDao;
import com.ning.billing.osgi.bundles.analytics.dao.model.BusinessInvoiceItemBaseModelDao;
import com.ning.billing.osgi.bundles.analytics.dao.model.BusinessInvoiceModelDao;
import com.ning.billing.osgi.bundles.analytics.dao.model.BusinessInvoicePaymentBaseModelDao;
+import com.ning.billing.osgi.bundles.analytics.dao.model.BusinessInvoicePaymentFieldModelDao;
+import com.ning.billing.osgi.bundles.analytics.dao.model.BusinessInvoicePaymentTagModelDao;
+import com.ning.billing.osgi.bundles.analytics.dao.model.BusinessInvoiceTagModelDao;
import com.ning.billing.osgi.bundles.analytics.dao.model.BusinessModelDaoBase;
import com.ning.billing.osgi.bundles.analytics.dao.model.BusinessOverdueStatusModelDao;
import com.ning.billing.osgi.bundles.analytics.dao.model.BusinessSubscriptionTransitionModelDao;
-import com.ning.billing.osgi.bundles.analytics.dao.model.BusinessTagModelDao;
import com.ning.billing.util.callcontext.CallContext;
import com.ning.billing.util.callcontext.TenantContext;
public interface BusinessAnalyticsSqlDao extends Transactional<BusinessAnalyticsSqlDao> {
+ // Note: the CallContext and TenantContext are not bound for now since they are not used (and createdDate would conflict)
+
@SqlUpdate
public void create(final String tableName,
@SmartBindBean final BusinessModelDaoBase entity,
- @SmartBindBean final CallContext callContext);
+ final CallContext callContext);
@SqlUpdate
- public void deleteByAccountRecordId(@Bind("tableName") final String tableName,
+ public void deleteByAccountRecordId(@Define("tableName") final String tableName,
@Bind("accountRecordId") final Long accountRecordId,
@Bind("tenantRecordId") final Long tenantRecordId,
- @SmartBindBean final CallContext callContext);
+ final CallContext callContext);
@SqlQuery
public BusinessAccountModelDao getAccountByAccountRecordId(@Bind("accountRecordId") final Long accountRecordId,
@Bind("tenantRecordId") final Long tenantRecordId,
- @SmartBindBean final TenantContext tenantContext);
+ final TenantContext tenantContext);
@SqlQuery
public List<BusinessSubscriptionTransitionModelDao> getSubscriptionTransitionsByAccountRecordId(@Bind("accountRecordId") final Long accountRecordId,
@Bind("tenantRecordId") final Long tenantRecordId,
- @SmartBindBean final TenantContext tenantContext);
+ final TenantContext tenantContext);
@SqlQuery
public List<BusinessOverdueStatusModelDao> getOverdueStatusesByAccountRecordId(@Bind("accountRecordId") final Long accountRecordId,
@Bind("tenantRecordId") final Long tenantRecordId,
- @SmartBindBean final TenantContext tenantContext);
+ final TenantContext tenantContext);
@SqlQuery
public List<BusinessInvoiceModelDao> getInvoicesByAccountRecordId(@Bind("accountRecordId") final Long accountRecordId,
@Bind("tenantRecordId") final Long tenantRecordId,
- @SmartBindBean final TenantContext tenantContext);
+ final TenantContext tenantContext);
@SqlQuery
public List<BusinessInvoiceItemBaseModelDao> getInvoiceItemsByAccountRecordId(@Bind("accountRecordId") final Long accountRecordId,
@Bind("tenantRecordId") final Long tenantRecordId,
- @SmartBindBean final TenantContext tenantContext);
+ final TenantContext tenantContext);
@SqlQuery
public List<BusinessInvoicePaymentBaseModelDao> getInvoicePaymentsByAccountRecordId(@Bind("accountRecordId") final Long accountRecordId,
@Bind("tenantRecordId") final Long tenantRecordId,
- @SmartBindBean final TenantContext tenantContext);
+ final TenantContext tenantContext);
+
+ @SqlQuery
+ public List<BusinessAccountFieldModelDao> getAccountFieldsByAccountRecordId(@Bind("accountRecordId") final Long accountRecordId,
+ @Bind("tenantRecordId") final Long tenantRecordId,
+ final TenantContext tenantContext);
+
+ @SqlQuery
+ public List<BusinessInvoiceFieldModelDao> getInvoiceFieldsByAccountRecordId(@Bind("accountRecordId") final Long accountRecordId,
+ @Bind("tenantRecordId") final Long tenantRecordId,
+ final TenantContext tenantContext);
+
+ @SqlQuery
+ public List<BusinessInvoicePaymentFieldModelDao> getInvoicePaymentFieldsByAccountRecordId(@Bind("accountRecordId") final Long accountRecordId,
+ @Bind("tenantRecordId") final Long tenantRecordId,
+ final TenantContext tenantContext);
+
+ @SqlQuery
+ public List<BusinessAccountTagModelDao> getAccountTagsByAccountRecordId(@Bind("accountRecordId") final Long accountRecordId,
+ @Bind("tenantRecordId") final Long tenantRecordId,
+ final TenantContext tenantContext);
@SqlQuery
- public List<BusinessFieldModelDao> getFieldsByAccountRecordId(@Bind("accountRecordId") final Long accountRecordId,
- @Bind("tenantRecordId") final Long tenantRecordId,
- @SmartBindBean final TenantContext tenantContext);
+ public List<BusinessInvoiceTagModelDao> getInvoiceTagsByAccountRecordId(@Bind("accountRecordId") final Long accountRecordId,
+ @Bind("tenantRecordId") final Long tenantRecordId,
+ final TenantContext tenantContext);
@SqlQuery
- public List<BusinessTagModelDao> getTagsByAccountRecordId(@Bind("accountRecordId") final Long accountRecordId,
- @Bind("tenantRecordId") final Long tenantRecordId,
- @SmartBindBean final TenantContext tenantContext);
+ public List<BusinessInvoicePaymentTagModelDao> getInvoicePaymentTagsByAccountRecordId(@Bind("accountRecordId") final Long accountRecordId,
+ @Bind("tenantRecordId") final Long tenantRecordId,
+ final TenantContext tenantContext);
}
diff --git a/osgi-bundles/bundles/analytics/src/main/java/com/ning/billing/osgi/bundles/analytics/dao/model/BusinessAccountModelDao.java b/osgi-bundles/bundles/analytics/src/main/java/com/ning/billing/osgi/bundles/analytics/dao/model/BusinessAccountModelDao.java
index 2a746d1..03f1cd6 100644
--- a/osgi-bundles/bundles/analytics/src/main/java/com/ning/billing/osgi/bundles/analytics/dao/model/BusinessAccountModelDao.java
+++ b/osgi-bundles/bundles/analytics/src/main/java/com/ning/billing/osgi/bundles/analytics/dao/model/BusinessAccountModelDao.java
@@ -50,6 +50,7 @@ public class BusinessAccountModelDao extends BusinessModelDaoBase {
private String phone;
private Boolean migrated;
private Boolean notifiedForInvoices;
+ private DateTime updatedDate;
private BigDecimal balance;
private LocalDate lastInvoiceDate;
private DateTime lastPaymentDate;
@@ -74,6 +75,7 @@ public class BusinessAccountModelDao extends BusinessModelDaoBase {
final String phone,
final Boolean isMigrated,
final Boolean notifiedForInvoices,
+ final DateTime updatedDate,
final BigDecimal balance,
final LocalDate lastInvoiceDate,
final DateTime lastPaymentDate,
@@ -113,6 +115,7 @@ public class BusinessAccountModelDao extends BusinessModelDaoBase {
this.phone = phone;
this.migrated = isMigrated;
this.notifiedForInvoices = notifiedForInvoices;
+ this.updatedDate = updatedDate;
this.balance = balance;
this.lastInvoiceDate = lastInvoiceDate;
this.lastPaymentDate = lastPaymentDate;
@@ -143,6 +146,7 @@ public class BusinessAccountModelDao extends BusinessModelDaoBase {
account.getPhone(),
account.isMigrated(),
account.isNotifiedForInvoices(),
+ account.getUpdatedDate(),
balance,
lastInvoice == null ? null : lastInvoice.getInvoiceDate(),
lastPayment == null ? null : lastPayment.getEffectiveDate(),
@@ -231,6 +235,10 @@ public class BusinessAccountModelDao extends BusinessModelDaoBase {
return notifiedForInvoices;
}
+ public DateTime getUpdatedDate() {
+ return updatedDate;
+ }
+
public BigDecimal getBalance() {
return balance;
}
@@ -268,6 +276,7 @@ public class BusinessAccountModelDao extends BusinessModelDaoBase {
sb.append(", phone='").append(phone).append('\'');
sb.append(", migrated=").append(migrated);
sb.append(", notifiedForInvoices=").append(notifiedForInvoices);
+ sb.append(", updatedDate=").append(updatedDate);
sb.append(", balance=").append(balance);
sb.append(", lastInvoiceDate=").append(lastInvoiceDate);
sb.append(", lastPaymentDate=").append(lastPaymentDate);
@@ -296,7 +305,7 @@ public class BusinessAccountModelDao extends BusinessModelDaoBase {
if (address2 != null ? !address2.equals(that.address2) : that.address2 != null) {
return false;
}
- if (balance != null ? !balance.equals(that.balance) : that.balance != null) {
+ if (balance != null ? balance.compareTo(that.balance) != 0 : that.balance != null) {
return false;
}
if (billingCycleDayLocal != null ? !billingCycleDayLocal.equals(that.billingCycleDayLocal) : that.billingCycleDayLocal != null) {
@@ -320,12 +329,6 @@ public class BusinessAccountModelDao extends BusinessModelDaoBase {
if (firstNameLength != null ? !firstNameLength.equals(that.firstNameLength) : that.firstNameLength != null) {
return false;
}
- if (migrated != null ? !migrated.equals(that.migrated) : that.migrated != null) {
- return false;
- }
- if (notifiedForInvoices != null ? !notifiedForInvoices.equals(that.notifiedForInvoices) : that.notifiedForInvoices != null) {
- return false;
- }
if (lastInvoiceDate != null ? !lastInvoiceDate.equals(that.lastInvoiceDate) : that.lastInvoiceDate != null) {
return false;
}
@@ -338,6 +341,12 @@ public class BusinessAccountModelDao extends BusinessModelDaoBase {
if (locale != null ? !locale.equals(that.locale) : that.locale != null) {
return false;
}
+ if (migrated != null ? !migrated.equals(that.migrated) : that.migrated != null) {
+ return false;
+ }
+ if (notifiedForInvoices != null ? !notifiedForInvoices.equals(that.notifiedForInvoices) : that.notifiedForInvoices != null) {
+ return false;
+ }
if (paymentMethodId != null ? !paymentMethodId.equals(that.paymentMethodId) : that.paymentMethodId != null) {
return false;
}
@@ -353,6 +362,9 @@ public class BusinessAccountModelDao extends BusinessModelDaoBase {
if (timeZone != null ? !timeZone.equals(that.timeZone) : that.timeZone != null) {
return false;
}
+ if (updatedDate != null ? !updatedDate.equals(that.updatedDate) : that.updatedDate != null) {
+ return false;
+ }
return true;
}
@@ -377,6 +389,7 @@ public class BusinessAccountModelDao extends BusinessModelDaoBase {
result = 31 * result + (phone != null ? phone.hashCode() : 0);
result = 31 * result + (migrated != null ? migrated.hashCode() : 0);
result = 31 * result + (notifiedForInvoices != null ? notifiedForInvoices.hashCode() : 0);
+ result = 31 * result + (updatedDate != null ? updatedDate.hashCode() : 0);
result = 31 * result + (balance != null ? balance.hashCode() : 0);
result = 31 * result + (lastInvoiceDate != null ? lastInvoiceDate.hashCode() : 0);
result = 31 * result + (lastPaymentDate != null ? lastPaymentDate.hashCode() : 0);
diff --git a/osgi-bundles/bundles/analytics/src/main/resources/com/ning/billing/osgi/bundles/analytics/dao/BusinessAnalyticsSqlDao.sql.stg b/osgi-bundles/bundles/analytics/src/main/resources/com/ning/billing/osgi/bundles/analytics/dao/BusinessAnalyticsSqlDao.sql.stg
index ebe3174..df81b81 100644
--- a/osgi-bundles/bundles/analytics/src/main/resources/com/ning/billing/osgi/bundles/analytics/dao/BusinessAnalyticsSqlDao.sql.stg
+++ b/osgi-bundles/bundles/analytics/src/main/resources/com/ning/billing/osgi/bundles/analytics/dao/BusinessAnalyticsSqlDao.sql.stg
@@ -921,29 +921,32 @@ SELECT_STAR_FROM_TABLE(table) ::= <<
select *
from <table> t
where <CHECK_TENANT_AND_ACCOUNT("t.")>
-;
>>
-deleteByAccountRecordId() ::= <<
-delete from :tableName t
+deleteByAccountRecordId(tableName) ::= <<
+delete from <tableName> t
where <CHECK_TENANT_AND_ACCOUNT("t.")>
;
>>
getAccountByAccountRecordId() ::= <<
<SELECT_STAR_FROM_TABLE("bac")>
+;
>>
getSubscriptionTransitionsByAccountRecordId() ::= <<
<SELECT_STAR_FROM_TABLE("bst")>
+;
>>
getOverdueStatusesByAccountRecordId() ::= <<
<SELECT_STAR_FROM_TABLE("bos")>
+;
>>
getInvoicesByAccountRecordId() ::= <<
<SELECT_STAR_FROM_TABLE("bin")>
+;
>>
getInvoiceItemsByAccountRecordId() ::= <<
@@ -954,6 +957,7 @@ union all
<SELECT_STAR_FROM_TABLE("biia")>
union all
<SELECT_STAR_FROM_TABLE("biic")>
+;
>>
getInvoicePaymentsByAccountRecordId() ::= <<
@@ -962,20 +966,35 @@ union all
<SELECT_STAR_FROM_TABLE("bipr")>
union all
<SELECT_STAR_FROM_TABLE("bipc")>
+;
>>
-getFieldsByAccountRecordId() ::= <<
+getAccountFieldsByAccountRecordId() ::= <<
<SELECT_STAR_FROM_TABLE("bac_fields")>
-union all
-<SELECT_STAR_FROM_TABLE("bin_fiels")>
-union all
-<SELECT_STAR_FROM_TABLE("bip_fiels")>
+;
+>>
+
+getInvoiceFieldsByAccountRecordId() ::= <<
+<SELECT_STAR_FROM_TABLE("bin_fields")>
+;
>>
-getTagsByAccountRecordId() ::= <<
+getInvoicePaymentFieldsByAccountRecordId() ::= <<
+<SELECT_STAR_FROM_TABLE("bip_fields")>
+;
+>>
+
+getAccountTagsByAccountRecordId() ::= <<
<SELECT_STAR_FROM_TABLE("bac_tags")>
-union all
+;
+>>
+
+getInvoiceTagsByAccountRecordId() ::= <<
<SELECT_STAR_FROM_TABLE("bin_tags")>
-union all
+;
+>>
+
+getInvoicePaymentTagsByAccountRecordId() ::= <<
<SELECT_STAR_FROM_TABLE("bip_tags")>
+;
>>
diff --git a/osgi-bundles/bundles/analytics/src/test/java/com/ning/billing/osgi/bundles/analytics/AnalyticsTestSuiteNoDB.java b/osgi-bundles/bundles/analytics/src/test/java/com/ning/billing/osgi/bundles/analytics/AnalyticsTestSuiteNoDB.java
index db0b552..8eadccb 100644
--- a/osgi-bundles/bundles/analytics/src/test/java/com/ning/billing/osgi/bundles/analytics/AnalyticsTestSuiteNoDB.java
+++ b/osgi-bundles/bundles/analytics/src/test/java/com/ning/billing/osgi/bundles/analytics/AnalyticsTestSuiteNoDB.java
@@ -55,6 +55,7 @@ import com.ning.billing.payment.api.Payment.PaymentAttempt;
import com.ning.billing.payment.api.PaymentMethod;
import com.ning.billing.payment.api.PaymentMethodPlugin;
import com.ning.billing.payment.api.PaymentStatus;
+import com.ning.billing.util.api.RecordIdApi;
import com.ning.billing.util.audit.AuditLog;
import com.ning.billing.util.audit.ChangeType;
import com.ning.billing.util.callcontext.CallContext;
@@ -147,6 +148,7 @@ public abstract class AnalyticsTestSuiteNoDB {
Mockito.when(account.isMigrated()).thenReturn(true);
Mockito.when(account.isNotifiedForInvoices()).thenReturn(true);
Mockito.when(account.getCreatedDate()).thenReturn(new DateTime(2016, 1, 22, 10, 56, 47, DateTimeZone.UTC));
+ Mockito.when(account.getUpdatedDate()).thenReturn(new DateTime(2016, 1, 22, 10, 56, 48, DateTimeZone.UTC));
final UUID accountId = account.getId();
bundle = Mockito.mock(SubscriptionBundle.class);
@@ -192,7 +194,9 @@ public abstract class AnalyticsTestSuiteNoDB {
Mockito.when(subscriptionTransition.getEffectiveTransitionTime()).thenReturn(new DateTime(2011, 2, 3, 4, 5, 6, DateTimeZone.UTC));
Mockito.when(subscriptionTransition.getTransitionType()).thenReturn(SubscriptionTransitionType.CREATE);
Mockito.when(subscriptionTransition.getNextEventCreatedDate()).thenReturn(new DateTime(2016, 1, 22, 10, 56, 49, DateTimeZone.UTC));
+ Mockito.when(subscriptionTransition.getNextEventId()).thenReturn(UUID.randomUUID());
final UUID subscriptionId = subscriptionTransition.getSubscriptionId();
+ final UUID nextEventId = subscriptionTransition.getNextEventId();
blockingState = Mockito.mock(BlockingState.class);
Mockito.when(blockingState.getId()).thenReturn(UUID.randomUUID());
@@ -205,7 +209,8 @@ public abstract class AnalyticsTestSuiteNoDB {
Mockito.when(blockingState.isBlockEntitlement()).thenReturn(true);
Mockito.when(blockingState.getDescription()).thenReturn(UUID.randomUUID().toString());
Mockito.when(blockingState.getService()).thenReturn(UUID.randomUUID().toString());
- Mockito.when(blockingState.getCreatedDate()).thenReturn(new DateTime(2016, 1, 22, 10, 56, 00, DateTimeZone.UTC));
+ Mockito.when(blockingState.getCreatedDate()).thenReturn(new DateTime(2016, 1, 22, 10, 56, 0, DateTimeZone.UTC));
+ final UUID blockingStateId = blockingState.getId();
invoiceItem = Mockito.mock(InvoiceItem.class);
Mockito.when(invoiceItem.getId()).thenReturn(UUID.randomUUID());
@@ -224,6 +229,7 @@ public abstract class AnalyticsTestSuiteNoDB {
Mockito.when(invoiceItem.getRate()).thenReturn(new BigDecimal("1203"));
Mockito.when(invoiceItem.getLinkedItemId()).thenReturn(UUID.randomUUID());
Mockito.when(invoiceItem.getCreatedDate()).thenReturn(new DateTime(2016, 1, 22, 10, 56, 51, DateTimeZone.UTC));
+ final UUID invoiceItemId = invoiceItem.getId();
final UUID invoiceId = UUID.randomUUID();
@@ -238,6 +244,7 @@ public abstract class AnalyticsTestSuiteNoDB {
Mockito.when(invoicePayment.getLinkedInvoicePaymentId()).thenReturn(UUID.randomUUID());
Mockito.when(invoicePayment.getPaymentCookieId()).thenReturn(UUID.randomUUID());
Mockito.when(invoicePayment.getCreatedDate()).thenReturn(new DateTime(2016, 1, 22, 10, 56, 53, DateTimeZone.UTC));
+ final UUID invoicePaymentId = invoicePayment.getId();
invoice = Mockito.mock(Invoice.class);
Mockito.when(invoice.getId()).thenReturn(invoiceId);
@@ -305,12 +312,14 @@ public abstract class AnalyticsTestSuiteNoDB {
Mockito.when(customField.getFieldName()).thenReturn(UUID.randomUUID().toString());
Mockito.when(customField.getFieldValue()).thenReturn(UUID.randomUUID().toString());
Mockito.when(customField.getCreatedDate()).thenReturn(new DateTime(2016, 1, 22, 10, 56, 57, DateTimeZone.UTC));
+ final UUID fieldId = customField.getId();
tag = Mockito.mock(Tag.class);
Mockito.when(tag.getObjectId()).thenReturn(UUID.randomUUID());
Mockito.when(tag.getObjectType()).thenReturn(ObjectType.ACCOUNT);
Mockito.when(tag.getTagDefinitionId()).thenReturn(UUID.randomUUID());
Mockito.when(tag.getCreatedDate()).thenReturn(new DateTime(2016, 1, 22, 10, 56, 58, DateTimeZone.UTC));
+ final UUID tagId = tag.getId();
tagDefinition = Mockito.mock(TagDefinition.class);
Mockito.when(tagDefinition.getId()).thenReturn(UUID.randomUUID());
@@ -331,8 +340,22 @@ public abstract class AnalyticsTestSuiteNoDB {
// Real class for the binding to work with JDBI
callContext = new TestCallContext();
+ final UUID tenantId = callContext.getTenantId();
+
+ final RecordIdApi recordIdApi = Mockito.mock(RecordIdApi.class);
+ Mockito.when(recordIdApi.getRecordId(accountId, ObjectType.ACCOUNT, callContext)).thenReturn(accountRecordId);
+ Mockito.when(recordIdApi.getRecordId(nextEventId, ObjectType.SUBSCRIPTION_EVENT, callContext)).thenReturn(subscriptionEventRecordId);
+ Mockito.when(recordIdApi.getRecordId(invoiceId, ObjectType.INVOICE, callContext)).thenReturn(invoiceRecordId);
+ Mockito.when(recordIdApi.getRecordId(invoiceItemId, ObjectType.INVOICE_ITEM, callContext)).thenReturn(invoiceItemRecordId);
+ Mockito.when(recordIdApi.getRecordId(invoicePaymentId, ObjectType.INVOICE_PAYMENT, callContext)).thenReturn(invoicePaymentRecordId);
+ Mockito.when(recordIdApi.getRecordId(blockingStateId, ObjectType.BLOCKING_STATES, callContext)).thenReturn(blockingStateRecordId);
+ Mockito.when(recordIdApi.getRecordId(fieldId, ObjectType.CUSTOM_FIELD, callContext)).thenReturn(fieldRecordId);
+ Mockito.when(recordIdApi.getRecordId(tagId, ObjectType.TAG, callContext)).thenReturn(tagRecordId);
+ Mockito.when(recordIdApi.getRecordId(tenantId, ObjectType.TENANT, callContext)).thenReturn(tenantRecordId);
killbillAPI = Mockito.mock(OSGIKillbillAPI.class);
+ Mockito.when(killbillAPI.getRecordIdApi()).thenReturn(recordIdApi);
+
killbillDataSource = Mockito.mock(OSGIKillbillDataSource.class);
}
}
diff --git a/osgi-bundles/bundles/analytics/src/test/java/com/ning/billing/osgi/bundles/analytics/api/TestBusinessAccount.java b/osgi-bundles/bundles/analytics/src/test/java/com/ning/billing/osgi/bundles/analytics/api/TestBusinessAccount.java
index ae60a88..d24f729 100644
--- a/osgi-bundles/bundles/analytics/src/test/java/com/ning/billing/osgi/bundles/analytics/api/TestBusinessAccount.java
+++ b/osgi-bundles/bundles/analytics/src/test/java/com/ning/billing/osgi/bundles/analytics/api/TestBusinessAccount.java
@@ -43,6 +43,9 @@ public class TestBusinessAccount extends AnalyticsTestSuiteNoDB {
Assert.assertEquals(businessAccount.getFirstNameLength(), accountModelDao.getFirstNameLength());
Assert.assertEquals(businessAccount.getCurrency(), accountModelDao.getCurrency());
Assert.assertEquals(businessAccount.getBillingCycleDayLocal(), accountModelDao.getBillingCycleDayLocal());
+ Assert.assertEquals(businessAccount.getPaymentMethodId(), accountModelDao.getPaymentMethodId());
+ Assert.assertEquals(businessAccount.getTimeZone(), accountModelDao.getTimeZone());
+ Assert.assertEquals(businessAccount.getLocale(), accountModelDao.getLocale());
Assert.assertEquals(businessAccount.getAddress1(), accountModelDao.getAddress1());
Assert.assertEquals(businessAccount.getAddress2(), accountModelDao.getAddress2());
Assert.assertEquals(businessAccount.getCompanyName(), accountModelDao.getCompanyName());
@@ -53,6 +56,7 @@ public class TestBusinessAccount extends AnalyticsTestSuiteNoDB {
Assert.assertEquals(businessAccount.getPhone(), accountModelDao.getPhone());
Assert.assertEquals(businessAccount.getMigrated(), accountModelDao.getMigrated());
Assert.assertEquals(businessAccount.getNotifiedForInvoices(), accountModelDao.getNotifiedForInvoices());
+ Assert.assertEquals(businessAccount.getUpdatedDate(), accountModelDao.getUpdatedDate());
Assert.assertEquals(businessAccount.getBalance(), accountModelDao.getBalance());
Assert.assertEquals(businessAccount.getLastInvoiceDate(), accountModelDao.getLastInvoiceDate());
Assert.assertEquals(businessAccount.getLastPaymentDate(), accountModelDao.getLastPaymentDate());
diff --git a/osgi-bundles/bundles/analytics/src/test/java/com/ning/billing/osgi/bundles/analytics/dao/model/TestBusinessAccountModelDao.java b/osgi-bundles/bundles/analytics/src/test/java/com/ning/billing/osgi/bundles/analytics/dao/model/TestBusinessAccountModelDao.java
index a94d484..367a90a 100644
--- a/osgi-bundles/bundles/analytics/src/test/java/com/ning/billing/osgi/bundles/analytics/dao/model/TestBusinessAccountModelDao.java
+++ b/osgi-bundles/bundles/analytics/src/test/java/com/ning/billing/osgi/bundles/analytics/dao/model/TestBusinessAccountModelDao.java
@@ -60,6 +60,7 @@ public class TestBusinessAccountModelDao extends AnalyticsTestSuiteNoDB {
private void verifyAccountFields(final BusinessAccountModelDao accountModelDao) {
verifyBusinessModelDaoBase(accountModelDao, accountRecordId, tenantRecordId);
Assert.assertEquals(accountModelDao.getCreatedDate(), account.getCreatedDate());
+ Assert.assertEquals(accountModelDao.getUpdatedDate(), account.getUpdatedDate());
Assert.assertEquals(accountModelDao.getEmail(), account.getEmail());
Assert.assertEquals(accountModelDao.getFirstNameLength(), account.getFirstNameLength());
Assert.assertEquals(accountModelDao.getCurrency(), account.getCurrency().toString());
diff --git a/osgi-bundles/bundles/analytics/src/test/java/com/ning/billing/osgi/bundles/analytics/dao/TestCallContext.java b/osgi-bundles/bundles/analytics/src/test/java/com/ning/billing/osgi/bundles/analytics/dao/TestCallContext.java
index d1e27f3..b558860 100644
--- a/osgi-bundles/bundles/analytics/src/test/java/com/ning/billing/osgi/bundles/analytics/dao/TestCallContext.java
+++ b/osgi-bundles/bundles/analytics/src/test/java/com/ning/billing/osgi/bundles/analytics/dao/TestCallContext.java
@@ -27,14 +27,22 @@ import com.ning.billing.util.callcontext.UserType;
public class TestCallContext implements CallContext {
+ private final UUID userToken = UUID.randomUUID();
+ private final String userName = UUID.randomUUID().toString();
+ private final String reasonCode = UUID.randomUUID().toString();
+ private final String comments = UUID.randomUUID().toString();
+ private final DateTime createdDate = new DateTime(2010, 2, 4, 6, 8, 10, DateTimeZone.UTC);
+ private final DateTime updatedDate = new DateTime(2011, 3, 5, 7, 9, 11, DateTimeZone.UTC);
+ private final UUID tenantId = UUID.randomUUID();
+
@Override
public UUID getUserToken() {
- return UUID.randomUUID();
+ return userToken;
}
@Override
public String getUserName() {
- return UUID.randomUUID().toString();
+ return userName;
}
@Override
@@ -49,26 +57,26 @@ public class TestCallContext implements CallContext {
@Override
public String getReasonCode() {
- return UUID.randomUUID().toString();
+ return reasonCode;
}
@Override
public String getComments() {
- return UUID.randomUUID().toString();
+ return comments;
}
@Override
public DateTime getCreatedDate() {
- return new DateTime(2010, 2, 4, 6, 8, 10, DateTimeZone.UTC);
+ return createdDate;
}
@Override
public DateTime getUpdatedDate() {
- return new DateTime(2011, 3, 5, 7, 9, 11, DateTimeZone.UTC);
+ return updatedDate;
}
@Override
public UUID getTenantId() {
- return UUID.randomUUID();
+ return tenantId;
}
}