killbill-memoizeit

meter: remove dependency on KillbillTestSuite classes Now

2/18/2013 3:07:36 AM

Changes

Details

diff --git a/osgi-bundles/meter/src/test/java/com/ning/billing/meter/MeterTestSuite.java b/osgi-bundles/meter/src/test/java/com/ning/billing/meter/MeterTestSuite.java
index d6ae3a6..00b476c 100644
--- a/osgi-bundles/meter/src/test/java/com/ning/billing/meter/MeterTestSuite.java
+++ b/osgi-bundles/meter/src/test/java/com/ning/billing/meter/MeterTestSuite.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,8 +16,56 @@
 
 package com.ning.billing.meter;
 
-import com.ning.billing.KillbillTestSuite;
+import java.lang.reflect.Method;
+import java.util.UUID;
 
-public class MeterTestSuite extends KillbillTestSuite {
+import org.slf4j.Logger;
+import org.slf4j.LoggerFactory;
+import org.testng.ITestResult;
+import org.testng.annotations.AfterMethod;
+import org.testng.annotations.BeforeMethod;
 
+import com.ning.billing.util.callcontext.CallOrigin;
+import com.ning.billing.util.callcontext.InternalCallContext;
+import com.ning.billing.util.callcontext.InternalCallContextFactory;
+import com.ning.billing.util.callcontext.UserType;
+import com.ning.billing.util.clock.Clock;
+import com.ning.billing.util.clock.ClockMock;
+
+public class MeterTestSuite {
+
+    // Use the simple name here to save screen real estate
+    protected static final Logger log = LoggerFactory.getLogger(MeterTestSuiteNoDB.class.getSimpleName());
+
+    private boolean hasFailed = false;
+
+    protected Clock clock = new ClockMock();
+
+    protected 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());
+
+    @BeforeMethod(alwaysRun = true)
+    public void startTestSuite(final Method method) throws Exception {
+        log.info("***************************************************************************************************");
+        log.info("*** Starting test {}:{}", method.getDeclaringClass().getName(), method.getName());
+        log.info("***************************************************************************************************");
+    }
+
+    @AfterMethod(alwaysRun = true)
+    public void endTestSuite(final Method method, final ITestResult result) throws Exception {
+        log.info("***************************************************************************************************");
+        log.info("***   Ending test {}:{} {} ({} s.)", method.getDeclaringClass().getName(), method.getName(),
+                 result.isSuccess() ? "SUCCESS" : "!!! FAILURE !!!",
+                 (result.getEndMillis() - result.getStartMillis()) / 1000);
+        log.info("***************************************************************************************************");
+        if (!hasFailed && !result.isSuccess()) {
+            hasFailed = true;
+        }
+    }
+
+    public boolean hasFailed() {
+        return hasFailed;
+    }
 }
