Allow to execute tests against a remote server.

Update Maven pom to use "redis-host" and "redis-port" env. properties.
Default values point to localhost:6379.

Tests updated to use this properties and also defaulted to localhost:6379.
This commit is contained in:
Yaourt
2010-09-13 10:55:58 +02:00
parent 9211335f0d
commit d61f4d79d8
5 changed files with 185 additions and 96 deletions

17
pom.xml
View File

@@ -12,6 +12,12 @@
<scope>compile</scope> <scope>compile</scope>
</dependency> </dependency>
</dependencies> </dependencies>
<properties>
<redis-host>localhost</redis-host>
<redis-port>6379</redis-port>
</properties>
<build> <build>
<plugins> <plugins>
<plugin> <plugin>
@@ -23,6 +29,17 @@
<target>1.6</target> <target>1.6</target>
</configuration> </configuration>
</plugin> </plugin>
<plugin>
<groupId>org.apache.maven.plugins</groupId>
<artifactId>maven-surefire-plugin</artifactId>
<version>2.6</version>
<configuration>
<systemPropertyVariables>
<redis-host>${redis-host}</redis-host>
<redis-port>${redis-port}</redis-port>
</systemPropertyVariables>
</configuration>
</plugin>
</plugins> </plugins>
</build> </build>
</project> </project>

View File

