killbill-memoizeit

account: update tests to new conventions See #38. Signed-off-by:

2/1/2013 6:46:44 PM

Details

diff --git a/account/src/test/java/com/ning/billing/account/AccountTestSuiteNoDB.java b/account/src/test/java/com/ning/billing/account/AccountTestSuiteNoDB.java
new file mode 100644
index 0000000..285e46c
--- /dev/null
+++ b/account/src/test/java/com/ning/billing/account/AccountTestSuiteNoDB.java
@@ -0,0 +1,83 @@
+/*
+ * 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.account;
+
+import org.testng.annotations.AfterMethod;
+import org.testng.annotations.BeforeClass;
+import org.testng.annotations.BeforeMethod;
+
+import com.ning.billing.GuicyKillbillTestSuiteNoDB;
+import com.ning.billing.account.api.AccountUserApi;
+import com.ning.billing.account.dao.AccountDao;
+import com.ning.billing.account.glue.TestAccountModuleNoDB;
+import com.ning.billing.util.audit.dao.AuditDao;
+import com.ning.billing.util.cache.CacheControllerDispatcher;
+import com.ning.billing.util.clock.Clock;
+import com.ning.billing.util.customfield.dao.CustomFieldDao;
+import com.ning.billing.util.dao.NonEntityDao;
+import com.ning.billing.util.glue.RealImplementation;
+import com.ning.billing.util.svcsapi.bus.InternalBus;
+import com.ning.billing.util.tag.api.user.TagEventBuilder;
+import com.ning.billing.util.tag.dao.TagDao;
+import com.ning.billing.util.tag.dao.TagDefinitionDao;
+
+import com.google.inject.Guice;
+import com.google.inject.Inject;
+import com.google.inject.Injector;
+
+public abstract class AccountTestSuiteNoDB extends GuicyKillbillTestSuiteNoDB {
+
+    @Inject
+    protected AccountDao accountDao;
+    @Inject
+    @RealImplementation
+    protected AccountUserApi accountUserApi;
+    @Inject
+    protected AuditDao auditDao;
+    @Inject
+    protected CacheControllerDispatcher controllerDispatcher;
+    @Inject
+    protected Clock clock;
+    @Inject
+    protected CustomFieldDao customFieldDao;
+    @Inject
+    protected InternalBus bus;
+    @Inject
+    protected TagDao tagDao;
+    @Inject
+    protected TagDefinitionDao tagDefinitionDao;
+    @Inject
+    protected TagEventBuilder tagEventBuilder;
+    @Inject
+    protected NonEntityDao nonEntityDao;
+
+    @BeforeClass(groups = "fast")
+    protected void setup() throws Exception {
+        final Injector injector = Guice.createInjector(new TestAccountModuleNoDB());
+        injector.injectMembers(this);
+    }
+
+    @BeforeMethod(groups = "fast")
+    public void setupTest() {
+        bus.start();
+    }
+
+    @AfterMethod(groups = "fast")
+    public void cleanupTest() {
+        bus.stop();
+    }
+}
diff --git a/account/src/test/java/com/ning/billing/account/AccountTestSuiteWithEmbeddedDB.java b/account/src/test/java/com/ning/billing/account/AccountTestSuiteWithEmbeddedDB.java
index 24fb47f..f784c0f 100644
--- a/account/src/test/java/com/ning/billing/account/AccountTestSuiteWithEmbeddedDB.java
+++ b/account/src/test/java/com/ning/billing/account/AccountTestSuiteWithEmbeddedDB.java
@@ -1,5 +1,5 @@
 /*
- * Copyright 2010-2012 Ning, Inc.
+ * 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
@@ -16,7 +16,68 @@
 
 package com.ning.billing.account;
 
-import com.ning.billing.KillbillTestSuiteWithEmbeddedDB;
+import org.testng.annotations.AfterMethod;
+import org.testng.annotations.BeforeClass;
+import org.testng.annotations.BeforeMethod;
 
-public abstract class AccountTestSuiteWithEmbeddedDB extends KillbillTestSuiteWithEmbeddedDB {
+import com.ning.billing.GuicyKillbillTestSuiteWithEmbeddedDB;
+import com.ning.billing.account.api.AccountUserApi;
+import com.ning.billing.account.dao.AccountDao;
+import com.ning.billing.account.glue.TestAccountModuleWithEmbeddedDB;
+import com.ning.billing.util.audit.dao.AuditDao;
+import com.ning.billing.util.cache.CacheControllerDispatcher;
+import com.ning.billing.util.clock.Clock;
+import com.ning.billing.util.customfield.dao.CustomFieldDao;
+import com.ning.billing.util.dao.NonEntityDao;
+import com.ning.billing.util.glue.RealImplementation;
+import com.ning.billing.util.svcsapi.bus.InternalBus;
+import com.ning.billing.util.tag.api.user.TagEventBuilder;
+import com.ning.billing.util.tag.dao.TagDao;
+import com.ning.billing.util.tag.dao.TagDefinitionDao;
+
+import com.google.inject.Guice;
+import com.google.inject.Inject;
+import com.google.inject.Injector;
+
+public abstract class AccountTestSuiteWithEmbeddedDB extends GuicyKillbillTestSuiteWithEmbeddedDB {
+
+    @Inject
+    protected AccountDao accountDao;
+    @Inject
+    @RealImplementation
+    protected AccountUserApi accountUserApi;
+    @Inject
+    protected AuditDao auditDao;
+    @Inject
+    protected CacheControllerDispatcher controllerDispatcher;
+    @Inject
+    protected Clock clock;
+    @Inject
+    protected CustomFieldDao customFieldDao;
+    @Inject
+    protected InternalBus bus;
+    @Inject
+    protected TagDao tagDao;
+    @Inject
+    protected TagDefinitionDao tagDefinitionDao;
+    @Inject
+    protected TagEventBuilder tagEventBuilder;
+    @Inject
+    protected NonEntityDao nonEntityDao;
+
+    @BeforeClass(groups = "slow")
+    protected void setup() throws Exception {
+        final Injector injector = Guice.createInjector(new TestAccountModuleWithEmbeddedDB());
+        injector.injectMembers(this);
+    }
+
+    @BeforeMethod(groups = "slow")
+    public void setupTest() {
+        bus.start();
+    }
+
+    @AfterMethod(groups = "slow")
+    public void cleanupTest() {
+        bus.stop();
+    }
 }
diff --git a/account/src/test/java/com/ning/billing/account/api/user/TestDefaultAccountUserApi.java b/account/src/test/java/com/ning/billing/account/api/user/TestDefaultAccountUserApi.java
index 159b2de..1f7d920 100644
--- a/account/src/test/java/com/ning/billing/account/api/user/TestDefaultAccountUserApi.java
+++ b/account/src/test/java/com/ning/billing/account/api/user/TestDefaultAccountUserApi.java
@@ -1,5 +1,5 @@
 /*
- * Copyright 2010-2012 Ning, Inc.
+ * 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
@@ -23,7 +23,7 @@ import org.joda.time.DateTime;
 import org.testng.Assert;
 import org.testng.annotations.Test;
 
-import com.ning.billing.account.AccountTestBase;
+import com.ning.billing.account.AccountTestSuiteWithEmbeddedDB;
 import com.ning.billing.account.api.Account;
 import com.ning.billing.account.api.AccountData;
 import com.ning.billing.account.api.BillCycleDay;
@@ -33,7 +33,11 @@ import com.ning.billing.account.api.MigrationAccountData;
 import com.ning.billing.account.api.MutableAccountData;
 import com.ning.billing.catalog.api.Currency;
 
-public class TestDefaultAccountUserApi extends AccountTestBase {
+import static com.ning.billing.account.AccountTestUtils.checkAccountsEqual;
+import static com.ning.billing.account.AccountTestUtils.createAccountData;
+import static com.ning.billing.account.AccountTestUtils.createTestAccount;
+
+public class TestDefaultAccountUserApi extends AccountTestSuiteWithEmbeddedDB {
 
     @Test(groups = "slow")
     public void testMigrate() throws Exception {
diff --git a/account/src/test/java/com/ning/billing/account/api/user/TestDefaultAccountUserApiWithMocks.java b/account/src/test/java/com/ning/billing/account/api/user/TestDefaultAccountUserApiWithMocks.java
index 72f04d8..8eb1f26 100644
--- a/account/src/test/java/com/ning/billing/account/api/user/TestDefaultAccountUserApiWithMocks.java
+++ b/account/src/test/java/com/ning/billing/account/api/user/TestDefaultAccountUserApiWithMocks.java
@@ -1,5 +1,5 @@
 /*
- * Copyright 2010-2012 Ning, Inc.
+ * 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
@@ -24,7 +24,7 @@ import org.testng.Assert;
 import org.testng.annotations.BeforeMethod;
 import org.testng.annotations.Test;
 
-import com.ning.billing.account.AccountTestSuite;
+import com.ning.billing.account.AccountTestSuiteNoDB;
 import com.ning.billing.account.api.AccountData;
 import com.ning.billing.account.api.AccountEmail;
 import com.ning.billing.account.api.BillCycleDay;
@@ -41,7 +41,7 @@ import com.ning.billing.util.callcontext.InternalCallContextFactory;
 import com.ning.billing.util.callcontext.InternalTenantContext;
 import com.ning.billing.util.svcsapi.bus.InternalBus;
 
-public class TestDefaultAccountUserApiWithMocks extends AccountTestSuite {
+public class TestDefaultAccountUserApiWithMocks extends AccountTestSuiteNoDB {
 
     private final CallContextFactory factory = Mockito.mock(CallContextFactory.class);
     private final InternalCallContextFactory internalFactory = Mockito.mock(InternalCallContextFactory.class);
diff --git a/account/src/test/java/com/ning/billing/account/api/user/TestEventJson.java b/account/src/test/java/com/ning/billing/account/api/user/TestEventJson.java
index f19d940..be2ebc1 100644
--- a/account/src/test/java/com/ning/billing/account/api/user/TestEventJson.java
+++ b/account/src/test/java/com/ning/billing/account/api/user/TestEventJson.java
@@ -1,5 +1,5 @@
 /*
- * Copyright 2010-2011 Ning, Inc.
+ * 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
@@ -23,7 +23,7 @@ import java.util.UUID;
 import org.testng.Assert;
 import org.testng.annotations.Test;
 
-import com.ning.billing.account.AccountTestSuite;
+import com.ning.billing.account.AccountTestSuiteNoDB;
 import com.ning.billing.account.api.DefaultBillCycleDay;
 import com.ning.billing.account.api.DefaultChangedField;
 import com.ning.billing.account.api.user.DefaultAccountCreationEvent.DefaultAccountData;
@@ -31,7 +31,7 @@ import com.ning.billing.util.events.AccountChangeInternalEvent;
 import com.ning.billing.util.events.ChangedField;
 import com.ning.billing.util.jackson.ObjectMapper;
 
-public class TestEventJson extends AccountTestSuite {
+public class TestEventJson extends AccountTestSuiteNoDB {
 
     private final ObjectMapper mapper = new ObjectMapper();
 
diff --git a/account/src/test/java/com/ning/billing/account/dao/MockAccountDao.java b/account/src/test/java/com/ning/billing/account/dao/MockAccountDao.java
index 553f618..b56fe0a 100644
--- a/account/src/test/java/com/ning/billing/account/dao/MockAccountDao.java
+++ b/account/src/test/java/com/ning/billing/account/dao/MockAccountDao.java
@@ -1,5 +1,5 @@
 /*
- * Copyright 2010-2011 Ning, Inc.
+ * 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
@@ -42,12 +42,14 @@ import com.ning.billing.util.svcsapi.bus.InternalBus.EventBusException;
 import com.google.common.base.Predicate;
 import com.google.common.collect.Collections2;
 import com.google.common.collect.ImmutableList;
+import com.google.inject.Inject;
 
 public class MockAccountDao extends MockEntityDaoBase<AccountModelDao, Account, AccountApiException> implements AccountDao {
 
     private final MockEntityDaoBase<AccountEmailModelDao, AccountEmail, AccountApiException> accountEmailSqlDao = new MockEntityDaoBase<AccountEmailModelDao, AccountEmail, AccountApiException>();
     private final InternalBus eventBus;
 
+    @Inject
     public MockAccountDao(final InternalBus eventBus) {
         this.eventBus = eventBus;
     }
diff --git a/account/src/test/java/com/ning/billing/account/dao/TestAccountDao.java b/account/src/test/java/com/ning/billing/account/dao/TestAccountDao.java
index 2e2f87d..7e7d379 100644
--- a/account/src/test/java/com/ning/billing/account/dao/TestAccountDao.java
+++ b/account/src/test/java/com/ning/billing/account/dao/TestAccountDao.java
@@ -1,5 +1,5 @@
 /*
- * Copyright 2010-2011 Ning, Inc.
+ * 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
@@ -27,7 +27,7 @@ import org.testng.annotations.Test;
 
 import com.ning.billing.ErrorCode;
 import com.ning.billing.ObjectType;
-import com.ning.billing.account.AccountTestBase;
+import com.ning.billing.account.AccountTestSuiteWithEmbeddedDB;
 import com.ning.billing.account.api.AccountApiException;
 import com.ning.billing.account.api.AccountData;
 import com.ning.billing.account.api.AccountEmail;
@@ -51,7 +51,10 @@ import com.ning.billing.util.tag.Tag;
 import com.ning.billing.util.tag.dao.TagDefinitionModelDao;
 import com.ning.billing.util.tag.dao.TagModelDao;
 
-public class TestAccountDao extends AccountTestBase {
+import static com.ning.billing.account.AccountTestUtils.checkAccountsEqual;
+import static com.ning.billing.account.AccountTestUtils.createTestAccount;
+
+public class TestAccountDao extends AccountTestSuiteWithEmbeddedDB {
 
     @Test(groups = "slow")
     public void testBasic() throws AccountApiException {
diff --git a/account/src/test/java/com/ning/billing/account/glue/TestAccountModule.java b/account/src/test/java/com/ning/billing/account/glue/TestAccountModule.java
new file mode 100644
index 0000000..f58a7f3
--- /dev/null
+++ b/account/src/test/java/com/ning/billing/account/glue/TestAccountModule.java
@@ -0,0 +1,47 @@
+/*
+ * 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.account.glue;
+
+import org.mockito.Mockito;
+
+import com.ning.billing.entitlement.api.timeline.EntitlementTimelineApi;
+import com.ning.billing.util.glue.AuditModule;
+import com.ning.billing.util.glue.CacheModule;
+import com.ning.billing.util.glue.CallContextModule;
+import com.ning.billing.util.glue.CustomFieldModule;
+import com.ning.billing.util.glue.TagStoreModule;
+
+public class TestAccountModule extends DefaultAccountModule {
+
+    private void installExternalApis() {
+        // Needed for Audit
+        bind(EntitlementTimelineApi.class).toInstance(Mockito.mock(EntitlementTimelineApi.class));
+    }
+
+    @Override
+    protected void configure() {
+        super.configure();
+
+        install(new AuditModule());
+        install(new CacheModule());
+        install(new CallContextModule());
+        install(new CustomFieldModule());
+        install(new TagStoreModule());
+
+        installExternalApis();
+    }
+}
diff --git a/account/src/test/java/com/ning/billing/account/glue/TestAccountModuleNoDB.java b/account/src/test/java/com/ning/billing/account/glue/TestAccountModuleNoDB.java
new file mode 100644
index 0000000..a112420
--- /dev/null
+++ b/account/src/test/java/com/ning/billing/account/glue/TestAccountModuleNoDB.java
@@ -0,0 +1,39 @@
+/*
+ * 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.account.glue;
+
+import com.ning.billing.GuicyKillbillTestNoDBModule;
+import com.ning.billing.account.dao.AccountDao;
+import com.ning.billing.account.dao.MockAccountDao;
+import com.ning.billing.mock.glue.MockNonEntityDaoModule;
+import com.ning.billing.util.bus.InMemoryBusModule;
+
+public class TestAccountModuleNoDB extends TestAccountModule {
+
+    @Override
+    protected void installAccountDao() {
+        bind(AccountDao.class).to(MockAccountDao.class);
+    }
+
+    @Override
+    public void configure() {
+        super.configure();
+        install(new GuicyKillbillTestNoDBModule());
+        install(new MockNonEntityDaoModule());
+        install(new InMemoryBusModule());
+    }
+}