killbill-uncached

Changes

beatrix/pom.xml 5(+5 -0)

Details

beatrix/pom.xml 5(+5 -0)

diff --git a/beatrix/pom.xml b/beatrix/pom.xml
index ec8bbac..5ccf002 100644
--- a/beatrix/pom.xml
+++ b/beatrix/pom.xml
@@ -90,6 +90,11 @@
         </dependency>
         <!-- TEST SCOPE -->
         <dependency>
+            <groupId>javax.servlet</groupId>
+            <artifactId>javax.servlet-api</artifactId>
+            <scope>test</scope>
+        </dependency>
+        <dependency>
             <groupId>org.slf4j</groupId>
             <artifactId>slf4j-simple</artifactId>
             <scope>test</scope>
diff --git a/beatrix/src/test/java/com/ning/billing/beatrix/BeatrixTestSuiteWithEmbeddedDB.java b/beatrix/src/test/java/com/ning/billing/beatrix/BeatrixTestSuiteWithEmbeddedDB.java
index 0fb5713..f6cd068 100644
--- a/beatrix/src/test/java/com/ning/billing/beatrix/BeatrixTestSuiteWithEmbeddedDB.java
+++ b/beatrix/src/test/java/com/ning/billing/beatrix/BeatrixTestSuiteWithEmbeddedDB.java
@@ -16,7 +16,7 @@
 
 package com.ning.billing.beatrix;
 
-import com.ning.billing.KillbillTestSuiteWithEmbeddedDB;
+import com.ning.billing.GuicyKillbillTestSuiteWithEmbeddedDB;
 