@@ -4,6 +4,7 @@ import java.io.IOException;
import java.util.concurrent.TimeoutException; import java.util.concurrent.TimeoutException;
import org.junit.Assert; import org.junit.Assert;
import org.junit.Before;
import org.junit.Test; import org.junit.Test;
import redis.clients.jedis.Jedis; import redis.clients.jedis.Jedis;
@@ -11,83 +12,101 @@ import redis.clients.jedis.JedisPool;
import redis.clients.jedis.Protocol; import redis.clients.jedis.Protocol;
public class JedisPoolTest extends Assert { public class JedisPoolTest extends Assert {
@Test private static String host = "localhost";
public void checkConnections() throws TimeoutException { private static int port = Protocol.DEFAULT_PORT;
JedisPool pool = new JedisPool("localhost", Protocol.DEFAULT_PORT, 2000);
pool.setResourcesNumber(10);
pool.init();
Jedis jedis = pool.getResource(200); static {
jedis.auth("foobared"); final String envHost = System.getProperty("redis-host");
jedis.set("foo", "bar"); final String envPort = System.getProperty("redis-port");
assertEquals("bar", jedis.get("foo")); if (null != envHost && 0 < envHost.length()) {
pool.returnResource(jedis); host = envHost;
pool.destroy(); }
} if (null != envPort && 0 < envPort.length()) {
try {
port = Integer.parseInt(envPort);
} catch (final NumberFormatException e) {}
}
@Test System.out.println("Redis host to be used : " + host + ":" + port);
public void checkConnectionWithDefaultPort() throws TimeoutException { }
JedisPool pool = new JedisPool("localhost");
pool.setResourcesNumber(10);
pool.init();
Jedis jedis = pool.getResource(200); @Test
jedis.auth("foobared"); public void checkConnections() throws TimeoutException {
jedis.set("foo", "bar"); JedisPool pool = new JedisPool(host, port, 2000);
assertEquals("bar", jedis.get("foo")); pool.setResourcesNumber(10);
pool.returnResource(jedis); pool.init();
pool.destroy();
}
@Test Jedis jedis = pool.getResource(200);
public void checkJedisIsReusedWhenReturned() throws TimeoutException { jedis.auth("foobared");
JedisPool pool = new JedisPool("localhost"); jedis.set("foo", "bar");
pool.setResourcesNumber(1); assertEquals("bar", jedis.get("foo"));
pool.init(); pool.returnResource(jedis);
pool.destroy();
}
Jedis jedis = pool.getResource(200); @Test
jedis.auth("foobared"); public void checkConnectionWithDefaultPort() throws TimeoutException {
jedis.set("foo", "0"); JedisPool pool = new JedisPool(host, port);
pool.returnResource(jedis); pool.setResourcesNumber(10);
pool.init();
jedis = pool.getResource(200); Jedis jedis = pool.getResource(200);
jedis.auth("foobared"); jedis.auth("foobared");
jedis.incr("foo"); jedis.set("foo", "bar");
pool.returnResource(jedis); assertEquals("bar", jedis.get("foo"));
pool.destroy(); pool.returnResource(jedis);
} pool.destroy();
}
@Test @Test
public void checkPoolRepairedWhenJedisIsBroken() throws TimeoutException, public void checkJedisIsReusedWhenReturned() throws TimeoutException {
IOException { JedisPool pool = new JedisPool(host, port);
JedisPool pool = new JedisPool("localhost"); pool.setResourcesNumber(1);
pool.setResourcesNumber(1); pool.init();
pool.init();
Jedis jedis = pool.getResource(200); Jedis jedis = pool.getResource(200);
jedis.auth("foobared"); jedis.auth("foobared");
jedis.quit(); jedis.set("foo", "0");
pool.returnBrokenResource(jedis); pool.returnResource(jedis);
jedis = pool.getResource(200); jedis = pool.getResource(200);
jedis.auth("foobared"); jedis.auth("foobared");
jedis.incr("foo"); jedis.incr("foo");
pool.returnResource(jedis); pool.returnResource(jedis);
pool.destroy(); pool.destroy();
} }
@Test(expected = TimeoutException.class) @Test
public void checkPoolOverflow() throws TimeoutException { public void checkPoolRepairedWhenJedisIsBroken() throws TimeoutException,
JedisPool pool = new JedisPool("localhost"); IOException {
pool.setResourcesNumber(1); JedisPool pool = new JedisPool(host, port);
pool.init(); pool.setResourcesNumber(1);
pool.init();
Jedis jedis = pool.getResource(200); Jedis jedis = pool.getResource(200);
jedis.auth("foobared"); jedis.auth("foobared");
jedis.set("foo", "0"); jedis.quit();
pool.returnBrokenResource(jedis);
Jedis newJedis = pool.getResource(200); jedis = pool.getResource(200);
newJedis.auth("foobared"); jedis.auth("foobared");
newJedis.incr("foo"); jedis.incr("foo");
} pool.returnResource(jedis);
pool.destroy();
}
@Test(expected = TimeoutException.class)
public void checkPoolOverflow() throws TimeoutException {
JedisPool pool = new JedisPool(host, port);
pool.setResourcesNumber(1);
pool.init();
Jedis jedis = pool.getResource(200);
jedis.auth("foobared");
jedis.set("foo", "0");
Jedis newJedis = pool.getResource(200);
newJedis.auth("foobared");
newJedis.incr("foo");
}
} }

View File

