killbill-memoizeit
test: use Mock locker for H2 Tests should now install the TestGlobalLockerModule, …
12/14/2012 3:39:12 PM
Changes
Details
diff --git a/analytics/src/test/java/com/ning/billing/analytics/AnalyticsTestModule.java b/analytics/src/test/java/com/ning/billing/analytics/AnalyticsTestModule.java
index 8a871e5..bd4e9c6 100644
--- a/analytics/src/test/java/com/ning/billing/analytics/AnalyticsTestModule.java
+++ b/analytics/src/test/java/com/ning/billing/analytics/AnalyticsTestModule.java
@@ -30,11 +30,11 @@ import com.ning.billing.junction.glue.DefaultJunctionModule;
import com.ning.billing.payment.glue.PaymentModule;
import com.ning.billing.util.email.EmailModule;
import com.ning.billing.util.email.templates.TemplateModule;
+import com.ning.billing.util.globallocker.TestGlobalLockerModule;
import com.ning.billing.util.glue.BusModule;
import com.ning.billing.util.glue.CallContextModule;
import com.ning.billing.util.glue.ClockModule;
import com.ning.billing.util.glue.CustomFieldModule;
-import com.ning.billing.util.glue.GlobalLockerModule;
import com.ning.billing.util.glue.NotificationQueueModule;
import com.ning.billing.util.glue.TagStoreModule;
import com.ning.billing.util.tag.dao.TagDefinitionSqlDao;
@@ -47,7 +47,7 @@ public class AnalyticsTestModule extends AnalyticsModule {
// Need to configure a few more things for the EventBus
install(new EmailModule());
- install(new GlobalLockerModule());
+ install(new TestGlobalLockerModule(KillbillTestSuiteWithEmbeddedDB.getDBTestingHelper()));
install(new ClockModule());
install(new CallContextModule());
install(new CustomFieldModule());
diff --git a/beatrix/src/test/java/com/ning/billing/beatrix/integration/BeatrixIntegrationModule.java b/beatrix/src/test/java/com/ning/billing/beatrix/integration/BeatrixIntegrationModule.java
index cd04508..982b63c 100644
--- a/beatrix/src/test/java/com/ning/billing/beatrix/integration/BeatrixIntegrationModule.java
+++ b/beatrix/src/test/java/com/ning/billing/beatrix/integration/BeatrixIntegrationModule.java
@@ -59,11 +59,11 @@ import com.ning.billing.util.clock.ClockMock;
import com.ning.billing.util.config.PaymentConfig;
import com.ning.billing.util.email.EmailModule;
import com.ning.billing.util.email.templates.TemplateModule;
+import com.ning.billing.util.globallocker.TestGlobalLockerModule;
import com.ning.billing.util.glue.AuditModule;
import com.ning.billing.util.glue.BusModule;
import com.ning.billing.util.glue.CallContextModule;
import com.ning.billing.util.glue.CustomFieldModule;
-import com.ning.billing.util.glue.GlobalLockerModule;
import com.ning.billing.util.glue.NotificationQueueModule;
import com.ning.billing.util.glue.TagStoreModule;
import com.ning.billing.util.svcsapi.bus.BusService;
@@ -101,7 +101,7 @@ public class BeatrixIntegrationModule extends AbstractModule {
install(new EmailModule());
install(new CallContextModule());
- install(new GlobalLockerModule());
+ install(new TestGlobalLockerModule(helper));
install(new BusModule());
install(new NotificationQueueModule());
install(new TagStoreModule());
diff --git a/invoice/src/test/java/com/ning/billing/invoice/glue/InvoiceModuleWithEmbeddedDb.java b/invoice/src/test/java/com/ning/billing/invoice/glue/InvoiceModuleWithEmbeddedDb.java
index 154b339..79409a5 100644
--- a/invoice/src/test/java/com/ning/billing/invoice/glue/InvoiceModuleWithEmbeddedDb.java
+++ b/invoice/src/test/java/com/ning/billing/invoice/glue/InvoiceModuleWithEmbeddedDb.java
@@ -36,9 +36,9 @@ import com.ning.billing.util.callcontext.DefaultCallContextFactory;
import com.ning.billing.util.clock.Clock;
import com.ning.billing.util.clock.DefaultClock;
import com.ning.billing.util.email.templates.TemplateModule;
+import com.ning.billing.util.globallocker.TestGlobalLockerModule;
import com.ning.billing.util.glue.BusModule;
import com.ning.billing.util.glue.CustomFieldModule;
-import com.ning.billing.util.glue.GlobalLockerModule;
import com.ning.billing.util.glue.TagStoreModule;
import com.ning.billing.util.notificationq.MockNotificationQueueService;
import com.ning.billing.util.notificationq.NotificationQueueService;
@@ -80,7 +80,7 @@ public class InvoiceModuleWithEmbeddedDb extends DefaultInvoiceModule {
install(new CatalogModule());
install(new MockEntitlementModule());
- install(new GlobalLockerModule());
+ install(new TestGlobalLockerModule(KillbillTestSuiteWithEmbeddedDB.getDBTestingHelper()));
super.configure();
diff --git a/invoice/src/test/java/com/ning/billing/invoice/MockModule.java b/invoice/src/test/java/com/ning/billing/invoice/MockModule.java
index e8eaa3c..65b6571 100644
--- a/invoice/src/test/java/com/ning/billing/invoice/MockModule.java
+++ b/invoice/src/test/java/com/ning/billing/invoice/MockModule.java
@@ -40,9 +40,9 @@ import com.ning.billing.util.clock.Clock;
import com.ning.billing.util.clock.ClockMock;
import com.ning.billing.util.email.EmailModule;
import com.ning.billing.util.email.templates.TemplateModule;
+import com.ning.billing.util.globallocker.TestGlobalLockerModule;
import com.ning.billing.util.glue.BusModule;
import com.ning.billing.util.glue.CustomFieldModule;
-import com.ning.billing.util.glue.GlobalLockerModule;
import com.ning.billing.util.glue.NotificationQueueModule;
import com.ning.billing.util.glue.TagStoreModule;
import com.ning.billing.util.svcapi.account.AccountInternalApi;
@@ -84,7 +84,7 @@ public class MockModule extends AbstractModule {
bind(EntitlementInternalApi.class).toInstance(Mockito.mock(EntitlementInternalApi.class));
install(new EmailModule());
- install(new GlobalLockerModule());
+ install(new TestGlobalLockerModule(helper));
install(new NotificationQueueModule());
install(new CatalogModule());
install(new BusModule());
diff --git a/server/src/test/java/com/ning/billing/jaxrs/TestJaxrsBase.java b/server/src/test/java/com/ning/billing/jaxrs/TestJaxrsBase.java
index a69d0df..715a310 100644
--- a/server/src/test/java/com/ning/billing/jaxrs/TestJaxrsBase.java
+++ b/server/src/test/java/com/ning/billing/jaxrs/TestJaxrsBase.java
@@ -59,12 +59,12 @@ import com.ning.billing.util.clock.ClockMock;
import com.ning.billing.util.config.PaymentConfig;
import com.ning.billing.util.email.EmailModule;
import com.ning.billing.util.email.templates.TemplateModule;
+import com.ning.billing.util.globallocker.TestGlobalLockerModule;
import com.ning.billing.util.glue.AuditModule;
import com.ning.billing.util.glue.BusModule;
import com.ning.billing.util.glue.CallContextModule;
import com.ning.billing.util.glue.CustomFieldModule;
import com.ning.billing.util.glue.ExportModule;
-import com.ning.billing.util.glue.GlobalLockerModule;
import com.ning.billing.util.glue.NotificationQueueModule;
import com.ning.billing.util.glue.TagStoreModule;
import com.ning.http.client.AsyncHttpClient;
@@ -166,7 +166,7 @@ public class TestJaxrsBase extends KillbillClient {
Modules.override(new com.ning.billing.payment.setup.PaymentModule()).with(new PaymentMockModule());
*/
install(new EmailModule());
- install(new GlobalLockerModule());
+ install(new TestGlobalLockerModule(helper));
install(new CustomFieldModule());
install(new TagStoreModule());
install(new AuditModule());
diff --git a/util/src/main/java/com/ning/billing/util/glue/GlobalLockerModule.java b/util/src/main/java/com/ning/billing/util/glue/GlobalLockerModule.java
index 7d976f5..c0245ac 100644
--- a/util/src/main/java/com/ning/billing/util/glue/GlobalLockerModule.java
+++ b/util/src/main/java/com/ning/billing/util/glue/GlobalLockerModule.java
@@ -22,6 +22,7 @@ import com.ning.billing.util.globallocker.MySqlGlobalLocker;
import com.google.inject.AbstractModule;
public class GlobalLockerModule extends AbstractModule {
+
@Override
protected void configure() {
bind(GlobalLocker.class).to(MySqlGlobalLocker.class).asEagerSingleton();
diff --git a/util/src/test/java/com/ning/billing/dbi/DBTestingHelper.java b/util/src/test/java/com/ning/billing/dbi/DBTestingHelper.java
index 840e330..65a3e9a 100644
--- a/util/src/test/java/com/ning/billing/dbi/DBTestingHelper.java
+++ b/util/src/test/java/com/ning/billing/dbi/DBTestingHelper.java
@@ -37,7 +37,12 @@ public abstract class DBTestingHelper {
public static final String USERNAME = "root";
public static final String PASSWORD = "root";
- // Discover dynamically list of all tables in that database;
+ public enum DBEngine {
+ MYSQL,
+ H2
+ }
+
+ // Discover dynamically list of all tables in that database
protected List<String> allTables;
protected IDBI dbiInstance = null;
@@ -142,6 +147,8 @@ public abstract class DBTestingHelper {
return DB_NAME;
}
+ public abstract DBEngine getDBEngine();
+
public abstract boolean isUsingLocalInstance();
// For debugging
diff --git a/util/src/test/java/com/ning/billing/dbi/H2TestingHelper.java b/util/src/test/java/com/ning/billing/dbi/H2TestingHelper.java
index 92e5a90..8431da7 100644
--- a/util/src/test/java/com/ning/billing/dbi/H2TestingHelper.java
+++ b/util/src/test/java/com/ning/billing/dbi/H2TestingHelper.java
@@ -39,6 +39,11 @@ public class H2TestingHelper extends DBTestingHelper {
}
@Override
+ public DBEngine getDBEngine() {
+ return DBEngine.H2;
+ }
+
+ @Override
public boolean isUsingLocalInstance() {
return false;
}
diff --git a/util/src/test/java/com/ning/billing/dbi/MysqlTestingHelper.java b/util/src/test/java/com/ning/billing/dbi/MysqlTestingHelper.java
index 588d8d9..97bd3a4 100644
--- a/util/src/test/java/com/ning/billing/dbi/MysqlTestingHelper.java
+++ b/util/src/test/java/com/ning/billing/dbi/MysqlTestingHelper.java
@@ -66,6 +66,11 @@ public class MysqlTestingHelper extends DBTestingHelper {
}
@Override
+ public DBEngine getDBEngine() {
+ return DBEngine.MYSQL;
+ }
+
+ @Override
public boolean isUsingLocalInstance() {
return (System.getProperty(USE_LOCAL_DB_PROP) != null);
}
diff --git a/util/src/test/java/com/ning/billing/mock/glue/MockGlobalLockerModule.java b/util/src/test/java/com/ning/billing/mock/glue/MockGlobalLockerModule.java
new file mode 100644
index 0000000..03fd184
--- /dev/null
+++ b/util/src/test/java/com/ning/billing/mock/glue/MockGlobalLockerModule.java
@@ -0,0 +1,30 @@
+/*
+ * Copyright 2010-2012 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.mock.glue;
+
+import com.ning.billing.util.globallocker.GlobalLocker;
+import com.ning.billing.util.globallocker.MockGlobalLocker;
+
+import com.google.inject.AbstractModule;
+
+public class MockGlobalLockerModule extends AbstractModule {
+
+ @Override
+ protected void configure() {
+ bind(GlobalLocker.class).to(MockGlobalLocker.class).asEagerSingleton();
+ }
+}
diff --git a/util/src/test/java/com/ning/billing/util/globallocker/TestGlobalLockerModule.java b/util/src/test/java/com/ning/billing/util/globallocker/TestGlobalLockerModule.java
new file mode 100644
index 0000000..5b0acad
--- /dev/null
+++ b/util/src/test/java/com/ning/billing/util/globallocker/TestGlobalLockerModule.java
@@ -0,0 +1,42 @@
+/*
+ * Copyright 2010-2012 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.util.globallocker;
+
+import com.ning.billing.dbi.DBTestingHelper;
+import com.ning.billing.dbi.DBTestingHelper.DBEngine;
+import com.ning.billing.mock.glue.MockGlobalLockerModule;
+import com.ning.billing.util.glue.GlobalLockerModule;
+
+import com.google.inject.AbstractModule;
+
+public class TestGlobalLockerModule extends AbstractModule {
+
+ private final DBTestingHelper helper;
+
+ public TestGlobalLockerModule(final DBTestingHelper helper) {
+ this.helper = helper;
+ }
+
+ @Override
+ protected void configure() {
+ if (DBEngine.MYSQL.equals(helper.getDBEngine())) {
+ install(new GlobalLockerModule());
+ } else {
+ install(new MockGlobalLockerModule());
+ }
+ }
+}