-public abstract class BeatrixTestSuiteWithEmbeddedDB extends KillbillTestSuiteWithEmbeddedDB {
+public abstract class BeatrixTestSuiteWithEmbeddedDB extends GuicyKillbillTestSuiteWithEmbeddedDB {
 }
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 076e883..35acacf 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
@@ -20,10 +20,7 @@ import java.io.IOException;
 import java.net.URL;
 import java.util.Set;
 
-import org.skife.config.ConfigurationObjectFactory;
-import org.skife.jdbi.v2.IDBI;
-
-import com.ning.billing.KillbillTestSuiteWithEmbeddedDB;
+import com.ning.billing.GuicyKillbillTestWithEmbeddedDBModule;
 import com.ning.billing.account.api.AccountService;
 import com.ning.billing.account.glue.DefaultAccountModule;
 import com.ning.billing.analytics.setup.AnalyticsModule;
@@ -42,9 +39,6 @@ import com.ning.billing.beatrix.util.PaymentChecker;
 import com.ning.billing.beatrix.util.RefundChecker;
 import com.ning.billing.catalog.api.CatalogService;
 import com.ning.billing.catalog.glue.CatalogModule;
-import com.ning.billing.dbi.DBIProvider;
-import com.ning.billing.dbi.DBTestingHelper;
-import com.ning.billing.dbi.DbiConfig;
 import com.ning.billing.entitlement.api.EntitlementService;
 import com.ning.billing.entitlement.glue.DefaultEntitlementModule;
 import com.ning.billing.invoice.api.InvoiceService;
@@ -59,18 +53,16 @@ import com.ning.billing.payment.glue.PaymentModule;
 import com.ning.billing.payment.provider.MockPaymentProviderPluginModule;
 import com.ning.billing.tenant.glue.TenantModule;
 import com.ning.billing.usage.glue.UsageModule;
-import com.ning.billing.util.clock.Clock;
-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.CacheModule;
 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.NonEntityDaoModule;
 import com.ning.billing.util.glue.NotificationQueueModule;
 import com.ning.billing.util.glue.TagStoreModule;
@@ -92,25 +84,14 @@ public class BeatrixIntegrationModule extends AbstractModule {
 
         loadSystemPropertiesFromClasspath("/resource.properties");
 
-        bind(Clock.class).to(ClockMock.class).asEagerSingleton();
-        bind(ClockMock.class).asEagerSingleton();
         bind(Lifecycle.class).to(SubsetDefaultLifecycle.class).asEagerSingleton();
 
-        final DBTestingHelper helper = KillbillTestSuiteWithEmbeddedDB.getDBTestingHelper();
-        final IDBI dbi;
-        if (helper.isUsingLocalInstance()) {
-            final DbiConfig config = new ConfigurationObjectFactory(System.getProperties()).build(DbiConfig.class);
-            final DBIProvider provider = new DBIProvider(config);
-            dbi = provider.get();
-        } else {
-            dbi = helper.getDBI();
-        }
-        bind(IDBI.class).toInstance(dbi);
+        install(new GuicyKillbillTestWithEmbeddedDBModule());
 
+        install(new GlobalLockerModule());
         install(new CacheModule());
         install(new EmailModule());
         install(new CallContextModule());
-        install(new TestGlobalLockerModule(helper));
         install(new BusModule());
         install(new NotificationQueueModule());
         install(new TagStoreModule());
@@ -151,7 +132,7 @@ public class BeatrixIntegrationModule extends AbstractModule {
 
         @Override
         protected void installPaymentProviderPlugins(final PaymentConfig config) {
-            install(new MockPaymentProviderPluginModule(PLUGIN_NAME));
+            install(new MockPaymentProviderPluginModule(PLUGIN_NAME, TestIntegrationBase.getClock()));
         }
     }
 
diff --git a/beatrix/src/test/java/com/ning/billing/beatrix/integration/osgi/TestOSGIIntegration.java b/beatrix/src/test/java/com/ning/billing/beatrix/integration/osgi/TestOSGIIntegration.java
index 98fced0..2be1879 100644
--- a/beatrix/src/test/java/com/ning/billing/beatrix/integration/osgi/TestOSGIIntegration.java
+++ b/beatrix/src/test/java/com/ning/billing/beatrix/integration/osgi/TestOSGIIntegration.java
@@ -21,7 +21,6 @@ import org.testng.annotations.Test;
 
 import com.ning.billing.beatrix.integration.BeatrixIntegrationModule;
 
-@Guice(modules = {BeatrixIntegrationModule.class})
 public class TestOSGIIntegration extends TestOSGIBase {
 
     @Test(groups = "slow")
diff --git a/beatrix/src/test/java/com/ning/billing/beatrix/integration/overdue/TestBillingAlignment.java b/beatrix/src/test/java/com/ning/billing/beatrix/integration/overdue/TestBillingAlignment.java
index 9177afc..c4984c9 100644
--- a/beatrix/src/test/java/com/ning/billing/beatrix/integration/overdue/TestBillingAlignment.java
+++ b/beatrix/src/test/java/com/ning/billing/beatrix/integration/overdue/TestBillingAlignment.java
@@ -33,7 +33,6 @@ import com.ning.billing.entitlement.api.user.Subscription;
 import com.ning.billing.entitlement.api.user.SubscriptionBundle;
 import com.ning.billing.invoice.api.InvoiceItemType;
 
-@Guice(modules = {BeatrixIntegrationModule.class})
 public class TestBillingAlignment extends TestIntegrationBase {
 
     // TODO test fails as it should not create a proration when the chnage to annual occurs. Instaed we should restart from the data of the chnage
diff --git a/beatrix/src/test/java/com/ning/billing/beatrix/integration/overdue/TestOverdueIntegration.java b/beatrix/src/test/java/com/ning/billing/beatrix/integration/overdue/TestOverdueIntegration.java
index 74d8e53..b66e107 100644
--- a/beatrix/src/test/java/com/ning/billing/beatrix/integration/overdue/TestOverdueIntegration.java
+++ b/beatrix/src/test/java/com/ning/billing/beatrix/integration/overdue/TestOverdueIntegration.java
@@ -45,7 +45,6 @@ import static org.testng.Assert.assertTrue;
 
 
 @Test(groups = "slow")
-@Guice(modules = {BeatrixIntegrationModule.class})
 public class TestOverdueIntegration extends TestOverdueBase {
 
 
diff --git a/beatrix/src/test/java/com/ning/billing/beatrix/integration/overdue/TestOverdueWithOverdueEnforcementOffTag.java b/beatrix/src/test/java/com/ning/billing/beatrix/integration/overdue/TestOverdueWithOverdueEnforcementOffTag.java
index c3bc728..687a476 100644
--- a/beatrix/src/test/java/com/ning/billing/beatrix/integration/overdue/TestOverdueWithOverdueEnforcementOffTag.java
+++ b/beatrix/src/test/java/com/ning/billing/beatrix/integration/overdue/TestOverdueWithOverdueEnforcementOffTag.java
@@ -37,7 +37,6 @@ import com.ning.billing.util.tag.ControlTagType;
 import static junit.framework.Assert.assertTrue;
 
 @Test(groups = "slow")
-@Guice(modules = {BeatrixIntegrationModule.class})
 public class TestOverdueWithOverdueEnforcementOffTag extends TestOverdueBase {
 
 
diff --git a/beatrix/src/test/java/com/ning/billing/beatrix/integration/overdue/TestOverdueWithSubscriptionCancellation.java b/beatrix/src/test/java/com/ning/billing/beatrix/integration/overdue/TestOverdueWithSubscriptionCancellation.java
index f8a92d2..2a67e46 100644
--- a/beatrix/src/test/java/com/ning/billing/beatrix/integration/overdue/TestOverdueWithSubscriptionCancellation.java
+++ b/beatrix/src/test/java/com/ning/billing/beatrix/integration/overdue/TestOverdueWithSubscriptionCancellation.java
@@ -34,7 +34,6 @@ import com.ning.billing.invoice.api.InvoiceItemType;
 import com.ning.billing.util.svcapi.junction.DefaultBlockingState;
 
 @Test(groups = "slow")
-@Guice(modules = {BeatrixIntegrationModule.class})
 public class TestOverdueWithSubscriptionCancellation extends TestOverdueBase {
 
 
diff --git a/beatrix/src/test/java/com/ning/billing/beatrix/integration/TestAnalytics.java b/beatrix/src/test/java/com/ning/billing/beatrix/integration/TestAnalytics.java
index 302b6a8..9caa951 100644
--- a/beatrix/src/test/java/com/ning/billing/beatrix/integration/TestAnalytics.java
+++ b/beatrix/src/test/java/com/ning/billing/beatrix/integration/TestAnalytics.java
@@ -65,7 +65,6 @@ import com.ning.billing.util.tag.TagDefinition;
 
 import static org.testng.Assert.assertTrue;
 
-@Guice(modules = BeatrixIntegrationModule.class)
 public class TestAnalytics extends TestIntegrationBase {
 
     private Account account;
diff --git a/beatrix/src/test/java/com/ning/billing/beatrix/integration/TestBundleTransfer.java b/beatrix/src/test/java/com/ning/billing/beatrix/integration/TestBundleTransfer.java
index 174b45a..bc58705 100644
--- a/beatrix/src/test/java/com/ning/billing/beatrix/integration/TestBundleTransfer.java
+++ b/beatrix/src/test/java/com/ning/billing/beatrix/integration/TestBundleTransfer.java
@@ -43,7 +43,6 @@ import com.ning.billing.invoice.api.InvoiceItemType;
 
 import com.google.common.collect.ImmutableList;
 
-@Guice(modules = {BeatrixIntegrationModule.class})
 public class TestBundleTransfer extends TestIntegrationBase {
 
 
diff --git a/beatrix/src/test/java/com/ning/billing/beatrix/integration/TestEntitlement.java b/beatrix/src/test/java/com/ning/billing/beatrix/integration/TestEntitlement.java
index ea566b0..a9f1a58 100644
--- a/beatrix/src/test/java/com/ning/billing/beatrix/integration/TestEntitlement.java
+++ b/beatrix/src/test/java/com/ning/billing/beatrix/integration/TestEntitlement.java
@@ -42,7 +42,6 @@ import static org.testng.Assert.assertEquals;
 import static org.testng.Assert.assertNotNull;
 import static org.testng.Assert.assertTrue;
 
-@Guice(modules = {BeatrixIntegrationModule.class})
 public class TestEntitlement extends TestIntegrationBase {
 
 
diff --git a/beatrix/src/test/java/com/ning/billing/beatrix/integration/TestIntegration.java b/beatrix/src/test/java/com/ning/billing/beatrix/integration/TestIntegration.java
index 6287aef..b7817af 100644
--- a/beatrix/src/test/java/com/ning/billing/beatrix/integration/TestIntegration.java
+++ b/beatrix/src/test/java/com/ning/billing/beatrix/integration/TestIntegration.java
@@ -48,7 +48,6 @@ import static org.testng.Assert.assertEquals;
 import static org.testng.Assert.assertNotNull;
 import static org.testng.Assert.assertTrue;
 
-@Guice(modules = {BeatrixIntegrationModule.class})
 public class TestIntegration extends TestIntegrationBase {
 
     @Test(groups = "slow")
diff --git a/beatrix/src/test/java/com/ning/billing/beatrix/integration/TestIntegrationBase.java b/beatrix/src/test/java/com/ning/billing/beatrix/integration/TestIntegrationBase.java
index 265a751..6de9d54 100644
--- a/beatrix/src/test/java/com/ning/billing/beatrix/integration/TestIntegrationBase.java
+++ b/beatrix/src/test/java/com/ning/billing/beatrix/integration/TestIntegrationBase.java
@@ -88,7 +88,10 @@ import com.ning.billing.util.svcsapi.bus.BusService;
 
 import com.google.common.base.Function;
 import com.google.common.base.Joiner;
+import com.google.inject.Guice;
 import com.google.inject.Inject;
+import com.google.inject.Injector;
+import com.google.inject.Stage;
 import com.google.inject.name.Named;
 
 import static org.testng.Assert.assertNotNull;
@@ -112,11 +115,6 @@ public class TestIntegrationBase extends BeatrixTestSuiteWithEmbeddedDB implemen
 
     protected static final long DELAY = 5000;
 
-    @Inject
-    protected IDBI dbi;
-
-    @Inject
-    protected ClockMock clock;
 
     @Inject
     protected Lifecycle lifecycle;
@@ -223,9 +221,13 @@ public class TestIntegrationBase extends BeatrixTestSuiteWithEmbeddedDB implemen
 
     @BeforeClass(groups = "slow")
     public void setup() throws Exception {
+        final Injector g = Guice.createInjector(Stage.PRODUCTION, new BeatrixIntegrationModule());
+        g.injectMembers(this);
         busHandler = new TestApiListener(this);
+
     }
 
+
     @BeforeMethod(groups = "slow")
     public void setupTest() throws Exception {
         log.warn("\n");
diff --git a/beatrix/src/test/java/com/ning/billing/beatrix/integration/TestIntegrationWithAutoInvoiceOffTag.java b/beatrix/src/test/java/com/ning/billing/beatrix/integration/TestIntegrationWithAutoInvoiceOffTag.java
index 66502cb..d79e09c 100644
--- a/beatrix/src/test/java/com/ning/billing/beatrix/integration/TestIntegrationWithAutoInvoiceOffTag.java
+++ b/beatrix/src/test/java/com/ning/billing/beatrix/integration/TestIntegrationWithAutoInvoiceOffTag.java
@@ -48,7 +48,6 @@ import static org.testng.Assert.assertEquals;
 import static org.testng.Assert.assertNotNull;
 import static org.testng.Assert.assertTrue;
 
-@Guice(modules = {BeatrixIntegrationModule.class})
 public class TestIntegrationWithAutoInvoiceOffTag extends TestIntegrationBase {
 
     @Inject
diff --git a/beatrix/src/test/java/com/ning/billing/beatrix/integration/TestIntegrationWithAutoPayOff.java b/beatrix/src/test/java/com/ning/billing/beatrix/integration/TestIntegrationWithAutoPayOff.java
index d88502f..07c48e4 100644
--- a/beatrix/src/test/java/com/ning/billing/beatrix/integration/TestIntegrationWithAutoPayOff.java
+++ b/beatrix/src/test/java/com/ning/billing/beatrix/integration/TestIntegrationWithAutoPayOff.java
@@ -49,7 +49,6 @@ import static org.testng.Assert.assertEquals;
 import static org.testng.Assert.assertNotNull;
 import static org.testng.Assert.assertTrue;
 
-@Guice(modules = {BeatrixIntegrationModule.class})
 public class TestIntegrationWithAutoPayOff extends TestIntegrationBase {
 
 
diff --git a/beatrix/src/test/java/com/ning/billing/beatrix/integration/TestPaymentRefund.java b/beatrix/src/test/java/com/ning/billing/beatrix/integration/TestPaymentRefund.java
index d77e519..f2ead6a 100644
--- a/beatrix/src/test/java/com/ning/billing/beatrix/integration/TestPaymentRefund.java
+++ b/beatrix/src/test/java/com/ning/billing/beatrix/integration/TestPaymentRefund.java
@@ -49,7 +49,6 @@ import com.google.common.base.Function;
 import com.google.common.base.Predicate;
 import com.google.common.collect.Collections2;
 
-@Guice(modules = {BeatrixIntegrationModule.class})
 public class TestPaymentRefund extends TestIntegrationBase {
 
     // Setup for all tests below
diff --git a/beatrix/src/test/java/com/ning/billing/beatrix/integration/TestPublicBus.java b/beatrix/src/test/java/com/ning/billing/beatrix/integration/TestPublicBus.java
index 5160880..37800f0 100644
--- a/beatrix/src/test/java/com/ning/billing/beatrix/integration/TestPublicBus.java
+++ b/beatrix/src/test/java/com/ning/billing/beatrix/integration/TestPublicBus.java
@@ -37,7 +37,6 @@ import com.ning.billing.entitlement.api.user.SubscriptionData;
 
 import com.google.common.eventbus.Subscribe;
 
-@Guice(modules = {BeatrixIntegrationModule.class})
 public class TestPublicBus extends TestIntegrationBase {
 
     private PublicListener publicListener;
diff --git a/beatrix/src/test/java/com/ning/billing/beatrix/integration/TestRepairIntegration.java b/beatrix/src/test/java/com/ning/billing/beatrix/integration/TestRepairIntegration.java
index 7e8c3f9..170f015 100644
--- a/beatrix/src/test/java/com/ning/billing/beatrix/integration/TestRepairIntegration.java
+++ b/beatrix/src/test/java/com/ning/billing/beatrix/integration/TestRepairIntegration.java
@@ -49,8 +49,6 @@ import static org.testng.Assert.assertEquals;
 import static org.testng.Assert.assertNotNull;
 import static org.testng.Assert.assertTrue;
 
-@Test(groups = "slow")
-@Guice(modules = {BeatrixIntegrationModule.class})
 public class TestRepairIntegration extends TestIntegrationBase {
 
 
diff --git a/invoice/src/test/java/com/ning/billing/invoice/notification/TestNextBillingDateNotifier.java b/invoice/src/test/java/com/ning/billing/invoice/notification/TestNextBillingDateNotifier.java
index 3005d80..e9d1358 100644
--- a/invoice/src/test/java/com/ning/billing/invoice/notification/TestNextBillingDateNotifier.java
+++ b/invoice/src/test/java/com/ning/billing/invoice/notification/TestNextBillingDateNotifier.java
@@ -40,8 +40,7 @@ public class TestNextBillingDateNotifier extends InvoiceTestSuiteWithEmbeddedDB 
         final UUID accountId = UUID.randomUUID();
         final Subscription subscription = invoiceUtil.createSubscription();
         final UUID subscriptionId = subscription.getId();
-        final DateTime now = new DateTime();
-        final DateTime readyTime = now.plusMillis(2000);
+        final DateTime now = clock.getUTCNow();
 
 
         final NotificationQueue nextBillingQueue = notificationQueueService.getNotificationQueue(DefaultInvoiceService.INVOICE_SERVICE_NAME, DefaultNextBillingDateNotifier.NEXT_BILLING_DATE_NOTIFIER_QUEUE);
diff --git a/payment/src/test/java/com/ning/billing/payment/glue/TestPaymentModule.java b/payment/src/test/java/com/ning/billing/payment/glue/TestPaymentModule.java
index 1e36213..915607b 100644
--- a/payment/src/test/java/com/ning/billing/payment/glue/TestPaymentModule.java
+++ b/payment/src/test/java/com/ning/billing/payment/glue/TestPaymentModule.java
@@ -29,6 +29,7 @@ import com.ning.billing.mock.glue.MockNotificationQueueModule;
 import com.ning.billing.payment.TestPaymentHelper;
 import com.ning.billing.payment.provider.MockPaymentProviderPluginModule;
 import com.ning.billing.util.callcontext.InternalTenantContext;
+import com.ning.billing.util.clock.Clock;
 import com.ning.billing.util.config.PaymentConfig;
 import com.ning.billing.util.email.EmailModule;
 import com.ning.billing.util.email.templates.TemplateModule;
@@ -48,9 +49,15 @@ import static org.testng.Assert.assertNotNull;
 public class TestPaymentModule extends PaymentModule {
 
 
+    private final Clock clock;
+
+    public TestPaymentModule(final Clock clock) {
+        this.clock = clock;
+    }
+
     @Override
     protected void installPaymentProviderPlugins(final PaymentConfig config) {
-        install(new MockPaymentProviderPluginModule(TestPaymentHelper.PLUGIN_TEST_NAME));
+        install(new MockPaymentProviderPluginModule(TestPaymentHelper.PLUGIN_TEST_NAME, clock));
     }
 
     private void installExternalApis() {
diff --git a/payment/src/test/java/com/ning/billing/payment/glue/TestPaymentModuleNoDB.java b/payment/src/test/java/com/ning/billing/payment/glue/TestPaymentModuleNoDB.java
index 9b69860..6ae07e0 100644
--- a/payment/src/test/java/com/ning/billing/payment/glue/TestPaymentModuleNoDB.java
+++ b/payment/src/test/java/com/ning/billing/payment/glue/TestPaymentModuleNoDB.java
@@ -20,9 +20,14 @@ import com.ning.billing.GuicyKillbillTestNoDBModule;
 import com.ning.billing.mock.glue.MockNonEntityDaoModule;
 import com.ning.billing.payment.dao.MockPaymentDao;
 import com.ning.billing.payment.dao.PaymentDao;
+import com.ning.billing.util.clock.Clock;
 
 public class TestPaymentModuleNoDB extends TestPaymentModule {
 
+    public TestPaymentModuleNoDB(final Clock clock) {
+        super(clock);
+    }
+
     @Override
     protected void installPaymentDao() {
         bind(PaymentDao.class).to(MockPaymentDao.class).asEagerSingleton();
diff --git a/payment/src/test/java/com/ning/billing/payment/glue/TestPaymentModuleWithEmbeddedDB.java b/payment/src/test/java/com/ning/billing/payment/glue/TestPaymentModuleWithEmbeddedDB.java
index 43cc11d..a8d8109 100644
--- a/payment/src/test/java/com/ning/billing/payment/glue/TestPaymentModuleWithEmbeddedDB.java
+++ b/payment/src/test/java/com/ning/billing/payment/glue/TestPaymentModuleWithEmbeddedDB.java
@@ -17,10 +17,15 @@
 package com.ning.billing.payment.glue;
 
 import com.ning.billing.GuicyKillbillTestWithEmbeddedDBModule;
+import com.ning.billing.util.clock.Clock;
 import com.ning.billing.util.glue.NonEntityDaoModule;
 
 public class TestPaymentModuleWithEmbeddedDB extends TestPaymentModule {
 
+    public TestPaymentModuleWithEmbeddedDB(final Clock clock) {
+        super(clock);
+    }
+
     @Override
     protected void configure() {
         install(new GuicyKillbillTestWithEmbeddedDBModule());
diff --git a/payment/src/test/java/com/ning/billing/payment/PaymentTestSuiteNoDB.java b/payment/src/test/java/com/ning/billing/payment/PaymentTestSuiteNoDB.java
index 4d11db1..c6ac736 100644
--- a/payment/src/test/java/com/ning/billing/payment/PaymentTestSuiteNoDB.java
+++ b/payment/src/test/java/com/ning/billing/payment/PaymentTestSuiteNoDB.java
@@ -75,7 +75,7 @@ public abstract class PaymentTestSuiteNoDB extends GuicyKillbillTestSuiteNoDB {
 
         loadSystemPropertiesFromClasspath("/resource.properties");
 
-        final Injector injector = Guice.createInjector(new TestPaymentModuleNoDB());
+        final Injector injector = Guice.createInjector(new TestPaymentModuleNoDB(getClock()));
         injector.injectMembers(this);
     }
 
diff --git a/payment/src/test/java/com/ning/billing/payment/PaymentTestSuiteWithEmbeddedDB.java b/payment/src/test/java/com/ning/billing/payment/PaymentTestSuiteWithEmbeddedDB.java
index 2da0b91..092ba80 100644
--- a/payment/src/test/java/com/ning/billing/payment/PaymentTestSuiteWithEmbeddedDB.java
+++ b/payment/src/test/java/com/ning/billing/payment/PaymentTestSuiteWithEmbeddedDB.java
@@ -76,7 +76,7 @@ public abstract class PaymentTestSuiteWithEmbeddedDB extends GuicyKillbillTestSu
 
         loadSystemPropertiesFromClasspath("/resource.properties");
 
-        final Injector injector = Guice.createInjector(new TestPaymentModuleWithEmbeddedDB());
+        final Injector injector = Guice.createInjector(new TestPaymentModuleWithEmbeddedDB(getClock()));
         injector.injectMembers(this);
     }
 
diff --git a/payment/src/test/java/com/ning/billing/payment/provider/MockPaymentProviderPluginModule.java b/payment/src/test/java/com/ning/billing/payment/provider/MockPaymentProviderPluginModule.java
index a4f60be..91be5c2 100644
--- a/payment/src/test/java/com/ning/billing/payment/provider/MockPaymentProviderPluginModule.java
+++ b/payment/src/test/java/com/ning/billing/payment/provider/MockPaymentProviderPluginModule.java
@@ -16,21 +16,26 @@
 
 package com.ning.billing.payment.provider;
 
+import com.ning.billing.util.clock.Clock;
+
 import com.google.inject.AbstractModule;
 import com.google.inject.name.Names;
 
 public class MockPaymentProviderPluginModule extends AbstractModule {
+
     private final String instanceName;
+    private final Clock clock;
 
-    public MockPaymentProviderPluginModule(final String instanceName) {
+    public MockPaymentProviderPluginModule(final String instanceName, final Clock clock) {
         this.instanceName = instanceName;
+        this.clock = clock;
     }
 
     @Override
     protected void configure() {
         bind(MockPaymentProviderPlugin.class)
                 .annotatedWith(Names.named(instanceName))
-                .toProvider(new MockPaymentProviderPluginProvider(instanceName))
+                .toProvider(new MockPaymentProviderPluginProvider(instanceName, clock))
                 .asEagerSingleton();
     }
 }
diff --git a/payment/src/test/java/com/ning/billing/payment/provider/MockPaymentProviderPluginProvider.java b/payment/src/test/java/com/ning/billing/payment/provider/MockPaymentProviderPluginProvider.java
index 4ed67ec..e171e7a 100644
--- a/payment/src/test/java/com/ning/billing/payment/provider/MockPaymentProviderPluginProvider.java
+++ b/payment/src/test/java/com/ning/billing/payment/provider/MockPaymentProviderPluginProvider.java
@@ -25,11 +25,11 @@ public class MockPaymentProviderPluginProvider implements Provider<MockPaymentPr
     private PaymentProviderPluginRegistry registry;
     private final String instanceName;
 
-    @Inject
     private Clock clock;
 
-    public MockPaymentProviderPluginProvider(final String instanceName) {
+    public MockPaymentProviderPluginProvider(final String instanceName, Clock clock) {
         this.instanceName = instanceName;
+        this.clock = clock;
     }
 
     @Inject
diff --git a/server/src/test/java/com/ning/billing/jaxrs/KillbillClient.java b/server/src/test/java/com/ning/billing/jaxrs/KillbillClient.java
index 65563d7..3214304 100644
--- a/server/src/test/java/com/ning/billing/jaxrs/KillbillClient.java
+++ b/server/src/test/java/com/ning/billing/jaxrs/KillbillClient.java
@@ -36,6 +36,7 @@ import org.slf4j.Logger;
 import org.slf4j.LoggerFactory;
 import org.testng.Assert;
 
+import com.ning.billing.GuicyKillbillTestSuiteWithEmbeddedDB;
 import com.ning.billing.catalog.api.BillingPeriod;
 import com.ning.billing.catalog.api.Currency;
 import com.ning.billing.catalog.api.PriceListSet;
@@ -84,12 +85,11 @@ import static com.ning.billing.jaxrs.resources.JaxrsResource.SUBSCRIPTIONS;
 import static org.testng.Assert.assertEquals;
 import static org.testng.Assert.assertNotNull;
 
-public abstract class KillbillClient extends ServerTestSuiteWithEmbeddedDB {
+public abstract class KillbillClient extends GuicyKillbillTestSuiteWithEmbeddedDB {
 
     protected static final String PLUGIN_NAME = "noop";
 
-    // STEPH
-    protected static final int DEFAULT_HTTP_TIMEOUT_SEC = 6000; // 5;
+    protected static final int DEFAULT_HTTP_TIMEOUT_SEC = 5;
 
     protected static final Map<String, String> DEFAULT_EMPTY_QUERY = new HashMap<String, String>();
 
@@ -103,7 +103,6 @@ public abstract class KillbillClient extends ServerTestSuiteWithEmbeddedDB {
     protected CoreConfig config;
     protected AsyncHttpClient httpClient;
     protected ObjectMapper mapper;
-    protected ClockMock clock;
 
     // Context information to be passed around
     protected static final String createdBy = "Toto";
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 7c6d2c2..8cabb96 100644
--- a/server/src/test/java/com/ning/billing/jaxrs/TestJaxrsBase.java
+++ b/server/src/test/java/com/ning/billing/jaxrs/TestJaxrsBase.java
@@ -26,21 +26,18 @@ import java.util.Map;
 import org.eclipse.jetty.servlet.FilterHolder;
 import org.joda.time.LocalDate;
 import org.skife.config.ConfigurationObjectFactory;
-import org.skife.jdbi.v2.IDBI;
 import org.testng.annotations.AfterSuite;
 import org.testng.annotations.BeforeClass;
 import org.testng.annotations.BeforeMethod;
 import org.testng.annotations.BeforeSuite;
 
-import com.ning.billing.KillbillTestSuiteWithEmbeddedDB;
+import com.ning.billing.GuicyKillbillTestWithEmbeddedDBModule;
 import com.ning.billing.account.glue.DefaultAccountModule;
 import com.ning.billing.analytics.setup.AnalyticsModule;
 import com.ning.billing.api.TestApiListener;
 import com.ning.billing.beatrix.glue.BeatrixModule;
 import com.ning.billing.catalog.glue.CatalogModule;
-import com.ning.billing.dbi.DBIProvider;
 import com.ning.billing.dbi.DBTestingHelper;
-import com.ning.billing.dbi.DbiConfig;
 import com.ning.billing.dbi.MysqlTestingHelper;
 import com.ning.billing.entitlement.glue.DefaultEntitlementModule;
 import com.ning.billing.invoice.api.InvoiceNotifier;
@@ -53,8 +50,6 @@ import com.ning.billing.payment.provider.MockPaymentProviderPluginModule;
 import com.ning.billing.server.listeners.KillbillGuiceListener;
 import com.ning.billing.server.modules.KillbillServerModule;
 import com.ning.billing.tenant.glue.TenantModule;
-import com.ning.billing.util.clock.Clock;
-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;
@@ -89,8 +84,6 @@ public class TestJaxrsBase extends KillbillClient {
 
     protected static TestKillbillGuiceListener listener;
 
-    private final DBTestingHelper helper = KillbillTestSuiteWithEmbeddedDB.getDBTestingHelper();
-
     private HttpServer server;
     protected TestApiListener busHandler;
 
@@ -106,23 +99,19 @@ public class TestJaxrsBase extends KillbillClient {
 
     public static class TestKillbillGuiceListener extends KillbillGuiceListener {
 
-        private final DBTestingHelper helper;
-        private final Clock clock;
+        private final TestKillbillServerModule module;
+
 
-        public TestKillbillGuiceListener(final DBTestingHelper helper, final Clock clock) {
+        public TestKillbillGuiceListener(final DBTestingHelper helper) {
             super();
-            this.helper = helper;
-            this.clock = clock;
+            this.module = new TestKillbillServerModule(helper);
         }
 
         @Override
         protected Module getModule() {
-            return new TestKillbillServerModule(helper, clock);
+            return module;
         }
 
-        public Clock getClock() {
-            return clock;
-        }
     }
 
     public static class InvoiceModuleWithMockSender extends DefaultInvoiceModule {
@@ -136,24 +125,27 @@ public class TestJaxrsBase extends KillbillClient {
     public static class TestKillbillServerModule extends KillbillServerModule {
 
         private final DBTestingHelper helper;
-        private final Clock clock;
 
-        public TestKillbillServerModule(final DBTestingHelper helper, final Clock clock) {
+        public TestKillbillServerModule(final DBTestingHelper helper) {
             super();
             this.helper = helper;
-            this.clock = clock;
         }
 
         @Override
         protected void installClock() {
-            bind(Clock.class).toInstance(clock);
+            // Already done By Top test class
+        }
+
+        @Override
+        protected void configureDao() {
+            // Already done By Top test class
         }
 
         private static final class PaymentMockModule extends PaymentModule {
 
             @Override
             protected void installPaymentProviderPlugins(final PaymentConfig config) {
-                install(new MockPaymentProviderPluginModule(PLUGIN_NAME));
+                install(new MockPaymentProviderPluginModule(PLUGIN_NAME, getClock()));
             }
         }
 
@@ -166,6 +158,10 @@ public class TestJaxrsBase extends KillbillClient {
             super.installKillbillModules();
             Modules.override(new com.ning.billing.payment.setup.PaymentModule()).with(new PaymentMockModule());
             */
+
+            install(new GuicyKillbillTestWithEmbeddedDBModule());
+
+
             install(new EmailModule());
             install(new CacheModule());
             install(new NonEntityDaoModule());
@@ -190,18 +186,6 @@ public class TestJaxrsBase extends KillbillClient {
             install(new ExportModule());
             installClock();
         }
-
-        @Override
-        protected void configureDao() {
-            if (helper.isUsingLocalInstance()) {
-                bind(IDBI.class).toProvider(DBIProvider.class).asEagerSingleton();
-                final DbiConfig config = new ConfigurationObjectFactory(System.getProperties()).build(DbiConfig.class);
-                bind(DbiConfig.class).toInstance(config);
-            } else {
-                final IDBI dbi = helper.getDBI();
-                bind(IDBI.class).toInstance(dbi);
-            }
-        }
     }
 
     @BeforeMethod(groups = "slow")
@@ -214,6 +198,10 @@ public class TestJaxrsBase extends KillbillClient {
     @BeforeClass(groups = "slow")
     public void setupClass() throws IOException {
         loadConfig();
+
+
+        listener.getInstantiatedInjector().injectMembers(this);
+
         httpClient = new AsyncHttpClient(new AsyncHttpClientConfig.Builder().setRequestTimeoutInMs(DEFAULT_HTTP_TIMEOUT_SEC * 1000).build());
         mapper = new ObjectMapper();
         mapper.registerModule(new JodaModule());
@@ -222,7 +210,6 @@ public class TestJaxrsBase extends KillbillClient {
         //mapper.setPropertyNamingStrategy(new PropertyNamingStrategy.LowerCaseWithUnderscoresStrategy());
 
         busHandler = new TestApiListener(null);
-        this.clock = (ClockMock) listener.getClock();
     }
 
     protected void loadConfig() {
@@ -231,7 +218,7 @@ public class TestJaxrsBase extends KillbillClient {
         }
 
         // For shiro (outside of Guice control)
-        System.setProperty("com.ning.jetty.jdbi.url", helper.getJdbcConnectionString());
+        System.setProperty("com.ning.jetty.jdbi.url", getDBTestingHelper().getJdbcConnectionString());
         System.setProperty("com.ning.jetty.jdbi.user", MysqlTestingHelper.USERNAME);
         System.setProperty("com.ning.jetty.jdbi.password", MysqlTestingHelper.PASSWORD);
     }
@@ -241,15 +228,12 @@ public class TestJaxrsBase extends KillbillClient {
         loadSystemPropertiesFromClasspath("/killbill.properties");
         loadConfig();
 
-        this.clock = new ClockMock();
-        listener = new TestKillbillGuiceListener(helper, clock);
+        listener = new TestKillbillGuiceListener(getDBTestingHelper());
         server = new HttpServer();
 
         server.configure(config, getListeners(), getFilters());
 
         server.start();
-
-        listener.getInstantiatedInjector().injectMembers(this);
     }
 
     protected Iterable<EventListener> getListeners() {
diff --git a/server/src/test/java/com/ning/billing/server/security/TestTenantFilter.java b/server/src/test/java/com/ning/billing/server/security/TestTenantFilter.java
index bfe9273..d4a0dbf 100644
--- a/server/src/test/java/com/ning/billing/server/security/TestTenantFilter.java
+++ b/server/src/test/java/com/ning/billing/server/security/TestTenantFilter.java
@@ -39,7 +39,7 @@ import com.ning.http.client.Realm.AuthScheme;
 import com.google.common.collect.ImmutableList;
 import com.google.common.collect.ImmutableMap;
 
-public class TestTenantFilter extends TestJaxrsBase {
+public class TestTenantFilter extends TestJaxrsBase  {
 
     @Override
     protected void loadConfig() {
diff --git a/util/src/test/java/com/ning/billing/GuicyKillbillTestModule.java b/util/src/test/java/com/ning/billing/GuicyKillbillTestModule.java
index 9ab7a27..1b69a96 100644
--- a/util/src/test/java/com/ning/billing/GuicyKillbillTestModule.java
+++ b/util/src/test/java/com/ning/billing/GuicyKillbillTestModule.java
@@ -34,20 +34,20 @@ public class GuicyKillbillTestModule extends AbstractModule {
     // CreatedFontTracker references that will later be injected through Guices.
     // That we we have only one clock and all internalContext/callContext are consistent
     //
-    private final ClockMock clock = new ClockMock();
 
     private final InternalCallContext internalCallContext = new InternalCallContext(InternalCallContextFactory.INTERNAL_TENANT_RECORD_ID, 1687L, UUID.randomUUID(),
                                                                                     UUID.randomUUID().toString(), CallOrigin.TEST,
                                                                                     UserType.TEST, "Testing", "This is a test",
-                                                                                    clock.getUTCNow(), clock.getUTCNow());
+                                                                                    GuicyKillbillTestSuite.getClock().getUTCNow(), GuicyKillbillTestSuite.getClock().getUTCNow());
 
     private final CallContext callContext = internalCallContext.toCallContext();
 
 
+
     @Override
     protected void configure() {
-        bind(Clock.class).toInstance(clock);
-        bind(ClockMock.class).toInstance(clock);
+        bind(ClockMock.class).toInstance(GuicyKillbillTestSuite.getClock());
+        bind(Clock.class).to(ClockMock.class);
         bind(InternalCallContext.class).toInstance(internalCallContext);
         bind(CallContext.class).toInstance(callContext);
     }
diff --git a/util/src/test/java/com/ning/billing/GuicyKillbillTestSuite.java b/util/src/test/java/com/ning/billing/GuicyKillbillTestSuite.java
index d299670..86ab3ce 100644
--- a/util/src/test/java/com/ning/billing/GuicyKillbillTestSuite.java
+++ b/util/src/test/java/com/ning/billing/GuicyKillbillTestSuite.java
@@ -39,14 +39,20 @@ public class GuicyKillbillTestSuite {
     private boolean hasFailed = false;
 
     @Inject
-    protected ClockMock clock;
-
-    @Inject
     protected InternalCallContext internalCallContext;
 
     @Inject
     protected CallContext callContext;
 
+    @Inject
+    protected ClockMock clock;
+
+
+    private final static ClockMock theStaticClock = new ClockMock();
+
+    public static ClockMock getClock() {
+        return theStaticClock;
+    }
 
     @BeforeMethod(alwaysRun = true)
     public void startTestSuite(final Method method) throws Exception {
diff --git a/util/src/test/java/com/ning/billing/GuicyKillbillTestWithEmbeddedDBModule.java b/util/src/test/java/com/ning/billing/GuicyKillbillTestWithEmbeddedDBModule.java
index c568530..7f44985 100644
--- a/util/src/test/java/com/ning/billing/GuicyKillbillTestWithEmbeddedDBModule.java
+++ b/util/src/test/java/com/ning/billing/GuicyKillbillTestWithEmbeddedDBModule.java
@@ -17,9 +17,6 @@
 package com.ning.billing;
 
 
-import javax.inject.Provider;
-
-import org.skife.jdbi.v2.DBI;
 import org.skife.jdbi.v2.IDBI;
 import org.slf4j.Logger;
 import org.slf4j.LoggerFactory;