diff --git a/wizard-server-test/pom.xml b/wizard-server-test/pom.xml index 0251b28..64bfb86 100644 --- a/wizard-server-test/pom.xml +++ b/wizard-server-test/pom.xml @@ -29,6 +29,20 @@ This code is available under the Apache License, version 2: http://www.apache.or ${junit.version} + + com.github.kstyrc + embedded-redis + 0.6 + + + + + ru.yandex.qatools.embed + postgresql-embedded + 2.10 + + + org.cobbzilla restex diff --git a/wizard-server-test/src/main/java/org/cobbzilla/wizardtest/resources/ApiModelTestBase.java b/wizard-server-test/src/main/java/org/cobbzilla/wizardtest/resources/ApiModelTestBase.java index eae9e8c..fe03417 100644 --- a/wizard-server-test/src/main/java/org/cobbzilla/wizardtest/resources/ApiModelTestBase.java +++ b/wizard-server-test/src/main/java/org/cobbzilla/wizardtest/resources/ApiModelTestBase.java @@ -6,6 +6,7 @@ import lombok.extern.slf4j.Slf4j; import org.cobbzilla.util.collection.SingletonList; import org.cobbzilla.util.io.FileUtil; import org.cobbzilla.util.jdbc.UncheckedSqlException; +import org.cobbzilla.util.network.PortPicker; import org.cobbzilla.util.system.Sleep; import org.cobbzilla.wizard.client.ApiClientBase; import org.cobbzilla.wizard.client.script.ApiRunner; @@ -20,6 +21,7 @@ import org.cobbzilla.wizard.server.config.HasDatabaseConfiguration; import org.cobbzilla.wizard.server.config.PgRestServerConfiguration; import org.cobbzilla.wizard.server.config.RestServerConfiguration; import org.junit.Before; +import redis.embedded.RedisServer; import java.io.File; import java.io.IOException; @@ -29,12 +31,14 @@ import java.util.List; import java.util.Map; import java.util.concurrent.ConcurrentHashMap; import java.util.concurrent.TimeUnit; +import java.util.concurrent.atomic.AtomicInteger; import java.util.concurrent.atomic.AtomicReference; import static java.lang.System.identityHashCode; import static org.apache.commons.lang3.RandomStringUtils.randomAlphanumeric; import static org.cobbzilla.util.daemon.ZillaRuntime.*; import static org.cobbzilla.util.io.FileUtil.*; +import static org.cobbzilla.util.network.PortPicker.pickOrDie; import static org.cobbzilla.util.reflect.ReflectionUtil.instantiate; import static org.cobbzilla.util.system.CommandShell.execScript; import static org.cobbzilla.wizard.model.entityconfig.ModelSetup.modelHash; @@ -73,6 +77,27 @@ public abstract class ApiModelTestBase server) { + if (enableEmbeddedRedis()) { + if (redisPort == null) { + redisPort = pickOrDie(); + try { + redisServer = new RedisServer(redisPort); + redisServer.start(); + } catch (Exception e) { + die("beforeStart: error creating/starting RedisServer on port " + redisPort + ": " + shortError(e), e); + } + } + } + super.beforeStart(server); + } + @Override public void onStart(RestServer server) { super.onStart(server); try { @@ -82,6 +107,12 @@ public abstract class ApiModelTestBase server) { + if (redisServer != null) { + redisServer.stop(); + } + } + public boolean doTruncateDb() { return true; } public static final String SETUP_LOCK = ".lock";