summaryrefslogtreecommitdiff
path: root/src/test
diff options
context:
space:
mode:
authorBrian S. O'Neill <bronee@gmail.com>2006-10-14 18:34:41 +0000
committerBrian S. O'Neill <bronee@gmail.com>2006-10-14 18:34:41 +0000
commit12ef5759af48817825524724f4690962156c8179 (patch)
tree26a54ea52022e7d12e55df5b843b646ac9a55b7e /src/test
parent499a85ff2069b30997be10aa651af16583d39ee4 (diff)
Incorporated acceptance tests.
Diffstat (limited to 'src/test')
-rw-r--r--src/test/java/com/amazon/carbonado/TestStorables.java24
-rw-r--r--src/test/java/com/amazon/carbonado/TestUtilities.java13
2 files changed, 30 insertions, 7 deletions
diff --git a/src/test/java/com/amazon/carbonado/TestStorables.java b/src/test/java/com/amazon/carbonado/TestStorables.java
index 90048d7..f03fc0f 100644
--- a/src/test/java/com/amazon/carbonado/TestStorables.java
+++ b/src/test/java/com/amazon/carbonado/TestStorables.java
@@ -22,6 +22,7 @@ import java.util.Comparator;
import java.util.List;
import junit.framework.TestCase;
+import junit.framework.TestSuite;
import org.joda.time.DateTime;
import org.joda.time.DateTimeZone;
@@ -52,12 +53,12 @@ import com.amazon.carbonado.stored.*;
/**
* Runs an extensive set of acceptance tests for a repository. Must be
- * subclassed to specify a repository to use.
+ * subclassed to change the repository to use.
*
* @author Don Schneider
* @author Brian S O'Neill
*/
-public abstract class TestStorables extends TestCase {
+public class TestStorables extends TestCase {
public static final long sSetId = 0x1L << 0; // 0x0001
public static final long sGetStringProp = 0x1L << 1; // 0x0002
@@ -111,6 +112,14 @@ public abstract class TestStorables extends TestCase {
private Repository mRepository;
private static int s_Ids = 0;
+ public static void main(String[] args) {
+ junit.textui.TestRunner.run(suite());
+ }
+
+ public static TestSuite suite() {
+ return new TestSuite(TestStorables.class);
+ }
+
public TestStorables(String s) {
super(s);
}
@@ -139,10 +148,11 @@ public abstract class TestStorables extends TestCase {
}
/**
- * Subclasses must implement this method to specify a repository.
+ * Subclasses may override this method to change the repository.
*/
- protected abstract Repository newRepository(boolean isMaster)
- throws RepositoryException;
+ protected Repository buildRepository(boolean isMaster) throws RepositoryException {
+ return TestUtilities.buildTempRepository(isMaster);
+ }
/**
* provide subsequent access to the repository so the tests can do fancy things if
@@ -151,7 +161,7 @@ public abstract class TestStorables extends TestCase {
*/
protected Repository getRepository() throws RepositoryException {
if (mRepository == null) {
- mRepository = newRepository(true);
+ mRepository = buildRepository(true);
}
return mRepository;
}
@@ -970,7 +980,7 @@ public abstract class TestStorables extends TestCase {
public void test_versioningDisabled() throws Exception {
// Make sure repository works properly when configured as non-master.
- Repository repo = newRepository(false);
+ Repository repo = buildRepository(false);
Storage<StorableVersioned> storage = repo.storageFor(StorableVersioned.class);
StorableVersioned s = storage.prepare();
diff --git a/src/test/java/com/amazon/carbonado/TestUtilities.java b/src/test/java/com/amazon/carbonado/TestUtilities.java
index 65b4a13..4132ac8 100644
--- a/src/test/java/com/amazon/carbonado/TestUtilities.java
+++ b/src/test/java/com/amazon/carbonado/TestUtilities.java
@@ -65,17 +65,30 @@ public class TestUtilities {
return buildTempRepository("test");
}
+ public static Repository buildTempRepository(boolean isMaster) {
+ return buildTempRepository("test", isMaster);
+ }
+
public static Repository buildTempRepository(String name) {
return buildTempRepository(name, DEFAULT_CAPACITY);
}
+ public static Repository buildTempRepository(String name, boolean isMaster) {
+ return buildTempRepository(name, DEFAULT_CAPACITY, isMaster);
+ }
+
public static Repository buildTempRepository(String name, int capacity) {
+ return buildTempRepository(name, capacity, true);
+ }
+
+ public static Repository buildTempRepository(String name, int capacity, boolean isMaster) {
BDBRepositoryBuilder builder = new BDBRepositoryBuilder();
builder.setProduct("JE");
builder.setName(name);
builder.setTransactionNoSync(true);
builder.setCacheSize(capacity);
builder.setLogInMemory(true);
+ builder.setMaster(isMaster);
if (sTempRepoDir == null) {
sTempRepoDir = makeTestDirectoryString(name);