killbill-memoizeit

analytics: remove specific mocks Extract MockAccountUserApi

6/25/2012 4:53:59 PM

Details

diff --git a/analytics/src/test/java/com/ning/billing/analytics/api/TestAnalyticsService.java b/analytics/src/test/java/com/ning/billing/analytics/api/TestAnalyticsService.java
index 82b1241..5d452e1 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
@@ -25,7 +25,6 @@ import java.util.UUID;
 import org.joda.time.DateTime;
 import org.mockito.Mockito;
 import org.testng.Assert;
-import org.testng.annotations.AfterClass;
 import org.testng.annotations.BeforeClass;
 import org.testng.annotations.BeforeMethod;
 import org.testng.annotations.Guice;
@@ -37,17 +36,16 @@ import com.ning.billing.account.api.AccountCreationEvent;
 import com.ning.billing.account.api.AccountUserApi;
 import com.ning.billing.account.api.user.DefaultAccountCreationEvent;
 import com.ning.billing.analytics.AnalyticsTestModule;
-import com.ning.billing.analytics.dao.BusinessAccountSqlDao;
-import com.ning.billing.analytics.model.BusinessSubscription;
-import com.ning.billing.analytics.model.BusinessSubscriptionEvent;
-import com.ning.billing.analytics.model.BusinessSubscriptionTransition;
-import com.ning.billing.analytics.MockAccount;
 import com.ning.billing.analytics.MockDuration;
 import com.ning.billing.analytics.MockPhase;
 import com.ning.billing.analytics.MockPlan;
 import com.ning.billing.analytics.MockProduct;
 import com.ning.billing.analytics.TestWithEmbeddedDB;
+import com.ning.billing.analytics.dao.BusinessAccountSqlDao;
 import com.ning.billing.analytics.dao.BusinessSubscriptionTransitionSqlDao;
+import com.ning.billing.analytics.model.BusinessSubscription;
+import com.ning.billing.analytics.model.BusinessSubscriptionEvent;
+import com.ning.billing.analytics.model.BusinessSubscriptionTransition;
 import com.ning.billing.catalog.MockPriceList;
 import com.ning.billing.catalog.api.Catalog;
 import com.ning.billing.catalog.api.CatalogApiException;
@@ -74,6 +72,7 @@ import com.ning.billing.invoice.api.user.DefaultInvoiceCreationEvent;
 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.MockAccountBuilder;
 import com.ning.billing.payment.api.DefaultPaymentInfoEvent;
 import com.ning.billing.payment.api.PaymentInfoEvent;
 import com.ning.billing.payment.api.PaymentStatus;
