Переглянути джерело

add embedded redis support

tags/2.0.1
Jonathan Cobb 3 роки тому
джерело
коміт
a6c6b31825
2 змінених файлів з 45 додано та 0 видалено
  1. +14
    -0
      wizard-server-test/pom.xml
  2. +31
    -0
      wizard-server-test/src/main/java/org/cobbzilla/wizardtest/resources/ApiModelTestBase.java

+ 14
- 0
wizard-server-test/pom.xml Переглянути файл

@@ -29,6 +29,20 @@ This code is available under the Apache License, version 2: http://www.apache.or
<version>${junit.version}</version>
</dependency>

<dependency>
<groupId>com.github.kstyrc</groupId>
<artifactId>embedded-redis</artifactId>
<version>0.6</version>
<!-- <scope>test</scope>-->
</dependency>

<dependency>
<groupId>ru.yandex.qatools.embed</groupId>
<artifactId>postgresql-embedded</artifactId>
<version>2.10</version>
<!-- <scope>test</scope>-->
</dependency>

<dependency>
<groupId>org.cobbzilla</groupId>
<artifactId>restex</artifactId>


+ 31
- 0
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<C extends PgRestServerConfiguration, S ex

@Before public void resetSystemClock() { setSystemTimeOffset(0); }

protected boolean enableEmbeddedRedis () { return true; }
protected boolean enableEmbeddedPostgreSQL () { return true; }

@Getter private Integer redisPort = null;
private RedisServer redisServer = null;

@Override public void beforeStart(RestServer<C> 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<C> server) {
super.onStart(server);
try {
@@ -82,6 +107,12 @@ public abstract class ApiModelTestBase<C extends PgRestServerConfiguration, S ex
}
}

@Override public void onStop(RestServer<C> server) {
if (redisServer != null) {
redisServer.stop();
}
}

public boolean doTruncateDb() { return true; }

public static final String SETUP_LOCK = ".lock";


Завантаження…
Відмінити
Зберегти