@@ -6,19 +6,45 @@ import java.util.List;
import junit.framework.Assert; import junit.framework.Assert;
import org.junit.Before;
import org.junit.Test; import org.junit.Test;
import redis.clients.jedis.Jedis; import redis.clients.jedis.Jedis;
import redis.clients.jedis.JedisPipeline; import redis.clients.jedis.JedisPipeline;
import redis.clients.jedis.Protocol;
public class PipeliningTest extends Assert { public class PipeliningTest extends Assert {
private static String host = "localhost";
private static int port = Protocol.DEFAULT_PORT;
static {
final String envHost = System.getProperty("redis-host");
final String envPort = System.getProperty("redis-port");
if (null != envHost && 0 < envHost.length()) {
host = envHost;
}
if (null != envPort && 0 < envPort.length()) {
try {
port = Integer.parseInt(envPort);
} catch (final NumberFormatException e) {
}
}
System.out.println("Redis host to be used : " + host + ":" + port);
}
private Jedis jedis;
@Before
public void setUp() throws Exception {
jedis = new Jedis(host, port, 500);
jedis.connect();
jedis.auth("foobared");
jedis.flushAll();
}
@Test @Test
public void pipeline() throws UnknownHostException, IOException { public void pipeline() throws UnknownHostException, IOException {
Jedis jedis = new Jedis("localhost");
jedis.connect();
jedis.auth("foobared");
jedis.flushAll();
List<Object> results = jedis.pipelined(new JedisPipeline() { List<Object> results = jedis.pipelined(new JedisPipeline() {
public void execute() { public void execute() {
client.set("foo", "bar"); client.set("foo", "bar");

View File

@@ -12,31 +12,48 @@ import redis.clients.jedis.Jedis;
import redis.clients.jedis.Protocol; import redis.clients.jedis.Protocol;
public abstract class JedisCommandTestBase extends Assert { public abstract class JedisCommandTestBase extends Assert {
protected static String host = "localhost";
protected static int port = Protocol.DEFAULT_PORT;
static {
final String envHost = System.getProperty("redis-host");
final String envPort = System.getProperty("redis-port");
if (null != envHost && 0 < envHost.length()) {
host = envHost;
}
if (null != envPort && 0 < envPort.length()) {
try {
port = Integer.parseInt(envPort);
} catch (final NumberFormatException e) {
}
}
protected Jedis jedis; System.out.println("Redis host to be used : " + host + ":" + port);
}
public JedisCommandTestBase() { protected Jedis jedis;
super();
}
@Before public JedisCommandTestBase() {
public void setUp() throws Exception { super();
jedis = new Jedis("localhost", Protocol.DEFAULT_PORT, 500); }
jedis.connect();
jedis.auth("foobared");
jedis.flushAll();
}
@After @Before
public void tearDown() throws Exception { public void setUp() throws Exception {
jedis.disconnect(); jedis = new Jedis(host, port, 500);
} jedis.connect();
jedis.auth("foobared");
jedis.flushAll();
}
protected Jedis createJedis() throws UnknownHostException, IOException { @After
Jedis j = new Jedis("localhost"); public void tearDown() throws Exception {
j.connect(); jedis.disconnect();
j.auth("foobared"); }
j.flushAll();
return j; protected Jedis createJedis() throws UnknownHostException, IOException {
} Jedis j = new Jedis(host, port);
j.connect();
j.auth("foobared");
j.flushAll();
return j;
}
} }

View File

@@ -5,6 +5,7 @@ import java.net.UnknownHostException;
import java.util.ArrayList; import java.util.ArrayList;
import java.util.List; import java.util.List;
import org.junit.Before;
import org.junit.Test; import org.junit.Test;
import redis.clients.jedis.Jedis; import redis.clients.jedis.Jedis;
@@ -13,6 +14,17 @@ import redis.clients.jedis.Transaction;
import redis.clients.jedis.TransactionBlock; import redis.clients.jedis.TransactionBlock;
public class TransactionCommandsTest extends JedisCommandTestBase { public class TransactionCommandsTest extends JedisCommandTestBase {
Jedis nj;
@Before
public void setUp() throws Exception {
super.setUp();
nj = new Jedis(host, port, 500);
nj.connect();
nj.auth("foobared");
nj.flushAll();
}
@Test @Test
public void multi() { public void multi() {
Transaction trans = jedis.multi(); Transaction trans = jedis.multi();
@@ -62,7 +74,6 @@ public class TransactionCommandsTest extends JedisCommandTestBase {
jedis.watch("mykey"); jedis.watch("mykey");
Transaction t = jedis.multi(); Transaction t = jedis.multi();
Jedis nj = new Jedis("localhost");
nj.connect(); nj.connect();
nj.auth("foobared"); nj.auth("foobared");
nj.set("mykey", "bar"); nj.set("mykey", "bar");
@@ -83,7 +94,6 @@ public class TransactionCommandsTest extends JedisCommandTestBase {
assertEquals("OK", status); assertEquals("OK", status);
Transaction t = jedis.multi(); Transaction t = jedis.multi();
Jedis nj = new Jedis("localhost");
nj.connect(); nj.connect();
nj.auth("foobared"); nj.auth("foobared");
nj.set("mykey", "bar"); nj.set("mykey", "bar");