killbill-memoizeit
Changes
osgi-bundles/bundles/analytics/src/test/java/com/ning/billing/osgi/bundles/analytics/AnalyticsTestSuiteNoDB.java 289(+172 -117)
osgi-bundles/bundles/analytics/src/test/java/com/ning/billing/osgi/bundles/analytics/AnalyticsTestSuiteWithEmbeddedDB.java 139(+1 -138)
osgi-bundles/bundles/analytics/src/test/java/com/ning/billing/osgi/bundles/analytics/api/TestAnalyticsService.java 231(+0 -231)
osgi-bundles/bundles/analytics/src/test/java/com/ning/billing/osgi/bundles/analytics/dao/model/TestBusinessAccountFieldModelDao.java 35(+8 -27)
osgi-bundles/bundles/analytics/src/test/java/com/ning/billing/osgi/bundles/analytics/dao/model/TestBusinessAccountModelDao.java 65(+65 -0)
osgi-bundles/bundles/analytics/src/test/java/com/ning/billing/osgi/bundles/analytics/dao/model/TestBusinessAccountTagModelDao.java 24(+6 -18)
osgi-bundles/bundles/analytics/src/test/java/com/ning/billing/osgi/bundles/analytics/dao/model/TestBusinessInvoice.java 2(+1 -1)
osgi-bundles/bundles/analytics/src/test/java/com/ning/billing/osgi/bundles/analytics/dao/model/TestBusinessInvoiceField.java 2(+1 -1)
osgi-bundles/bundles/analytics/src/test/java/com/ning/billing/osgi/bundles/analytics/dao/model/TestBusinessInvoiceItem.java 2(+1 -1)
osgi-bundles/bundles/analytics/src/test/java/com/ning/billing/osgi/bundles/analytics/dao/model/TestBusinessInvoicePayment.java 2(+1 -1)
osgi-bundles/bundles/analytics/src/test/java/com/ning/billing/osgi/bundles/analytics/dao/model/TestBusinessInvoicePaymentField.java 2(+1 -1)
osgi-bundles/bundles/analytics/src/test/java/com/ning/billing/osgi/bundles/analytics/dao/model/TestBusinessInvoicePaymentTag.java 2(+1 -1)
osgi-bundles/bundles/analytics/src/test/java/com/ning/billing/osgi/bundles/analytics/dao/model/TestBusinessInvoiceTag.java 2(+1 -1)
osgi-bundles/bundles/analytics/src/test/java/com/ning/billing/osgi/bundles/analytics/dao/model/TestBusinessOverdueStatus.java 2(+1 -1)
osgi-bundles/bundles/analytics/src/test/java/com/ning/billing/osgi/bundles/analytics/dao/model/TestBusinessSubscription.java 2(+1 -1)
osgi-bundles/bundles/analytics/src/test/java/com/ning/billing/osgi/bundles/analytics/dao/model/TestBusinessSubscriptionEvent.java 2(+1 -1)
osgi-bundles/bundles/analytics/src/test/java/com/ning/billing/osgi/bundles/analytics/dao/model/TestBusinessSubscriptionTransition.java 2(+1 -1)
osgi-bundles/bundles/analytics/src/test/java/com/ning/billing/osgi/bundles/analytics/dao/model/TestBusinessSubscriptionTransitionField.java 2(+1 -1)
osgi-bundles/bundles/analytics/src/test/java/com/ning/billing/osgi/bundles/analytics/dao/model/TestBusinessSubscriptionTransitionTag.java 2(+1 -1)
osgi-bundles/bundles/analytics/src/test/java/com/ning/billing/osgi/bundles/analytics/dao/TestBusinessAccountFieldSqlDao.java 90(+0 -90)
osgi-bundles/bundles/analytics/src/test/java/com/ning/billing/osgi/bundles/analytics/dao/TestBusinessAccountTagSqlDao.java 88(+0 -88)
osgi-bundles/bundles/analytics/src/test/java/com/ning/billing/osgi/bundles/analytics/dao/TestBusinessInvoiceFieldSqlDao.java 86(+0 -86)
osgi-bundles/bundles/analytics/src/test/java/com/ning/billing/osgi/bundles/analytics/dao/TestBusinessInvoiceItemSqlDao.java 117(+0 -117)
osgi-bundles/bundles/analytics/src/test/java/com/ning/billing/osgi/bundles/analytics/dao/TestBusinessInvoicePaymentFieldSqlDao.java 86(+0 -86)
osgi-bundles/bundles/analytics/src/test/java/com/ning/billing/osgi/bundles/analytics/dao/TestBusinessInvoicePaymentSqlDao.java 118(+0 -118)
osgi-bundles/bundles/analytics/src/test/java/com/ning/billing/osgi/bundles/analytics/dao/TestBusinessInvoicePaymentTagSqlDao.java 84(+0 -84)
osgi-bundles/bundles/analytics/src/test/java/com/ning/billing/osgi/bundles/analytics/dao/TestBusinessInvoiceSqlDao.java 107(+0 -107)
osgi-bundles/bundles/analytics/src/test/java/com/ning/billing/osgi/bundles/analytics/dao/TestBusinessInvoiceTagSqlDao.java 84(+0 -84)
osgi-bundles/bundles/analytics/src/test/java/com/ning/billing/osgi/bundles/analytics/dao/TestBusinessOverdueStatusSqlDao.java 75(+0 -75)
osgi-bundles/bundles/analytics/src/test/java/com/ning/billing/osgi/bundles/analytics/dao/TestBusinessSubscriptionTransitionFieldSqlDao.java 91(+0 -91)
osgi-bundles/bundles/analytics/src/test/java/com/ning/billing/osgi/bundles/analytics/dao/TestBusinessSubscriptionTransitionTagSqlDao.java 89(+0 -89)
osgi-bundles/bundles/analytics/src/test/java/com/ning/billing/osgi/bundles/analytics/glue/TestAnalyticsModule.java 67(+0 -67)
osgi-bundles/bundles/analytics/src/test/java/com/ning/billing/osgi/bundles/analytics/glue/TestAnalyticsModuleNoDB.java 74(+0 -74)
osgi-bundles/bundles/analytics/src/test/java/com/ning/billing/osgi/bundles/analytics/glue/TestAnalyticsModuleWithEmbeddedDB.java 39(+0 -39)
osgi-bundles/bundles/analytics/src/test/java/com/ning/billing/osgi/bundles/analytics/MockBusinessSubscriptionTransitionSqlDao.java 127(+0 -127)
osgi-bundles/bundles/analytics/src/test/java/com/ning/billing/osgi/bundles/analytics/model/TestBusinessAccount.java 68(+0 -68)
osgi-bundles/bundles/analytics/src/test/java/com/ning/billing/osgi/bundles/analytics/TestBusinessInvoiceRecorder.java 64(+0 -64)
osgi-bundles/bundles/analytics/src/test/java/com/ning/billing/osgi/bundles/analytics/TestBusinessSubscriptionTransitionRecorder.java 87(+0 -87)
Details
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 d9dd13a..490b83f 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
@@ -16,128 +16,183 @@
package com.ning.billing.osgi.bundles.analytics;
-import org.testng.annotations.AfterMethod;
-import org.testng.annotations.BeforeClass;
+import java.math.BigDecimal;
+import java.util.UUID;
+
+import org.joda.time.DateTime;
+import org.joda.time.DateTimeZone;
+import org.joda.time.LocalDate;
+import org.mockito.Mockito;
+import org.testng.Assert;
import org.testng.annotations.BeforeMethod;
-import com.ning.billing.GuicyKillbillTestSuiteNoDB;
-import com.ning.billing.account.api.AccountUserApi;
-import com.ning.billing.analytics.api.user.AnalyticsUserApi;
-import com.ning.billing.catalog.api.CatalogService;
-import com.ning.billing.entitlement.api.user.EntitlementUserApi;
-import com.ning.billing.invoice.api.InvoiceUserApi;
-import com.ning.billing.invoice.dao.InvoiceDao;
-import com.ning.billing.osgi.bundles.analytics.dao.BusinessAccountDao;
-import com.ning.billing.osgi.bundles.analytics.dao.BusinessAccountFieldSqlDao;
-import com.ning.billing.osgi.bundles.analytics.dao.BusinessAccountSqlDao;
-import com.ning.billing.osgi.bundles.analytics.dao.BusinessAccountTagSqlDao;
-import com.ning.billing.osgi.bundles.analytics.dao.BusinessInvoiceDao;
-import com.ning.billing.osgi.bundles.analytics.dao.BusinessInvoiceFieldSqlDao;
-import com.ning.billing.osgi.bundles.analytics.dao.BusinessInvoiceItemSqlDao;
-import com.ning.billing.osgi.bundles.analytics.dao.BusinessInvoicePaymentFieldSqlDao;
-import com.ning.billing.osgi.bundles.analytics.dao.BusinessInvoicePaymentSqlDao;
-import com.ning.billing.osgi.bundles.analytics.dao.BusinessInvoicePaymentTagSqlDao;
-import com.ning.billing.osgi.bundles.analytics.dao.BusinessInvoiceSqlDao;
-import com.ning.billing.osgi.bundles.analytics.dao.BusinessInvoiceTagSqlDao;
-import com.ning.billing.osgi.bundles.analytics.dao.BusinessOverdueStatusDao;
-import com.ning.billing.osgi.bundles.analytics.dao.BusinessOverdueStatusSqlDao;
-import com.ning.billing.osgi.bundles.analytics.dao.BusinessSubscriptionTransitionDao;
-import com.ning.billing.osgi.bundles.analytics.dao.BusinessSubscriptionTransitionFieldSqlDao;
-import com.ning.billing.osgi.bundles.analytics.dao.BusinessSubscriptionTransitionSqlDao;
-import com.ning.billing.osgi.bundles.analytics.dao.BusinessSubscriptionTransitionTagSqlDao;
-import com.ning.billing.osgi.bundles.analytics.dao.BusinessTagDao;
-import com.ning.billing.osgi.bundles.analytics.glue.TestAnalyticsModuleNoDB;
-import com.ning.billing.payment.dao.PaymentDao;
-import com.ning.billing.util.glue.RealImplementation;
-import com.ning.billing.util.svcapi.account.AccountInternalApi;
-import com.ning.billing.util.svcapi.entitlement.EntitlementInternalApi;
-import com.ning.billing.util.svcapi.invoice.InvoiceInternalApi;
-import com.ning.billing.util.svcsapi.bus.InternalBus;
-
-import com.google.inject.Guice;
-import com.google.inject.Inject;
-import com.google.inject.Injector;
-
-public abstract class AnalyticsTestSuiteNoDB extends GuicyKillbillTestSuiteNoDB {
-
- @Inject
- @RealImplementation
- protected AccountUserApi accountApi;
- @Inject
- protected AccountInternalApi accountInternalApi;
- @Inject
- protected AnalyticsUserApi analyticsUserApi;
- @Inject
- protected CatalogService catalogService;
- @Inject
- @RealImplementation
- protected EntitlementUserApi entitlementApi;
- @Inject
- protected EntitlementInternalApi entitlementInternalApi;
- @Inject
- protected InvoiceUserApi invoiceApi;
- @Inject
- protected InvoiceDao realInvoiceDao;
- @Inject
- protected InvoiceInternalApi invoiceInternalApi;
- @Inject
- protected PaymentDao paymentDao;
- @Inject
- protected DefaultAnalyticsService service;
- @Inject
- protected InternalBus bus;
- @Inject
- protected BusinessAccountDao accountDao;
- @Inject
- protected BusinessAccountSqlDao accountSqlDao;
- @Inject
- protected BusinessAccountFieldSqlDao accountFieldSqlDao;
- @Inject
- protected BusinessAccountTagSqlDao accountTagSqlDao;
- @Inject
- protected BusinessInvoiceFieldSqlDao invoiceFieldSqlDao;
- @Inject
- protected BusinessInvoiceItemSqlDao invoiceItemSqlDao;
- @Inject
- protected BusinessInvoicePaymentFieldSqlDao invoicePaymentFieldSqlDao;
- @Inject
- protected BusinessInvoicePaymentSqlDao invoicePaymentSqlDao;
- @Inject
- protected BusinessInvoicePaymentTagSqlDao invoicePaymentTagSqlDao;
- @Inject
- protected BusinessInvoiceDao invoiceDao;
- @Inject
- protected BusinessInvoiceSqlDao invoiceSqlDao;
- @Inject
- protected BusinessInvoiceTagSqlDao invoiceTagSqlDao;
- @Inject
- protected BusinessOverdueStatusDao overdueStatusDao;
- @Inject
- protected BusinessOverdueStatusSqlDao overdueStatusSqlDao;
- @Inject
- protected BusinessSubscriptionTransitionFieldSqlDao subscriptionTransitionFieldSqlDao;
- @Inject
- protected BusinessSubscriptionTransitionTagSqlDao subscriptionTransitionTagSqlDao;
- @Inject
- protected BusinessSubscriptionTransitionDao subscriptionTransitionDao;
- @Inject
- protected BusinessSubscriptionTransitionSqlDao subscriptionTransitionSqlDao;
- @Inject
- protected BusinessTagDao tagDao;
-
- @BeforeClass(groups = "fast")
- protected void beforeClass() throws Exception {
- final Injector injector = Guice.createInjector(new TestAnalyticsModuleNoDB(configSource));
- injector.injectMembers(this);
+import com.ning.billing.ObjectType;
+import com.ning.billing.account.api.Account;
+import com.ning.billing.catalog.api.Currency;
+import com.ning.billing.invoice.api.Invoice;
+import com.ning.billing.invoice.api.InvoiceItem;
+import com.ning.billing.invoice.api.InvoiceItemType;
+import com.ning.billing.invoice.api.InvoicePayment;
+import com.ning.billing.invoice.api.InvoicePayment.InvoicePaymentType;
+import com.ning.billing.osgi.bundles.analytics.dao.model.BusinessModelDaoBase;
+import com.ning.billing.payment.api.Payment;
+import com.ning.billing.payment.api.Payment.PaymentAttempt;
+import com.ning.billing.payment.api.PaymentStatus;
+import com.ning.billing.util.audit.AuditLog;
+import com.ning.billing.util.audit.ChangeType;
+import com.ning.billing.util.customfield.CustomField;
+import com.ning.billing.util.tag.Tag;
+import com.ning.billing.util.tag.TagDefinition;
+
+import com.google.common.collect.ImmutableList;
+
+public abstract class AnalyticsTestSuiteNoDB {
+
+ protected Account account;
+ protected Invoice invoice;
+ protected InvoiceItem invoiceItem;
+ protected InvoicePayment invoicePayment;
+ protected PaymentAttempt paymentAttempt;
+ protected Payment payment;
+ protected CustomField customField;
+ protected Tag tag;
+ protected TagDefinition tagDefinition;
+ protected AuditLog auditLog;
+
+ protected void verifyBusinessModelDaoBase(final BusinessModelDaoBase businessModelDaoBase) {
+ //Assert.assertEquals(businessModelDaoBase.getRecordId(), /* TODO */);
+ Assert.assertEquals(businessModelDaoBase.getCreatedDate(), account.getCreatedDate());
+ Assert.assertEquals(businessModelDaoBase.getCreatedBy(), auditLog.getUserName());
+ Assert.assertEquals(businessModelDaoBase.getCreatedReasonCode(), auditLog.getReasonCode());
+ Assert.assertEquals(businessModelDaoBase.getCreatedComments(), auditLog.getComment());
+ Assert.assertEquals(businessModelDaoBase.getAccountId(), account.getId());
+ Assert.assertEquals(businessModelDaoBase.getAccountName(), account.getName());
+ Assert.assertEquals(businessModelDaoBase.getAccountExternalKey(), account.getExternalKey());
+ //Assert.assertEquals(businessModelDaoBase.getAccountRecordId(), /* TODO */);
+ //Assert.assertEquals(businessModelDaoBase.getTenantRecordId(), /* TODO */);
}
@BeforeMethod(groups = "fast")
- public void beforeMethod() throws Exception {
- bus.start();
- }
+ public void setUp() throws Exception {
+ account = Mockito.mock(Account.class);
+ Mockito.when(account.getId()).thenReturn(UUID.randomUUID());
+ Mockito.when(account.getExternalKey()).thenReturn(UUID.randomUUID().toString());
+ Mockito.when(account.getName()).thenReturn(UUID.randomUUID().toString());
+ Mockito.when(account.getFirstNameLength()).thenReturn(4);
+ Mockito.when(account.getEmail()).thenReturn(UUID.randomUUID().toString());
+ Mockito.when(account.getBillCycleDayLocal()).thenReturn(2);
+ Mockito.when(account.getCurrency()).thenReturn(Currency.BRL);
+ Mockito.when(account.getPaymentMethodId()).thenReturn(UUID.randomUUID());
+ Mockito.when(account.getTimeZone()).thenReturn(DateTimeZone.forID("Europe/London"));
+ Mockito.when(account.getLocale()).thenReturn(UUID.randomUUID().toString());
+ Mockito.when(account.getAddress1()).thenReturn(UUID.randomUUID().toString());
+ Mockito.when(account.getAddress2()).thenReturn(UUID.randomUUID().toString());
+ Mockito.when(account.getCompanyName()).thenReturn(UUID.randomUUID().toString());
+ Mockito.when(account.getCity()).thenReturn(UUID.randomUUID().toString());
+ Mockito.when(account.getStateOrProvince()).thenReturn(UUID.randomUUID().toString());
+ Mockito.when(account.getPostalCode()).thenReturn(UUID.randomUUID().toString());
+ Mockito.when(account.getCountry()).thenReturn(UUID.randomUUID().toString());
+ Mockito.when(account.getPhone()).thenReturn(UUID.randomUUID().toString());
+ Mockito.when(account.isMigrated()).thenReturn(true);
+ Mockito.when(account.isNotifiedForInvoices()).thenReturn(true);
+
+ invoiceItem = Mockito.mock(InvoiceItem.class);
+ Mockito.when(invoiceItem.getId()).thenReturn(UUID.randomUUID());
+ Mockito.when(invoiceItem.getInvoiceItemType()).thenReturn(InvoiceItemType.EXTERNAL_CHARGE);
+ Mockito.when(invoiceItem.getInvoiceId()).thenReturn(UUID.randomUUID());
+ Mockito.when(invoiceItem.getAccountId()).thenReturn(UUID.randomUUID());
+ Mockito.when(invoiceItem.getStartDate()).thenReturn(new LocalDate(1999, 9, 9));
+ Mockito.when(invoiceItem.getEndDate()).thenReturn(new LocalDate(2048, 1, 1));
+ Mockito.when(invoiceItem.getAmount()).thenReturn(new BigDecimal("12000"));
+ Mockito.when(invoiceItem.getCurrency()).thenReturn(Currency.EUR);
+ Mockito.when(invoiceItem.getDescription()).thenReturn(UUID.randomUUID().toString());
+ Mockito.when(invoiceItem.getBundleId()).thenReturn(UUID.randomUUID());
+ Mockito.when(invoiceItem.getSubscriptionId()).thenReturn(UUID.randomUUID());
+ Mockito.when(invoiceItem.getPlanName()).thenReturn(UUID.randomUUID().toString());
+ Mockito.when(invoiceItem.getPhaseName()).thenReturn(UUID.randomUUID().toString());
+ Mockito.when(invoiceItem.getRate()).thenReturn(new BigDecimal("1203"));
+ Mockito.when(invoiceItem.getLinkedItemId()).thenReturn(UUID.randomUUID());
+
+ invoicePayment = Mockito.mock(InvoicePayment.class);
+ Mockito.when(invoicePayment.getId()).thenReturn(UUID.randomUUID());
+ Mockito.when(invoicePayment.getPaymentId()).thenReturn(UUID.randomUUID());
+ Mockito.when(invoicePayment.getType()).thenReturn(InvoicePaymentType.ATTEMPT);
+ Mockito.when(invoicePayment.getInvoiceId()).thenReturn(UUID.randomUUID());
+ Mockito.when(invoicePayment.getPaymentDate()).thenReturn(new DateTime(2003, 4, 12, 3, 34, 52, DateTimeZone.UTC));
+ Mockito.when(invoicePayment.getAmount()).thenReturn(BigDecimal.ONE);
+ Mockito.when(invoicePayment.getCurrency()).thenReturn(Currency.MXN);
+ Mockito.when(invoicePayment.getLinkedInvoicePaymentId()).thenReturn(UUID.randomUUID());
+ Mockito.when(invoicePayment.getPaymentCookieId()).thenReturn(UUID.randomUUID());
+
+ invoice = Mockito.mock(Invoice.class);
+ Mockito.when(invoice.getId()).thenReturn(UUID.randomUUID());
+ Mockito.when(invoice.getInvoiceItems()).thenReturn(ImmutableList.<InvoiceItem>of(invoiceItem));
+ Mockito.when(invoice.getNumberOfItems()).thenReturn(6);
+ Mockito.when(invoice.getPayments()).thenReturn(ImmutableList.<InvoicePayment>of(invoicePayment));
+ Mockito.when(invoice.getNumberOfPayments()).thenReturn(3);
+ Mockito.when(invoice.getAccountId()).thenReturn(UUID.randomUUID());
+ Mockito.when(invoice.getInvoiceNumber()).thenReturn(42);
+ Mockito.when(invoice.getInvoiceDate()).thenReturn(new LocalDate(1954, 12, 1));
+ Mockito.when(invoice.getTargetDate()).thenReturn(new LocalDate(2017, 3, 4));
+ Mockito.when(invoice.getCurrency()).thenReturn(Currency.AUD);
+ Mockito.when(invoice.getPaidAmount()).thenReturn(BigDecimal.ZERO);
+ Mockito.when(invoice.getOriginalChargedAmount()).thenReturn(new BigDecimal("1922"));
+ Mockito.when(invoice.getChargedAmount()).thenReturn(new BigDecimal("100293"));
+ Mockito.when(invoice.getCBAAmount()).thenReturn(BigDecimal.TEN);
+ Mockito.when(invoice.getTotalAdjAmount()).thenReturn(new BigDecimal("192"));
+ Mockito.when(invoice.getCreditAdjAmount()).thenReturn(new BigDecimal("283"));
+ Mockito.when(invoice.getRefundAdjAmount()).thenReturn(new BigDecimal("384"));
+ Mockito.when(invoice.getBalance()).thenReturn(new BigDecimal("18376"));
+ Mockito.when(invoice.isMigrationInvoice()).thenReturn(false);
+
+ paymentAttempt = Mockito.mock(PaymentAttempt.class);
+ Mockito.when(paymentAttempt.getId()).thenReturn(UUID.randomUUID());
+ Mockito.when(paymentAttempt.getEffectiveDate()).thenReturn(new DateTime(2019, 12, 30, 10, 10, 10, DateTimeZone.UTC));
+ Mockito.when(paymentAttempt.getGatewayErrorCode()).thenReturn(UUID.randomUUID().toString());
+ Mockito.when(paymentAttempt.getGatewayErrorMsg()).thenReturn(UUID.randomUUID().toString());
+ Mockito.when(paymentAttempt.getPaymentStatus()).thenReturn(PaymentStatus.SUCCESS);
+
+ payment = Mockito.mock(Payment.class);
+ Mockito.when(payment.getId()).thenReturn(UUID.randomUUID());
+ Mockito.when(payment.getAccountId()).thenReturn(UUID.randomUUID());
+ Mockito.when(payment.getInvoiceId()).thenReturn(UUID.randomUUID());
+ Mockito.when(payment.getPaymentMethodId()).thenReturn(UUID.randomUUID());
+ Mockito.when(payment.getPaymentNumber()).thenReturn(1);
+ Mockito.when(payment.getAmount()).thenReturn(new BigDecimal("199999"));
+ Mockito.when(payment.getPaidAmount()).thenReturn(new BigDecimal("199998"));
+ Mockito.when(payment.getEffectiveDate()).thenReturn(new DateTime(2019, 2, 3, 12, 12, 12, DateTimeZone.UTC));
+ Mockito.when(payment.getCurrency()).thenReturn(Currency.USD);
+ Mockito.when(payment.getPaymentStatus()).thenReturn(PaymentStatus.AUTO_PAY_OFF);
+ Mockito.when(payment.getAttempts()).thenReturn(ImmutableList.<PaymentAttempt>of(paymentAttempt));
+ Mockito.when(payment.getExtFirstPaymentIdRef()).thenReturn(UUID.randomUUID().toString());
+ Mockito.when(payment.getExtSecondPaymentIdRef()).thenReturn(UUID.randomUUID().toString());
+
+ customField = Mockito.mock(CustomField.class);
+ Mockito.when(customField.getId()).thenReturn(UUID.randomUUID());
+ Mockito.when(customField.getObjectId()).thenReturn(UUID.randomUUID());
+ Mockito.when(customField.getObjectType()).thenReturn(ObjectType.TENANT);
+ Mockito.when(customField.getFieldName()).thenReturn(UUID.randomUUID().toString());
+ Mockito.when(customField.getFieldValue()).thenReturn(UUID.randomUUID().toString());
+
+ 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());
+
+ tagDefinition = Mockito.mock(TagDefinition.class);
+ Mockito.when(tagDefinition.getId()).thenReturn(UUID.randomUUID());
+ Mockito.when(tagDefinition.getName()).thenReturn(UUID.randomUUID().toString());
+ Mockito.when(tagDefinition.getDescription()).thenReturn(UUID.randomUUID().toString());
+ Mockito.when(tagDefinition.isControlTag()).thenReturn(false);
+ Mockito.when(tagDefinition.getApplicableObjectTypes()).thenReturn(ImmutableList.<ObjectType>of(ObjectType.INVOICE));
- @AfterMethod(groups = "fast")
- public void afterMethod() throws Exception {
- bus.stop();
+ auditLog = Mockito.mock(AuditLog.class);
+ Mockito.when(auditLog.getId()).thenReturn(UUID.randomUUID());
+ Mockito.when(auditLog.getChangeType()).thenReturn(ChangeType.INSERT);
+ Mockito.when(auditLog.getUserName()).thenReturn(UUID.randomUUID().toString());
+ Mockito.when(auditLog.getCreatedDate()).thenReturn(new DateTime(2012, 31, 31, 23, 59, 59, DateTimeZone.UTC));
+ Mockito.when(auditLog.getReasonCode()).thenReturn(UUID.randomUUID().toString());
+ Mockito.when(auditLog.getUserToken()).thenReturn(UUID.randomUUID().toString());
+ Mockito.when(auditLog.getComment()).thenReturn(UUID.randomUUID().toString());
}
}
diff --git a/osgi-bundles/bundles/analytics/src/test/java/com/ning/billing/osgi/bundles/analytics/AnalyticsTestSuiteWithEmbeddedDB.java b/osgi-bundles/bundles/analytics/src/test/java/com/ning/billing/osgi/bundles/analytics/AnalyticsTestSuiteWithEmbeddedDB.java
index a8d3596..d2c3a54 100644
--- a/osgi-bundles/bundles/analytics/src/test/java/com/ning/billing/osgi/bundles/analytics/AnalyticsTestSuiteWithEmbeddedDB.java
+++ b/osgi-bundles/bundles/analytics/src/test/java/com/ning/billing/osgi/bundles/analytics/AnalyticsTestSuiteWithEmbeddedDB.java
@@ -16,142 +16,5 @@
package com.ning.billing.osgi.bundles.analytics;
-import org.testng.annotations.AfterMethod;
-import org.testng.annotations.BeforeClass;
-import org.testng.annotations.BeforeMethod;
-
-import com.ning.billing.GuicyKillbillTestSuiteWithEmbeddedDB;
-import com.ning.billing.account.api.AccountUserApi;
-import com.ning.billing.analytics.api.AnalyticsService;
-import com.ning.billing.analytics.api.user.AnalyticsUserApi;
-import com.ning.billing.catalog.api.CatalogService;
-import com.ning.billing.entitlement.api.user.EntitlementUserApi;
-import com.ning.billing.invoice.api.InvoiceUserApi;
-import com.ning.billing.invoice.dao.InvoiceDao;
-import com.ning.billing.osgi.bundles.analytics.dao.BusinessAccountDao;
-import com.ning.billing.osgi.bundles.analytics.dao.BusinessAccountFieldSqlDao;
-import com.ning.billing.osgi.bundles.analytics.dao.BusinessAccountSqlDao;
-import com.ning.billing.osgi.bundles.analytics.dao.BusinessAccountTagSqlDao;
-import com.ning.billing.osgi.bundles.analytics.dao.BusinessInvoiceDao;
-import com.ning.billing.osgi.bundles.analytics.dao.BusinessInvoiceFieldSqlDao;
-import com.ning.billing.osgi.bundles.analytics.dao.BusinessInvoiceItemSqlDao;
-import com.ning.billing.osgi.bundles.analytics.dao.BusinessInvoicePaymentFieldSqlDao;
-import com.ning.billing.osgi.bundles.analytics.dao.BusinessInvoicePaymentSqlDao;
-import com.ning.billing.osgi.bundles.analytics.dao.BusinessInvoicePaymentTagSqlDao;
-import com.ning.billing.osgi.bundles.analytics.dao.BusinessInvoiceSqlDao;
-import com.ning.billing.osgi.bundles.analytics.dao.BusinessInvoiceTagSqlDao;
-import com.ning.billing.osgi.bundles.analytics.dao.BusinessOverdueStatusDao;
-import com.ning.billing.osgi.bundles.analytics.dao.BusinessOverdueStatusSqlDao;
-import com.ning.billing.osgi.bundles.analytics.dao.BusinessSubscriptionTransitionDao;
-import com.ning.billing.osgi.bundles.analytics.dao.BusinessSubscriptionTransitionFieldSqlDao;
-import com.ning.billing.osgi.bundles.analytics.dao.BusinessSubscriptionTransitionSqlDao;
-import com.ning.billing.osgi.bundles.analytics.dao.BusinessSubscriptionTransitionTagSqlDao;
-import com.ning.billing.osgi.bundles.analytics.dao.BusinessTagDao;
-import com.ning.billing.osgi.bundles.analytics.glue.TestAnalyticsModuleWithEmbeddedDB;
-import com.ning.billing.payment.dao.PaymentDao;
-import com.ning.billing.util.glue.RealImplementation;
-import com.ning.billing.util.svcapi.account.AccountInternalApi;
-import com.ning.billing.util.svcapi.entitlement.EntitlementInternalApi;
-import com.ning.billing.util.svcapi.invoice.InvoiceInternalApi;
-import com.ning.billing.util.svcsapi.bus.InternalBus;
-
-import com.google.inject.Guice;
-import com.google.inject.Inject;
-import com.google.inject.Injector;
-
-public abstract class AnalyticsTestSuiteWithEmbeddedDB extends GuicyKillbillTestSuiteWithEmbeddedDB {
-
- @Inject
- @RealImplementation
- protected AccountUserApi accountApi;
- @Inject
- protected AccountInternalApi accountInternalApi;
- @Inject
- protected AnalyticsUserApi analyticsUserApi;
- @Inject
- protected AnalyticsService analyticsService;
- @Inject
- protected CatalogService catalogService;
- @Inject
- @RealImplementation
- protected EntitlementUserApi entitlementApi;
- @Inject
- protected EntitlementInternalApi entitlementInternalApi;
- @Inject
- protected InvoiceUserApi invoiceApi;
- @Inject
- protected InvoiceDao realInvoiceDao;
- @Inject
- protected InvoiceInternalApi invoiceInternalApi;
- @Inject
- protected PaymentDao paymentDao;
- @Inject
- protected DefaultAnalyticsService service;
- @Inject
- protected InternalBus bus;
- @Inject
- protected BusinessAccountDao accountDao;
- @Inject
- protected BusinessAccountSqlDao accountSqlDao;
- @Inject
- protected BusinessAccountFieldSqlDao accountFieldSqlDao;
- @Inject
- protected BusinessAccountTagSqlDao accountTagSqlDao;
- @Inject
- protected BusinessInvoiceFieldSqlDao invoiceFieldSqlDao;
- @Inject
- protected BusinessInvoiceItemSqlDao invoiceItemSqlDao;
- @Inject
- protected BusinessInvoicePaymentFieldSqlDao invoicePaymentFieldSqlDao;
- @Inject
- protected BusinessInvoicePaymentSqlDao invoicePaymentSqlDao;
- @Inject
- protected BusinessInvoicePaymentTagSqlDao invoicePaymentTagSqlDao;
- @Inject
- protected BusinessInvoiceDao invoiceDao;
- @Inject
- protected BusinessInvoiceSqlDao invoiceSqlDao;
- @Inject
- protected BusinessInvoiceTagSqlDao invoiceTagSqlDao;
- @Inject
- protected BusinessOverdueStatusDao overdueStatusDao;
- @Inject
- protected BusinessOverdueStatusSqlDao overdueStatusSqlDao;
- @Inject
- protected BusinessSubscriptionTransitionFieldSqlDao subscriptionTransitionFieldSqlDao;
- @Inject
- protected BusinessSubscriptionTransitionTagSqlDao subscriptionTransitionTagSqlDao;
- @Inject
- protected BusinessSubscriptionTransitionDao subscriptionTransitionDao;
- @Inject
- protected BusinessSubscriptionTransitionSqlDao subscriptionTransitionSqlDao;
- @Inject
- protected BusinessTagDao tagDao;
-
- @BeforeClass(groups = "slow")
- protected void beforeClass() throws Exception {
- final Injector injector = Guice.createInjector(new TestAnalyticsModuleWithEmbeddedDB(configSource));
- injector.injectMembers(this);
- }
-
- @BeforeMethod(groups = "slow")
- public void beforeMethod() throws Exception {
- super.beforeMethod();
- bus.start();
- restartAnalyticsService();
- }
-
- @AfterMethod(groups = "slow")
- public void afterMethod() throws Exception {
- bus.stop();
- stopAnalyticsService();
- }
-
- private void restartAnalyticsService() throws Exception {
- ((DefaultAnalyticsService) analyticsService).registerForNotifications();
- }
-
- private void stopAnalyticsService() throws Exception {
- ((DefaultAnalyticsService) analyticsService).unregisterForNotifications();
- }
+public abstract class AnalyticsTestSuiteWithEmbeddedDB extends AnalyticsTestSuiteNoDB {
}
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
new file mode 100644
index 0000000..4d8333b
--- /dev/null
+++ b/osgi-bundles/bundles/analytics/src/test/java/com/ning/billing/osgi/bundles/analytics/dao/model/TestBusinessAccountModelDao.java
@@ -0,0 +1,65 @@
+/*
+ * Copyright 2010-2013 Ning, Inc.
+ *
+ * Ning licenses this file to you under the Apache License, version 2.0
+ * (the "License"); you may not use this file except in compliance with the
+ * License. You may obtain a copy of the License at:
+ *
+ * http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS, WITHOUT
+ * WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. See the
+ * License for the specific language governing permissions and limitations
+ * under the License.
+ */
+
+package com.ning.billing.osgi.bundles.analytics.dao.model;
+
+import java.math.BigDecimal;
+
+import org.testng.Assert;
+import org.testng.annotations.Test;
+
+import com.ning.billing.osgi.bundles.analytics.AnalyticsTestSuiteNoDB;
+
+public class TestBusinessAccountModelDao extends AnalyticsTestSuiteNoDB {
+
+ @Test(groups = "fast")
+ public void testConstructorWithNulls() throws Exception {
+ final BusinessAccountModelDao businessAccount = new BusinessAccountModelDao(account, BigDecimal.ONE, null, null, auditLog);
+ verifyAccountFields(businessAccount);
+ Assert.assertEquals(businessAccount.getBalance(), BigDecimal.ONE);
+ Assert.assertNull(businessAccount.getLastInvoiceDate());
+ Assert.assertNull(businessAccount.getLastPaymentDate());
+ Assert.assertNull(businessAccount.getLastPaymentStatus());
+ }
+
+ @Test(groups = "fast")
+ public void testConstructorWithoutNulls() throws Exception {
+ final BusinessAccountModelDao businessAccount = new BusinessAccountModelDao(account, BigDecimal.ONE, invoice, payment, auditLog);
+ verifyAccountFields(businessAccount);
+ Assert.assertEquals(businessAccount.getBalance(), BigDecimal.ONE);
+ Assert.assertEquals(businessAccount.getLastInvoiceDate(), invoice.getInvoiceDate());
+ Assert.assertEquals(businessAccount.getLastPaymentDate(), payment.getEffectiveDate());
+ Assert.assertEquals(businessAccount.getLastPaymentStatus(), payment.getPaymentStatus().toString());
+ }
+
+ private void verifyAccountFields(final BusinessAccountModelDao businessAccount) {
+ verifyBusinessModelDaoBase(businessAccount);
+ Assert.assertEquals(businessAccount.getEmail(), account.getEmail());
+ Assert.assertEquals(businessAccount.getFirstNameLength(), account.getFirstNameLength());
+ Assert.assertEquals(businessAccount.getCurrency(), account.getCurrency().toString());
+ Assert.assertEquals(businessAccount.getBillingCycleDayLocal(), account.getBillCycleDayLocal());
+ Assert.assertEquals(businessAccount.getAddress1(), account.getAddress1());
+ Assert.assertEquals(businessAccount.getAddress2(), account.getAddress2());
+ Assert.assertEquals(businessAccount.getCompanyName(), account.getCompanyName());
+ Assert.assertEquals(businessAccount.getCity(), account.getCity());
+ Assert.assertEquals(businessAccount.getStateOrProvince(), account.getStateOrProvince());
+ Assert.assertEquals(businessAccount.getCountry(), account.getCountry());
+ Assert.assertEquals(businessAccount.getPostalCode(), account.getPostalCode());
+ Assert.assertEquals(businessAccount.getPhone(), account.getPhone());
+ Assert.assertEquals(businessAccount.getMigrated(), account.isMigrated());
+ Assert.assertEquals(businessAccount.getNotifiedForInvoices(), account.isNotifiedForInvoices());
+ }
+}