@@ -151,7 +150,11 @@ public class TestAnalyticsService extends TestWithEmbeddedDB {
 
     @BeforeMethod(groups = "slow")
     public void createMocks() {
-        final MockAccount account = new MockAccount(UUID.randomUUID(), ACCOUNT_KEY, ACCOUNT_CURRENCY);
+        final Account account = new MockAccountBuilder(UUID.randomUUID())
+                .externalKey(ACCOUNT_KEY)
+                .currency(ACCOUNT_CURRENCY)
+                .build();
+
         try {
             final Account storedAccount = accountApi.createAccount(account, context);
 
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 a5cfc42..0b3287e 100644
--- a/analytics/src/test/java/com/ning/billing/analytics/TestAnalyticsListener.java
+++ b/analytics/src/test/java/com/ning/billing/analytics/TestAnalyticsListener.java
@@ -27,6 +27,7 @@ import org.testng.annotations.BeforeClass;
 import org.testng.annotations.BeforeMethod;
 import org.testng.annotations.Test;
 
+import com.ning.billing.account.api.Account;
 import com.ning.billing.analytics.model.BusinessSubscription;
 import com.ning.billing.analytics.model.BusinessSubscriptionEvent;
 import com.ning.billing.analytics.model.BusinessSubscriptionTransition;
@@ -45,6 +46,10 @@ import com.ning.billing.entitlement.api.user.Subscription;
 import com.ning.billing.entitlement.api.user.SubscriptionTransitionData;
 import com.ning.billing.entitlement.events.EntitlementEvent;
 import com.ning.billing.entitlement.events.user.ApiEventType;
+import com.ning.billing.mock.MockAccountBuilder;
+import com.ning.billing.mock.api.MockAccountUserApi;
+import com.ning.billing.mock.api.MockEntitlementUserApi;
+import com.ning.billing.util.callcontext.CallContext;
 
 public class TestAnalyticsListener extends AnalyticsTestSuite {
     private static final String EXTERNAL_KEY = "1234";
@@ -62,6 +67,7 @@ public class TestAnalyticsListener extends AnalyticsTestSuite {
     private final CatalogService catalogService = Mockito.mock(CatalogService.class);
     private final Catalog catalog = Mockito.mock(Catalog.class);
 
+    private UUID accountId;
     private AnalyticsListener listener;
 
     @BeforeClass(groups = "fast")
@@ -73,7 +79,15 @@ public class TestAnalyticsListener extends AnalyticsTestSuite {
 
     @BeforeMethod(groups = "fast")
     public void setUp() throws Exception {
-        final BusinessSubscriptionTransitionRecorder recorder = new BusinessSubscriptionTransitionRecorder(dao, catalogService, new MockEntitlementUserApi(bundleUUID, EXTERNAL_KEY), new MockAccountUserApi(ACCOUNT_KEY, CURRENCY));
+        final MockAccountUserApi accountApi = new MockAccountUserApi();
+        final Account accountData = new MockAccountBuilder().externalKey(ACCOUNT_KEY).currency(CURRENCY).build();
+        final Account account = accountApi.createAccount(accountData, Mockito.mock(CallContext.class));
+        accountId = account.getId();
+
+        final MockEntitlementUserApi entitlementApi = new MockEntitlementUserApi();
+        entitlementApi.addBundle(bundleUUID, EXTERNAL_KEY, accountId);
+
+        final BusinessSubscriptionTransitionRecorder recorder = new BusinessSubscriptionTransitionRecorder(dao, catalogService, entitlementApi, accountApi);
         listener = new AnalyticsListener(recorder, null, null, null);
     }
 
diff --git a/analytics/src/test/java/com/ning/billing/analytics/TestBusinessTagRecorder.java b/analytics/src/test/java/com/ning/billing/analytics/TestBusinessTagRecorder.java
index 2eb018b..6f18739 100644
--- a/analytics/src/test/java/com/ning/billing/analytics/TestBusinessTagRecorder.java
+++ b/analytics/src/test/java/com/ning/billing/analytics/TestBusinessTagRecorder.java
@@ -50,6 +50,7 @@ import com.ning.billing.entitlement.api.user.SubscriptionBundle;
 import com.ning.billing.entitlement.engine.addon.AddonUtils;
 import com.ning.billing.entitlement.engine.dao.AuditedEntitlementDao;
 import com.ning.billing.entitlement.engine.dao.EntitlementDao;
+import com.ning.billing.mock.MockAccountBuilder;
 import com.ning.billing.util.bus.InMemoryBus;
 import com.ning.billing.util.callcontext.CallContext;
 import com.ning.billing.util.callcontext.CallOrigin;
@@ -107,7 +108,11 @@ public class TestBusinessTagRecorder extends TestWithEmbeddedDB {
         final CallContext callContext = callContextFactory.createCallContext(UUID.randomUUID().toString(), CallOrigin.TEST, UserType.TEST);
         final String accountKey = UUID.randomUUID().toString();
 
-        final Account account = accountUserApi.createAccount(new MockAccount(UUID.randomUUID(), accountKey, Currency.MXN), callContext);
+        final Account accountData = new MockAccountBuilder()
+                .externalKey(accountKey)
+                .currency(Currency.MXN)
+                .build();
+        final Account account = accountUserApi.createAccount(accountData, callContext);
         final UUID accountId = account.getId();
 
         Assert.assertEquals(accountTagSqlDao.getTagsForAccount(accountKey).size(), 0);
@@ -123,7 +128,10 @@ public class TestBusinessTagRecorder extends TestWithEmbeddedDB {
         final CallContext callContext = callContextFactory.createCallContext(UUID.randomUUID().toString(), CallOrigin.TEST, UserType.TEST);
         final String externalKey = UUID.randomUUID().toString();
 
-        final Account account = accountUserApi.createAccount(new MockAccount(UUID.randomUUID(), UUID.randomUUID().toString(), Currency.MXN), callContext);
+        final Account accountData = new MockAccountBuilder()
+                .currency(Currency.MXN)
+                .build();
+        final Account account = accountUserApi.createAccount(accountData, callContext);
         final SubscriptionBundle bundle = entitlementUserApi.createBundleForAccount(account.getId(), externalKey, callContext);
         final UUID bundleId = bundle.getId();
 
diff --git a/util/src/test/java/com/ning/billing/mock/MockAccountBuilder.java b/util/src/test/java/com/ning/billing/mock/MockAccountBuilder.java
index 3a937fa..2255d5f 100644
--- a/util/src/test/java/com/ning/billing/mock/MockAccountBuilder.java
+++ b/util/src/test/java/com/ning/billing/mock/MockAccountBuilder.java
@@ -21,6 +21,7 @@ import java.util.UUID;
 import org.joda.time.DateTimeZone;
 
 import com.ning.billing.account.api.Account;
+import com.ning.billing.account.api.AccountData;
 import com.ning.billing.account.api.MutableAccountData;
 import com.ning.billing.catalog.api.Currency;
 import com.ning.billing.junction.api.BlockingState;
@@ -55,6 +56,29 @@ public class MockAccountBuilder {
         this.id = id;
     }
 
+    public MockAccountBuilder(final AccountData data) {
+        this.id = UUID.randomUUID();
+        this.address1(data.getAddress1());
+        this.address2(data.getAddress2());
+        this.billingCycleDay(data.getBillCycleDay());
+        this.city(data.getCity());
+        this.companyName(data.getCompanyName());
+        this.country(data.getCountry());
+        this.currency(data.getCurrency());
+        this.email(data.getEmail());
+        this.externalKey(data.getExternalKey());
+        this.firstNameLength(data.getFirstNameLength());
+        this.isNotifiedForInvoices(data.isNotifiedForInvoices());
+        this.locale(data.getLocale());
+        this.migrated(data.isMigrated());
+        this.name(data.getName());
+        this.paymentMethodId(data.getPaymentMethodId());
+        this.phone(data.getPhone());
+        this.postalCode(data.getPostalCode());
+        this.stateOrProvince(data.getStateOrProvince());
+        this.timeZone(data.getTimeZone());
+    }
+
     public MockAccountBuilder externalKey(final String externalKey) {
         this.externalKey = externalKey;
         return this;
@@ -152,7 +176,6 @@ public class MockAccountBuilder {
 
     public Account build() {
         return new Account() {
-
             @Override
             public String getExternalKey() {
                 return externalKey;