From 46966fb89f6fa9383bef7009f1949d3002594438 Mon Sep 17 00:00:00 2001 From: Jonathan Leibiusky Date: Mon, 2 Dec 2013 19:27:12 -0500 Subject: [PATCH] Prepare redis cluster for testing. The cluster will always be in a deterministic state to be able to reproduce -MOVED and -ASK --- .../redis/clients/jedis/JedisCluster.java | 5 ++ .../clients/jedis/tests/JedisClusterTest.java | 70 +++++++++++++++++++ 2 files changed, 75 insertions(+) create mode 100644 src/main/java/redis/clients/jedis/JedisCluster.java create mode 100644 src/test/java/redis/clients/jedis/tests/JedisClusterTest.java diff --git a/src/main/java/redis/clients/jedis/JedisCluster.java b/src/main/java/redis/clients/jedis/JedisCluster.java new file mode 100644 index 0000000..7b5613b --- /dev/null +++ b/src/main/java/redis/clients/jedis/JedisCluster.java @@ -0,0 +1,5 @@ +package redis.clients.jedis; + +public class JedisCluster { + public static final int HASH_SLOTS = 16384; +} diff --git a/src/test/java/redis/clients/jedis/tests/JedisClusterTest.java b/src/test/java/redis/clients/jedis/tests/JedisClusterTest.java new file mode 100644 index 0000000..ca90362 --- /dev/null +++ b/src/test/java/redis/clients/jedis/tests/JedisClusterTest.java @@ -0,0 +1,70 @@ +package redis.clients.jedis.tests; + +import org.junit.After; +import org.junit.Assert; +import org.junit.Before; +import org.junit.Test; + +import redis.clients.jedis.HostAndPort; +import redis.clients.jedis.Jedis; +import redis.clients.jedis.JedisCluster; +import redis.clients.jedis.Pipeline; + +public class JedisClusterTest extends Assert { + private Jedis node1; + private Jedis node2; + private Jedis node3; + + private HostAndPort nodeInfo1 = HostAndPortUtil.getClusterServers().get(0); + private HostAndPort nodeInfo2 = HostAndPortUtil.getClusterServers().get(1); + private HostAndPort nodeInfo3 = HostAndPortUtil.getClusterServers().get(2); + + @Before + public void setUp() { + node1 = new Jedis(nodeInfo1.getHost(), nodeInfo1.getPort()); + node1.connect(); + node1.flushAll(); + + node2 = new Jedis(nodeInfo2.getHost(), nodeInfo2.getPort()); + node2.connect(); + node2.flushAll(); + + node3 = new Jedis(nodeInfo3.getHost(), nodeInfo3.getPort()); + node3.connect(); + node3.flushAll(); + + // ---- configure cluster + + // add nodes to cluster + node1.clusterMeet("127.0.0.1", nodeInfo1.getPort()); + node1.clusterMeet("127.0.0.1", nodeInfo2.getPort()); + node1.clusterMeet("127.0.0.1", nodeInfo3.getPort()); + + // add all slots to node1 + Pipeline pipelined = node1.pipelined(); + for (int i = 0; i < JedisCluster.HASH_SLOTS; i++) { + pipelined.clusterAddSlots(i); + } + pipelined.sync(); + } + + @After + public void tearDown() { + // clear all slots of node1 + Pipeline pipelined = node1.pipelined(); + for (int i = 0; i < JedisCluster.HASH_SLOTS; i++) { + pipelined.clusterDelSlots(i); + } + pipelined.sync(); + } + + @Test + public void moved() { + //TODO: needs to implement + } + + @Test + public void ask() { + //TODO: needs to implement + } +} \ No newline at end of file