diff --git a/src/test/java/redis/clients/jedis/tests/JedisSentinelTest.java b/src/test/java/redis/clients/jedis/tests/JedisSentinelTest.java index da0d5af..4445072 100644 --- a/src/test/java/redis/clients/jedis/tests/JedisSentinelTest.java +++ b/src/test/java/redis/clients/jedis/tests/JedisSentinelTest.java @@ -22,14 +22,16 @@ public class JedisSentinelTest extends JedisTestBase { protected static HostAndPort master = HostAndPortUtil.getRedisServers() .get(0); - protected static HostAndPort slave = HostAndPortUtil.getRedisServers().get(5); + protected static HostAndPort slave = HostAndPortUtil.getRedisServers().get( + 5); protected static HostAndPort sentinel = HostAndPortUtil .getSentinelServers().get(0); - - protected static HostAndPort sentinelForFailover = HostAndPortUtil.getSentinelServers() - .get(3); - protected static HostAndPort masterForFailover = HostAndPortUtil.getRedisServers().get(6); - + + protected static HostAndPort sentinelForFailover = HostAndPortUtil + .getSentinelServers().get(3); + protected static HostAndPort masterForFailover = HostAndPortUtil + .getRedisServers().get(6); + @Before public void setup() throws InterruptedException { } @@ -41,128 +43,139 @@ public class JedisSentinelTest extends JedisTestBase { // to restore it (demote) // so, promote(slaveof) slave to master has no effect, not same to old // Sentinel's behavior - ensureRemoved(MONITOR_MASTER_NAME); - ensureRemoved(REMOVE_MASTER_NAME); + ensureRemoved(MONITOR_MASTER_NAME); + ensureRemoved(REMOVE_MASTER_NAME); } @Test public void sentinel() { - Jedis j = new Jedis(sentinel.getHost(), sentinel.getPort()); + Jedis j = new Jedis(sentinel.getHost(), sentinel.getPort()); List> masters = j.sentinelMasters(); - + boolean inMasters = false; for (Map master : masters) - if (MASTER_NAME.equals(master.get("name"))) - inMasters = true; - + if (MASTER_NAME.equals(master.get("name"))) + inMasters = true; + assertTrue(inMasters); - - List masterHostAndPort = j.sentinelGetMasterAddrByName(MASTER_NAME); + + List masterHostAndPort = j + .sentinelGetMasterAddrByName(MASTER_NAME); HostAndPort masterFromSentinel = new HostAndPort( masterHostAndPort.get(0), Integer.parseInt(masterHostAndPort .get(1))); assertEquals(master, masterFromSentinel); - + List> slaves = j.sentinelSlaves(MASTER_NAME); assertTrue(slaves.size() > 0); - assertEquals(master.getPort(), Integer.parseInt(slaves.get(0).get("master-port"))); - + assertEquals(master.getPort(), + Integer.parseInt(slaves.get(0).get("master-port"))); + // DO NOT RE-RUN TEST TOO FAST, RESET TAKES SOME TIME TO... RESET assertEquals(Long.valueOf(1), j.sentinelReset(MASTER_NAME)); assertEquals(Long.valueOf(0), j.sentinelReset("woof" + MASTER_NAME)); } @Test - public void sentinelFailover() throws InterruptedException { - Jedis j = new Jedis(sentinelForFailover.getHost(), sentinelForFailover.getPort()); - - HostAndPort currentMaster = new HostAndPort(masterForFailover.getHost(), masterForFailover.getPort()); - - List masterHostAndPort = j.sentinelGetMasterAddrByName(FAILOVER_MASTER_NAME); - String result = j.sentinelFailover(FAILOVER_MASTER_NAME); - assertEquals("OK", result); - - JedisSentinelTestUtil.waitForNewPromotedMaster(sentinelForFailover, FAILOVER_MASTER_NAME, currentMaster); - - masterHostAndPort = j.sentinelGetMasterAddrByName(FAILOVER_MASTER_NAME); - HostAndPort newMaster = new HostAndPort(masterHostAndPort.get(0), - Integer.parseInt(masterHostAndPort.get(1))); - - assertNotEquals(newMaster, currentMaster); + public void sentinelFailover() throws InterruptedException { + Jedis j = new Jedis(sentinelForFailover.getHost(), + sentinelForFailover.getPort()); + + HostAndPort currentMaster = new HostAndPort( + masterForFailover.getHost(), masterForFailover.getPort()); + + List masterHostAndPort = j + .sentinelGetMasterAddrByName(FAILOVER_MASTER_NAME); + String result = j.sentinelFailover(FAILOVER_MASTER_NAME); + assertEquals("OK", result); + + JedisSentinelTestUtil.waitForNewPromotedMaster(sentinelForFailover, + FAILOVER_MASTER_NAME, currentMaster); + + masterHostAndPort = j.sentinelGetMasterAddrByName(FAILOVER_MASTER_NAME); + HostAndPort newMaster = new HostAndPort(masterHostAndPort.get(0), + Integer.parseInt(masterHostAndPort.get(1))); + + assertNotEquals(newMaster, currentMaster); } - - @Test - public void sentinelMonitor() { - Jedis j = new Jedis(sentinel.getHost(), sentinel.getPort()); - - // monitor new master - String result = j.sentinelMonitor(MONITOR_MASTER_NAME, MASTER_IP, master.getPort(), 1); - assertEquals("OK", result); - - // already monitored - try { - j.sentinelMonitor(MONITOR_MASTER_NAME, MASTER_IP, master.getPort(), 1); - fail(); - } catch (JedisDataException e) { - // pass - } + + @Test + public void sentinelMonitor() { + Jedis j = new Jedis(sentinel.getHost(), sentinel.getPort()); + + // monitor new master + String result = j.sentinelMonitor(MONITOR_MASTER_NAME, MASTER_IP, + master.getPort(), 1); + assertEquals("OK", result); + + // already monitored + try { + j.sentinelMonitor(MONITOR_MASTER_NAME, MASTER_IP, master.getPort(), + 1); + fail(); + } catch (JedisDataException e) { + // pass } - - @Test - public void sentinelRemove() { - Jedis j = new Jedis(sentinel.getHost(), sentinel.getPort()); - - ensureMonitored(sentinel, REMOVE_MASTER_NAME, MASTER_IP, master.getPort(), 1); - - String result = j.sentinelRemove(REMOVE_MASTER_NAME); - assertEquals("OK", result); - - // not exist - try { - result = j.sentinelRemove(REMOVE_MASTER_NAME); - assertNotEquals("OK", result); - fail(); - } catch (JedisDataException e) { - // pass - } + } + + @Test + public void sentinelRemove() { + Jedis j = new Jedis(sentinel.getHost(), sentinel.getPort()); + + ensureMonitored(sentinel, REMOVE_MASTER_NAME, MASTER_IP, + master.getPort(), 1); + + String result = j.sentinelRemove(REMOVE_MASTER_NAME); + assertEquals("OK", result); + + // not exist + try { + result = j.sentinelRemove(REMOVE_MASTER_NAME); + assertNotEquals("OK", result); + fail(); + } catch (JedisDataException e) { + // pass } - - @Test - public void sentinelSet() { - Jedis j = new Jedis(sentinel.getHost(), sentinel.getPort()); - - Map parameterMap = new HashMap(); - parameterMap.put("down-after-milliseconds", String.valueOf(1234)); - parameterMap.put("parallel-syncs", String.valueOf(3)); - parameterMap.put("quorum", String.valueOf(2)); - j.sentinelSet(MASTER_NAME, parameterMap); - - List> masters = j.sentinelMasters(); - for (Map master : masters) { - if (master.get("name").equals(MASTER_NAME)) { - assertEquals(1234, Integer.parseInt(master.get("down-after-milliseconds"))); - assertEquals(3, Integer.parseInt(master.get("parallel-syncs"))); - assertEquals(2, Integer.parseInt(master.get("quorum"))); - } - } - - parameterMap.put("quorum", String.valueOf(1)); - j.sentinelSet(MASTER_NAME, parameterMap); + } + + @Test + public void sentinelSet() { + Jedis j = new Jedis(sentinel.getHost(), sentinel.getPort()); + + Map parameterMap = new HashMap(); + parameterMap.put("down-after-milliseconds", String.valueOf(1234)); + parameterMap.put("parallel-syncs", String.valueOf(3)); + parameterMap.put("quorum", String.valueOf(2)); + j.sentinelSet(MASTER_NAME, parameterMap); + + List> masters = j.sentinelMasters(); + for (Map master : masters) { + if (master.get("name").equals(MASTER_NAME)) { + assertEquals(1234, + Integer.parseInt(master.get("down-after-milliseconds"))); + assertEquals(3, Integer.parseInt(master.get("parallel-syncs"))); + assertEquals(2, Integer.parseInt(master.get("quorum"))); + } } - - private void ensureMonitored(HostAndPort sentinel, String masterName, String ip, int port, int quorum) { - Jedis j = new Jedis(sentinel.getHost(), sentinel.getPort()); - try { - j.sentinelMonitor(masterName, ip, port, quorum); - } catch (JedisDataException e) { - } + + parameterMap.put("quorum", String.valueOf(1)); + j.sentinelSet(MASTER_NAME, parameterMap); + } + + private void ensureMonitored(HostAndPort sentinel, String masterName, + String ip, int port, int quorum) { + Jedis j = new Jedis(sentinel.getHost(), sentinel.getPort()); + try { + j.sentinelMonitor(masterName, ip, port, quorum); + } catch (JedisDataException e) { } - - private void ensureRemoved(String masterName) { - Jedis j = new Jedis(sentinel.getHost(), sentinel.getPort()); - try { - j.sentinelRemove(masterName); - } catch (JedisDataException e) { - } + } + + private void ensureRemoved(String masterName) { + Jedis j = new Jedis(sentinel.getHost(), sentinel.getPort()); + try { + j.sentinelRemove(masterName); + } catch (JedisDataException e) { } + } }