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());
+ }
+}