diff --git a/osgi-bundles/meter/src/test/java/com/ning/billing/meter/MeterTestSuiteNoDB.java b/osgi-bundles/meter/src/test/java/com/ning/billing/meter/MeterTestSuiteNoDB.java
new file mode 100644
index 0000000..b3905c5
--- /dev/null
+++ b/osgi-bundles/meter/src/test/java/com/ning/billing/meter/MeterTestSuiteNoDB.java
@@ -0,0 +1,20 @@
+/*
+ * 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.meter;
+
+public class MeterTestSuiteNoDB extends MeterTestSuite {
+}
diff --git a/osgi-bundles/meter/src/test/java/com/ning/billing/meter/MeterTestSuiteWithEmbeddedDB.java b/osgi-bundles/meter/src/test/java/com/ning/billing/meter/MeterTestSuiteWithEmbeddedDB.java
index ec039b5..66ea04c 100644
--- a/osgi-bundles/meter/src/test/java/com/ning/billing/meter/MeterTestSuiteWithEmbeddedDB.java
+++ b/osgi-bundles/meter/src/test/java/com/ning/billing/meter/MeterTestSuiteWithEmbeddedDB.java
@@ -16,8 +16,70 @@
 
 package com.ning.billing.meter;
 
+import java.io.IOException;
+import java.net.URISyntaxException;
+import java.sql.SQLException;
+
+import org.skife.jdbi.v2.IDBI;
+import org.slf4j.Logger;
+import org.slf4j.LoggerFactory;
+import org.testng.annotations.AfterSuite;
+import org.testng.annotations.BeforeMethod;
+import org.testng.annotations.BeforeSuite;
+
 import com.ning.billing.KillbillTestSuiteWithEmbeddedDB;
+import com.ning.billing.dbi.DBTestingHelper;
+import com.ning.billing.dbi.H2TestingHelper;
+import com.ning.billing.dbi.MysqlTestingHelper;
+
+public class MeterTestSuiteWithEmbeddedDB extends MeterTestSuite {
+
+    private static final Logger log = LoggerFactory.getLogger(KillbillTestSuiteWithEmbeddedDB.class);
+
+    protected static DBTestingHelper helper;
+
+    static {
+        if ("true".equals(System.getProperty("com.ning.billing.dbi.test.h2"))) {
+            log.info("Using h2 as the embedded database");
+            helper = new H2TestingHelper();
+        } else {
+            log.info("Using MySQL as the embedded database");
+            helper = new MysqlTestingHelper();
+        }
+    }
+
+    public static IDBI getDBI() {
+        return helper.getDBI();
+    }
+
+    @BeforeSuite(groups = {"slow", "mysql"})
+    public void startMysqlBeforeTestSuite() throws IOException, ClassNotFoundException, SQLException, URISyntaxException {
+        helper.start();
+        helper.initDb();
+        helper.cleanupAllTables();
+    }
+
+    @BeforeMethod(groups = {"slow", "mysql"})
+    public void cleanupTablesBetweenMethods() {
+        try {
+            helper.cleanupAllTables();
+        } catch (Exception ignored) {
+        }
+    }
 
-public class MeterTestSuiteWithEmbeddedDB extends KillbillTestSuiteWithEmbeddedDB {
+    @AfterSuite(groups = {"slow", "mysql"})
+    public void shutdownMysqlAfterTestSuite() throws IOException, ClassNotFoundException, SQLException, URISyntaxException {
+        if (hasFailed()) {
+            log.error("**********************************************************************************************");
+            log.error("*** TESTS HAVE FAILED - LEAVING DB RUNNING FOR DEBUGGING - MAKE SURE TO KILL IT ONCE DONE ****");
+            log.error(helper.getConnectionString());
+            log.error("**********************************************************************************************");
+            return;
+        }
 
+        try {
+            helper.stop();
+        } catch (Exception ignored) {
+        }
+    }
 }
diff --git a/osgi-bundles/meter/src/test/java/com/ning/billing/meter/timeline/categories/TestCategoryAndMetrics.java b/osgi-bundles/meter/src/test/java/com/ning/billing/meter/timeline/categories/TestCategoryAndMetrics.java
index 9f1dfab..54c51c3 100644
--- a/osgi-bundles/meter/src/test/java/com/ning/billing/meter/timeline/categories/TestCategoryAndMetrics.java
+++ b/osgi-bundles/meter/src/test/java/com/ning/billing/meter/timeline/categories/TestCategoryAndMetrics.java
@@ -19,11 +19,11 @@ package com.ning.billing.meter.timeline.categories;
 import org.testng.Assert;
 import org.testng.annotations.Test;
 
-import com.ning.billing.meter.MeterTestSuite;
+import com.ning.billing.meter.MeterTestSuiteNoDB;
 
 import com.fasterxml.jackson.databind.ObjectMapper;
 
-public class TestCategoryAndMetrics extends MeterTestSuite {
+public class TestCategoryAndMetrics extends MeterTestSuiteNoDB {
 
     @Test(groups = "fast")
     public void testMapping() throws Exception {
diff --git a/osgi-bundles/meter/src/test/java/com/ning/billing/meter/timeline/chunks/TestTimeBytesAndSampleBytes.java b/osgi-bundles/meter/src/test/java/com/ning/billing/meter/timeline/chunks/TestTimeBytesAndSampleBytes.java
index e5fa9eb..d82823a 100644
--- a/osgi-bundles/meter/src/test/java/com/ning/billing/meter/timeline/chunks/TestTimeBytesAndSampleBytes.java
+++ b/osgi-bundles/meter/src/test/java/com/ning/billing/meter/timeline/chunks/TestTimeBytesAndSampleBytes.java
@@ -19,9 +19,9 @@ package com.ning.billing.meter.timeline.chunks;
 import org.testng.Assert;
 import org.testng.annotations.Test;
 
-import com.ning.billing.meter.MeterTestSuite;
+import com.ning.billing.meter.MeterTestSuiteNoDB;
 
-public class TestTimeBytesAndSampleBytes extends MeterTestSuite {
+public class TestTimeBytesAndSampleBytes extends MeterTestSuiteNoDB {
 
     @Test(groups = "fast")
     public void testGetters() throws Exception {
diff --git a/osgi-bundles/meter/src/test/java/com/ning/billing/meter/timeline/chunks/TestTimelineChunk.java b/osgi-bundles/meter/src/test/java/com/ning/billing/meter/timeline/chunks/TestTimelineChunk.java
index b31e7f1..198359e 100644
--- a/osgi-bundles/meter/src/test/java/com/ning/billing/meter/timeline/chunks/TestTimelineChunk.java
+++ b/osgi-bundles/meter/src/test/java/com/ning/billing/meter/timeline/chunks/TestTimelineChunk.java
@@ -20,11 +20,11 @@ import org.joda.time.DateTime;
 import org.testng.Assert;
 import org.testng.annotations.Test;
 
-import com.ning.billing.meter.MeterTestSuite;
+import com.ning.billing.meter.MeterTestSuiteNoDB;
 import com.ning.billing.util.clock.Clock;
 import com.ning.billing.util.clock.ClockMock;
 
-public class TestTimelineChunk extends MeterTestSuite {
+public class TestTimelineChunk extends MeterTestSuiteNoDB {
 
     private final Clock clock = new ClockMock();
 
diff --git a/osgi-bundles/meter/src/test/java/com/ning/billing/meter/timeline/codec/TestEncodedBytesAndSampleCount.java b/osgi-bundles/meter/src/test/java/com/ning/billing/meter/timeline/codec/TestEncodedBytesAndSampleCount.java
index 2453c52..1a29dc9 100644
--- a/osgi-bundles/meter/src/test/java/com/ning/billing/meter/timeline/codec/TestEncodedBytesAndSampleCount.java
+++ b/osgi-bundles/meter/src/test/java/com/ning/billing/meter/timeline/codec/TestEncodedBytesAndSampleCount.java
@@ -19,9 +19,9 @@ package com.ning.billing.meter.timeline.codec;
 import org.testng.Assert;
 import org.testng.annotations.Test;
 
-import com.ning.billing.meter.MeterTestSuite;
+import com.ning.billing.meter.MeterTestSuiteNoDB;
 
-public class TestEncodedBytesAndSampleCount extends MeterTestSuite {
+public class TestEncodedBytesAndSampleCount extends MeterTestSuiteNoDB {
 
     @Test(groups = "fast")
     public void testGetters() throws Exception {
diff --git a/osgi-bundles/meter/src/test/java/com/ning/billing/meter/timeline/codec/TestSampleCoder.java b/osgi-bundles/meter/src/test/java/com/ning/billing/meter/timeline/codec/TestSampleCoder.java
index b86c237..3a9400b 100644
--- a/osgi-bundles/meter/src/test/java/com/ning/billing/meter/timeline/codec/TestSampleCoder.java
+++ b/osgi-bundles/meter/src/test/java/com/ning/billing/meter/timeline/codec/TestSampleCoder.java
@@ -30,7 +30,7 @@ import org.joda.time.format.ISODateTimeFormat;
 import org.testng.Assert;
 import org.testng.annotations.Test;
 
-import com.ning.billing.meter.MeterTestSuite;
+import com.ning.billing.meter.MeterTestSuiteNoDB;
 import com.ning.billing.meter.timeline.consumer.TimeRangeSampleProcessor;
 import com.ning.billing.meter.timeline.samples.RepeatSample;
 import com.ning.billing.meter.timeline.samples.SampleOpcode;
@@ -44,7 +44,7 @@ import com.ning.billing.meter.timeline.util.Hex;
 
 import com.google.common.collect.ImmutableList;
 
-public class TestSampleCoder extends MeterTestSuite {
+public class TestSampleCoder extends MeterTestSuiteNoDB {
 
     private static final TimelineCoder timelineCoder = new DefaultTimelineCoder();
     private static final DateTimeFormatter dateFormatter = ISODateTimeFormat.dateTime().withZone(DateTimeZone.UTC);
diff --git a/osgi-bundles/meter/src/test/java/com/ning/billing/meter/timeline/codec/TestSampleCompression.java b/osgi-bundles/meter/src/test/java/com/ning/billing/meter/timeline/codec/TestSampleCompression.java
index eb5afa1..97cf919 100644
--- a/osgi-bundles/meter/src/test/java/com/ning/billing/meter/timeline/codec/TestSampleCompression.java
+++ b/osgi-bundles/meter/src/test/java/com/ning/billing/meter/timeline/codec/TestSampleCompression.java
@@ -23,13 +23,13 @@ import org.joda.time.DateTime;
 import org.testng.Assert;
 import org.testng.annotations.Test;
 
-import com.ning.billing.meter.MeterTestSuite;
+import com.ning.billing.meter.MeterTestSuiteNoDB;
 import com.ning.billing.meter.timeline.samples.SampleOpcode;
 import com.ning.billing.meter.timeline.samples.ScalarSample;
 import com.ning.billing.meter.timeline.times.DefaultTimelineCoder;
 import com.ning.billing.meter.timeline.times.TimelineCoder;
 
-public class TestSampleCompression extends MeterTestSuite {
+public class TestSampleCompression extends MeterTestSuiteNoDB {
 
     private static final TimelineCoder timelineCoder = new DefaultTimelineCoder();
     private static final SampleCoder sampleCoder = new DefaultSampleCoder();
diff --git a/osgi-bundles/meter/src/test/java/com/ning/billing/meter/timeline/codec/TestTimelineChunkAccumulator.java b/osgi-bundles/meter/src/test/java/com/ning/billing/meter/timeline/codec/TestTimelineChunkAccumulator.java
index 246ce96..55dc3db 100644
--- a/osgi-bundles/meter/src/test/java/com/ning/billing/meter/timeline/codec/TestTimelineChunkAccumulator.java
+++ b/osgi-bundles/meter/src/test/java/com/ning/billing/meter/timeline/codec/TestTimelineChunkAccumulator.java
@@ -23,7 +23,7 @@ import org.joda.time.DateTime;
 import org.testng.Assert;
 import org.testng.annotations.Test;
 
-import com.ning.billing.meter.MeterTestSuite;
+import com.ning.billing.meter.MeterTestSuiteNoDB;
 import com.ning.billing.meter.timeline.chunks.TimelineChunk;
 import com.ning.billing.meter.timeline.consumer.SampleProcessor;
 import com.ning.billing.meter.timeline.consumer.TimelineChunkDecoded;
@@ -33,7 +33,7 @@ import com.ning.billing.meter.timeline.times.DefaultTimelineCoder;
 import com.ning.billing.meter.timeline.times.TimelineCoder;
 import com.ning.billing.meter.timeline.times.TimelineCursor;
 
-public class TestTimelineChunkAccumulator extends MeterTestSuite {
+public class TestTimelineChunkAccumulator extends MeterTestSuiteNoDB {
 
     private static final TimelineCoder timelineCoder = new DefaultTimelineCoder();
     private static final SampleCoder sampleCoder = new DefaultSampleCoder();
diff --git a/osgi-bundles/meter/src/test/java/com/ning/billing/meter/timeline/codec/TestTimelineChunkToJson.java b/osgi-bundles/meter/src/test/java/com/ning/billing/meter/timeline/codec/TestTimelineChunkToJson.java
index d897b7b..84e0d87 100644
--- a/osgi-bundles/meter/src/test/java/com/ning/billing/meter/timeline/codec/TestTimelineChunkToJson.java
+++ b/osgi-bundles/meter/src/test/java/com/ning/billing/meter/timeline/codec/TestTimelineChunkToJson.java
@@ -28,7 +28,7 @@ import org.testng.Assert;
 import org.testng.annotations.BeforeMethod;
 import org.testng.annotations.Test;
 
-import com.ning.billing.meter.MeterTestSuite;
+import com.ning.billing.meter.MeterTestSuiteNoDB;
 import com.ning.billing.meter.timeline.chunks.TimelineChunk;
 import com.ning.billing.meter.timeline.chunks.TimelineChunksViews.Compact;
 import com.ning.billing.meter.timeline.chunks.TimelineChunksViews.Loose;
@@ -41,7 +41,7 @@ import com.fasterxml.jackson.databind.MapperFeature;
 import com.fasterxml.jackson.databind.ObjectMapper;
 import com.fasterxml.jackson.databind.node.TextNode;
 
-public class TestTimelineChunkToJson extends MeterTestSuite {
+public class TestTimelineChunkToJson extends MeterTestSuiteNoDB {
 
     private static final ObjectMapper mapper = new ObjectMapper().configure(MapperFeature.DEFAULT_VIEW_INCLUSION, false);
     private static final TimelineCoder timelineCoder = new DefaultTimelineCoder();
diff --git a/osgi-bundles/meter/src/test/java/com/ning/billing/meter/timeline/consumer/filter/TestDecimatingFilter.java b/osgi-bundles/meter/src/test/java/com/ning/billing/meter/timeline/consumer/filter/TestDecimatingFilter.java
index a5d6954..e7cb61c 100644
--- a/osgi-bundles/meter/src/test/java/com/ning/billing/meter/timeline/consumer/filter/TestDecimatingFilter.java
+++ b/osgi-bundles/meter/src/test/java/com/ning/billing/meter/timeline/consumer/filter/TestDecimatingFilter.java
@@ -24,12 +24,12 @@ import org.skife.config.TimeSpan;
 import org.testng.Assert;
 import org.testng.annotations.Test;
 
-import com.ning.billing.meter.MeterTestSuite;
+import com.ning.billing.meter.MeterTestSuiteNoDB;
 import com.ning.billing.meter.api.DecimationMode;
 import com.ning.billing.meter.timeline.consumer.TimeRangeSampleProcessor;
 import com.ning.billing.meter.timeline.samples.SampleOpcode;
 
-public class TestDecimatingFilter extends MeterTestSuite {
+public class TestDecimatingFilter extends MeterTestSuiteNoDB {
 
     @Test(groups = "fast")
     public void testBasicFilterOperations() throws Exception {
diff --git a/osgi-bundles/meter/src/test/java/com/ning/billing/meter/timeline/consumer/TestAccumulatorSampleConsumer.java b/osgi-bundles/meter/src/test/java/com/ning/billing/meter/timeline/consumer/TestAccumulatorSampleConsumer.java
index 2aa9513..a0fa557 100644
--- a/osgi-bundles/meter/src/test/java/com/ning/billing/meter/timeline/consumer/TestAccumulatorSampleConsumer.java
+++ b/osgi-bundles/meter/src/test/java/com/ning/billing/meter/timeline/consumer/TestAccumulatorSampleConsumer.java
@@ -21,12 +21,12 @@ import org.joda.time.DateTimeZone;
 import org.testng.Assert;
 import org.testng.annotations.Test;
 
-import com.ning.billing.meter.MeterTestSuite;
+import com.ning.billing.meter.MeterTestSuiteNoDB;
 import com.ning.billing.meter.api.TimeAggregationMode;
 import com.ning.billing.meter.timeline.samples.SampleOpcode;
 import com.ning.billing.util.clock.ClockMock;
 
-public class TestAccumulatorSampleConsumer extends MeterTestSuite {
+public class TestAccumulatorSampleConsumer extends MeterTestSuiteNoDB {
 
     private final ClockMock clock = new ClockMock();
 
diff --git a/osgi-bundles/meter/src/test/java/com/ning/billing/meter/timeline/consumer/TestCSVConsumer.java b/osgi-bundles/meter/src/test/java/com/ning/billing/meter/timeline/consumer/TestCSVConsumer.java
index f8718f4..ad612b6 100644
--- a/osgi-bundles/meter/src/test/java/com/ning/billing/meter/timeline/consumer/TestCSVConsumer.java
+++ b/osgi-bundles/meter/src/test/java/com/ning/billing/meter/timeline/consumer/TestCSVConsumer.java
@@ -26,7 +26,7 @@ import org.joda.time.DateTimeZone;
 import org.testng.Assert;
 import org.testng.annotations.Test;
 
-import com.ning.billing.meter.MeterTestSuite;
+import com.ning.billing.meter.MeterTestSuiteNoDB;
 import com.ning.billing.meter.timeline.chunks.TimelineChunk;
 import com.ning.billing.meter.timeline.codec.DefaultSampleCoder;
 import com.ning.billing.meter.timeline.codec.SampleCoder;
@@ -35,7 +35,7 @@ import com.ning.billing.meter.timeline.samples.ScalarSample;
 import com.ning.billing.meter.timeline.times.DefaultTimelineCoder;
 import com.ning.billing.meter.timeline.times.TimelineCoder;
 
-public class TestCSVConsumer extends MeterTestSuite {
+public class TestCSVConsumer extends MeterTestSuiteNoDB {
 
     private static final int HOST_ID = 1242;
     private static final int SAMPLE_KIND_ID = 12;
diff --git a/osgi-bundles/meter/src/test/java/com/ning/billing/meter/timeline/metrics/TestSamplesForMetricAndSource.java b/osgi-bundles/meter/src/test/java/com/ning/billing/meter/timeline/metrics/TestSamplesForMetricAndSource.java
index 3313e46..48e164a 100644
--- a/osgi-bundles/meter/src/test/java/com/ning/billing/meter/timeline/metrics/TestSamplesForMetricAndSource.java
+++ b/osgi-bundles/meter/src/test/java/com/ning/billing/meter/timeline/metrics/TestSamplesForMetricAndSource.java
@@ -19,11 +19,11 @@ package com.ning.billing.meter.timeline.metrics;
 import org.testng.Assert;
 import org.testng.annotations.Test;
 
-import com.ning.billing.meter.MeterTestSuite;
+import com.ning.billing.meter.MeterTestSuiteNoDB;
 
 import com.fasterxml.jackson.databind.ObjectMapper;
 
-public class TestSamplesForMetricAndSource extends MeterTestSuite {
+public class TestSamplesForMetricAndSource extends MeterTestSuiteNoDB {
 
     @Test(groups = "fast")
     public void testMapping() throws Exception {
diff --git a/osgi-bundles/meter/src/test/java/com/ning/billing/meter/timeline/persistent/TestFileBackedBuffer.java b/osgi-bundles/meter/src/test/java/com/ning/billing/meter/timeline/persistent/TestFileBackedBuffer.java
index d6a789c..23e708a 100644
--- a/osgi-bundles/meter/src/test/java/com/ning/billing/meter/timeline/persistent/TestFileBackedBuffer.java
+++ b/osgi-bundles/meter/src/test/java/com/ning/billing/meter/timeline/persistent/TestFileBackedBuffer.java
@@ -28,14 +28,13 @@ import org.joda.time.DateTime;
 import org.joda.time.DateTimeZone;
 import org.mockito.Mockito;
 import org.skife.config.ConfigurationObjectFactory;
-import org.skife.jdbi.v2.DBI;
 import org.slf4j.Logger;
 import org.slf4j.LoggerFactory;
 import org.testng.Assert;
 import org.testng.annotations.BeforeMethod;
 import org.testng.annotations.Test;
 
-import com.ning.billing.meter.MeterTestSuite;
+import com.ning.billing.meter.MeterTestSuiteNoDB;
 import com.ning.billing.meter.timeline.BackgroundDBChunkWriter;
 import com.ning.billing.meter.timeline.MockTimelineDao;
 import com.ning.billing.meter.timeline.TimelineEventHandler;
@@ -52,7 +51,7 @@ import com.ning.billing.util.dao.NonEntityDao;
 
 import com.google.common.collect.ImmutableMap;
 
-public class TestFileBackedBuffer extends MeterTestSuite {
+public class TestFileBackedBuffer extends MeterTestSuiteNoDB {
 
     private static final Logger log = LoggerFactory.getLogger(TestFileBackedBuffer.class);
 
diff --git a/osgi-bundles/meter/src/test/java/com/ning/billing/meter/timeline/persistent/TestReplayer.java b/osgi-bundles/meter/src/test/java/com/ning/billing/meter/timeline/persistent/TestReplayer.java
index 1953e05..cc51213 100644
--- a/osgi-bundles/meter/src/test/java/com/ning/billing/meter/timeline/persistent/TestReplayer.java
+++ b/osgi-bundles/meter/src/test/java/com/ning/billing/meter/timeline/persistent/TestReplayer.java
@@ -24,14 +24,14 @@ import java.util.List;
 import org.testng.Assert;
 import org.testng.annotations.Test;
 
-import com.ning.billing.meter.MeterTestSuite;
+import com.ning.billing.meter.MeterTestSuiteNoDB;
 import com.ning.billing.meter.timeline.sources.SourceSamplesForTimestamp;
 
 import com.google.common.base.Function;
 import com.google.common.collect.ImmutableList;
 import com.google.common.collect.Lists;
 
-public class TestReplayer extends MeterTestSuite {
+public class TestReplayer extends MeterTestSuiteNoDB {
 
     private static final File basePath = new File(System.getProperty("java.io.tmpdir"), "TestReplayer-" + System.currentTimeMillis());
 
diff --git a/osgi-bundles/meter/src/test/java/com/ning/billing/meter/timeline/persistent/TestSamplesReplayer.java b/osgi-bundles/meter/src/test/java/com/ning/billing/meter/timeline/persistent/TestSamplesReplayer.java
index 75016d1..39fe39c 100644
--- a/osgi-bundles/meter/src/test/java/com/ning/billing/meter/timeline/persistent/TestSamplesReplayer.java
+++ b/osgi-bundles/meter/src/test/java/com/ning/billing/meter/timeline/persistent/TestSamplesReplayer.java
@@ -24,12 +24,11 @@ import java.util.Map;
 import org.joda.time.DateTime;
 import org.joda.time.DateTimeZone;
 import org.mockito.Mockito;
-import org.skife.jdbi.v2.DBI;
 import org.testng.Assert;
 import org.testng.annotations.BeforeMethod;
 import org.testng.annotations.Test;
 
-import com.ning.billing.meter.MeterTestSuite;
+import com.ning.billing.meter.MeterTestSuiteNoDB;
 import com.ning.billing.meter.timeline.MockTimelineDao;
 import com.ning.billing.meter.timeline.TimelineSourceEventAccumulator;
 import com.ning.billing.meter.timeline.chunks.TimelineChunk;
@@ -40,7 +39,6 @@ import com.ning.billing.meter.timeline.samples.ScalarSample;
 import com.ning.billing.meter.timeline.sources.SourceSamplesForTimestamp;
 import com.ning.billing.meter.timeline.times.DefaultTimelineCoder;
 import com.ning.billing.meter.timeline.times.TimelineCoder;
-import com.ning.billing.util.cache.CacheController;
 import com.ning.billing.util.cache.CacheControllerDispatcher;
 import com.ning.billing.util.callcontext.InternalCallContextFactory;
 import com.ning.billing.util.clock.ClockMock;
@@ -49,7 +47,7 @@ import com.ning.billing.util.dao.NonEntityDao;
 import com.google.common.collect.ImmutableMap;
 
 // Lightweight version of TestFileBackedBuffer
-public class TestSamplesReplayer extends MeterTestSuite {
+public class TestSamplesReplayer extends MeterTestSuiteNoDB {
 
     // Total space: 255 * 3 = 765 bytes
     private static final int NB_EVENTS = 3;
diff --git a/osgi-bundles/meter/src/test/java/com/ning/billing/meter/timeline/samples/TestNullSample.java b/osgi-bundles/meter/src/test/java/com/ning/billing/meter/timeline/samples/TestNullSample.java
index 103f3d4..a5eaf36 100644
--- a/osgi-bundles/meter/src/test/java/com/ning/billing/meter/timeline/samples/TestNullSample.java
+++ b/osgi-bundles/meter/src/test/java/com/ning/billing/meter/timeline/samples/TestNullSample.java
@@ -19,9 +19,9 @@ package com.ning.billing.meter.timeline.samples;
 import org.testng.Assert;
 import org.testng.annotations.Test;
 
-import com.ning.billing.meter.MeterTestSuite;
+import com.ning.billing.meter.MeterTestSuiteNoDB;
 
-public class TestNullSample extends MeterTestSuite {
+public class TestNullSample extends MeterTestSuiteNoDB {
 
     @Test(groups = "fast")
     public void testConstructor() throws Exception {
diff --git a/osgi-bundles/meter/src/test/java/com/ning/billing/meter/timeline/samples/TestRepeatSample.java b/osgi-bundles/meter/src/test/java/com/ning/billing/meter/timeline/samples/TestRepeatSample.java
index d7ce499..deed328 100644
--- a/osgi-bundles/meter/src/test/java/com/ning/billing/meter/timeline/samples/TestRepeatSample.java
+++ b/osgi-bundles/meter/src/test/java/com/ning/billing/meter/timeline/samples/TestRepeatSample.java
@@ -19,9 +19,9 @@ package com.ning.billing.meter.timeline.samples;
 import org.testng.Assert;
 import org.testng.annotations.Test;
 
-import com.ning.billing.meter.MeterTestSuite;
+import com.ning.billing.meter.MeterTestSuiteNoDB;
 
-public class TestRepeatSample extends MeterTestSuite {
+public class TestRepeatSample extends MeterTestSuiteNoDB {
 
     @Test(groups = "fast")
     public void testGetters() throws Exception {
diff --git a/osgi-bundles/meter/src/test/java/com/ning/billing/meter/timeline/samples/TestSampleOpcode.java b/osgi-bundles/meter/src/test/java/com/ning/billing/meter/timeline/samples/TestSampleOpcode.java
index d8eae9a..2c7ca09 100644
--- a/osgi-bundles/meter/src/test/java/com/ning/billing/meter/timeline/samples/TestSampleOpcode.java
+++ b/osgi-bundles/meter/src/test/java/com/ning/billing/meter/timeline/samples/TestSampleOpcode.java
@@ -19,9 +19,9 @@ package com.ning.billing.meter.timeline.samples;
 import org.testng.Assert;
 import org.testng.annotations.Test;
 
-import com.ning.billing.meter.MeterTestSuite;
+import com.ning.billing.meter.MeterTestSuiteNoDB;
 
-public class TestSampleOpcode extends MeterTestSuite {
+public class TestSampleOpcode extends MeterTestSuiteNoDB {
 
     @Test(groups = "fast")
     public void testGetKnownOpcodeFromIndex() throws Exception {
diff --git a/osgi-bundles/meter/src/test/java/com/ning/billing/meter/timeline/samples/TestScalarSample.java b/osgi-bundles/meter/src/test/java/com/ning/billing/meter/timeline/samples/TestScalarSample.java
index 0002c42..0e0c3d1 100644
--- a/osgi-bundles/meter/src/test/java/com/ning/billing/meter/timeline/samples/TestScalarSample.java
+++ b/osgi-bundles/meter/src/test/java/com/ning/billing/meter/timeline/samples/TestScalarSample.java
@@ -19,9 +19,9 @@ package com.ning.billing.meter.timeline.samples;
 import org.testng.Assert;
 import org.testng.annotations.Test;
 
-import com.ning.billing.meter.MeterTestSuite;
+import com.ning.billing.meter.MeterTestSuiteNoDB;
 
-public class TestScalarSample extends MeterTestSuite {
+public class TestScalarSample extends MeterTestSuiteNoDB {
 
     @Test(groups = "fast")
     public void testGetters() throws Exception {
diff --git a/osgi-bundles/meter/src/test/java/com/ning/billing/meter/timeline/TestDateTimeUtils.java b/osgi-bundles/meter/src/test/java/com/ning/billing/meter/timeline/TestDateTimeUtils.java
index 893e04a..a309868 100644
--- a/osgi-bundles/meter/src/test/java/com/ning/billing/meter/timeline/TestDateTimeUtils.java
+++ b/osgi-bundles/meter/src/test/java/com/ning/billing/meter/timeline/TestDateTimeUtils.java
@@ -21,12 +21,12 @@ import org.joda.time.Seconds;
 import org.testng.Assert;
 import org.testng.annotations.Test;
 
-import com.ning.billing.meter.MeterTestSuite;
+import com.ning.billing.meter.MeterTestSuiteNoDB;
 import com.ning.billing.meter.timeline.util.DateTimeUtils;
 import com.ning.billing.util.clock.Clock;
 import com.ning.billing.util.clock.ClockMock;
 
-public class TestDateTimeUtils extends MeterTestSuite {
+public class TestDateTimeUtils extends MeterTestSuiteNoDB {
 
     private final Clock clock = new ClockMock();
 
diff --git a/osgi-bundles/meter/src/test/java/com/ning/billing/meter/timeline/TestInMemoryEventHandler.java b/osgi-bundles/meter/src/test/java/com/ning/billing/meter/timeline/TestInMemoryEventHandler.java
index ddd884d..813bba1 100644
--- a/osgi-bundles/meter/src/test/java/com/ning/billing/meter/timeline/TestInMemoryEventHandler.java
+++ b/osgi-bundles/meter/src/test/java/com/ning/billing/meter/timeline/TestInMemoryEventHandler.java
@@ -24,12 +24,11 @@ import org.joda.time.DateTime;
 import org.joda.time.DateTimeZone;
 import org.mockito.Mockito;
 import org.skife.config.ConfigurationObjectFactory;
-import org.skife.jdbi.v2.DBI;
 import org.testng.Assert;
 import org.testng.annotations.BeforeMethod;
 import org.testng.annotations.Test;
 
-import com.ning.billing.meter.MeterTestSuite;
+import com.ning.billing.meter.MeterTestSuiteNoDB;
 import com.ning.billing.meter.timeline.codec.DefaultSampleCoder;
 import com.ning.billing.meter.timeline.codec.SampleCoder;
 import com.ning.billing.meter.timeline.persistent.FileBackedBuffer;
@@ -44,7 +43,7 @@ import com.ning.billing.util.dao.NonEntityDao;
 
 import com.google.common.collect.ImmutableMap;
 
-public class TestInMemoryEventHandler extends MeterTestSuite {
+public class TestInMemoryEventHandler extends MeterTestSuiteNoDB {
 
     private static final UUID HOST_UUID = UUID.randomUUID();
     private static final String EVENT_TYPE = "eventType";
diff --git a/osgi-bundles/meter/src/test/java/com/ning/billing/meter/timeline/TestTimelineEventHandler.java b/osgi-bundles/meter/src/test/java/com/ning/billing/meter/timeline/TestTimelineEventHandler.java
index 4ac3c31..3bd46a4 100644
--- a/osgi-bundles/meter/src/test/java/com/ning/billing/meter/timeline/TestTimelineEventHandler.java
+++ b/osgi-bundles/meter/src/test/java/com/ning/billing/meter/timeline/TestTimelineEventHandler.java
@@ -24,11 +24,10 @@ import java.util.Map;
 import org.joda.time.DateTime;
 import org.mockito.Mockito;
 import org.skife.config.ConfigurationObjectFactory;
-import org.skife.jdbi.v2.DBI;
 import org.testng.Assert;
 import org.testng.annotations.Test;
 
-import com.ning.billing.meter.MeterTestSuite;
+import com.ning.billing.meter.MeterTestSuiteNoDB;
 import com.ning.billing.meter.timeline.codec.DefaultSampleCoder;
 import com.ning.billing.meter.timeline.codec.SampleCoder;
 import com.ning.billing.meter.timeline.persistent.TimelineDao;
@@ -44,7 +43,7 @@ import com.ning.billing.util.dao.NonEntityDao;
 
 import com.google.common.collect.ImmutableMap;
 
-public class TestTimelineEventHandler extends MeterTestSuite {
+public class TestTimelineEventHandler extends MeterTestSuiteNoDB {
 
     private static final File basePath = new File(System.getProperty("java.io.tmpdir"), "TestTimelineEventHandler-" + System.currentTimeMillis());
     private static final String EVENT_TYPE = "eventType";
diff --git a/osgi-bundles/meter/src/test/java/com/ning/billing/meter/timeline/TestTimelineSourceEventAccumulator.java b/osgi-bundles/meter/src/test/java/com/ning/billing/meter/timeline/TestTimelineSourceEventAccumulator.java
index d676171..cc9947c 100644
--- a/osgi-bundles/meter/src/test/java/com/ning/billing/meter/timeline/TestTimelineSourceEventAccumulator.java
+++ b/osgi-bundles/meter/src/test/java/com/ning/billing/meter/timeline/TestTimelineSourceEventAccumulator.java
@@ -23,11 +23,10 @@ import java.util.Map;
 import org.joda.time.DateTime;
 import org.joda.time.DateTimeZone;
 import org.mockito.Mockito;
-import org.skife.jdbi.v2.DBI;
 import org.testng.Assert;
 import org.testng.annotations.Test;
 
-import com.ning.billing.meter.MeterTestSuite;
+import com.ning.billing.meter.MeterTestSuiteNoDB;
 import com.ning.billing.meter.timeline.codec.DefaultSampleCoder;
 import com.ning.billing.meter.timeline.codec.SampleCoder;
 import com.ning.billing.meter.timeline.samples.SampleOpcode;
@@ -40,7 +39,7 @@ import com.ning.billing.util.callcontext.InternalCallContextFactory;
 import com.ning.billing.util.clock.ClockMock;
 import com.ning.billing.util.dao.NonEntityDao;
 
-public class TestTimelineSourceEventAccumulator extends MeterTestSuite {
+public class TestTimelineSourceEventAccumulator extends MeterTestSuiteNoDB {
 
     private static final int HOST_ID = 1;
     private static final int EVENT_CATEGORY_ID = 123;
diff --git a/osgi-bundles/meter/src/test/java/com/ning/billing/meter/timeline/times/TestDefaultTimelineCoder.java b/osgi-bundles/meter/src/test/java/com/ning/billing/meter/timeline/times/TestDefaultTimelineCoder.java
index 4b4e813..3bf8d4a 100644
--- a/osgi-bundles/meter/src/test/java/com/ning/billing/meter/timeline/times/TestDefaultTimelineCoder.java
+++ b/osgi-bundles/meter/src/test/java/com/ning/billing/meter/timeline/times/TestDefaultTimelineCoder.java
@@ -26,11 +26,11 @@ import org.joda.time.DateTime;
 import org.testng.Assert;
 import org.testng.annotations.Test;
 
-import com.ning.billing.meter.MeterTestSuite;
+import com.ning.billing.meter.MeterTestSuiteNoDB;
 import com.ning.billing.meter.timeline.util.DateTimeUtils;
 import com.ning.billing.meter.timeline.util.Hex;
 
-public class TestDefaultTimelineCoder extends MeterTestSuite {
+public class TestDefaultTimelineCoder extends MeterTestSuiteNoDB {
 
     private static final TimelineCoder timelineCoder = new DefaultTimelineCoder();
 
diff --git a/osgi-bundles/meter/src/test/java/com/ning/billing/meter/timeline/times/TestTimelineOpcode.java b/osgi-bundles/meter/src/test/java/com/ning/billing/meter/timeline/times/TestTimelineOpcode.java
index 726e2e4..b48b5ac 100644
--- a/osgi-bundles/meter/src/test/java/com/ning/billing/meter/timeline/times/TestTimelineOpcode.java
+++ b/osgi-bundles/meter/src/test/java/com/ning/billing/meter/timeline/times/TestTimelineOpcode.java
@@ -19,9 +19,9 @@ package com.ning.billing.meter.timeline.times;
 import org.testng.Assert;
 import org.testng.annotations.Test;
 
-import com.ning.billing.meter.MeterTestSuite;
+import com.ning.billing.meter.MeterTestSuiteNoDB;
 
-public class TestTimelineOpcode extends MeterTestSuite {
+public class TestTimelineOpcode extends MeterTestSuiteNoDB {
 
     @Test(groups = "fast")
     public void testMaxDeltaTime() throws Exception {