package redis.clients.jedis.tests.commands; import java.util.List; import org.junit.Test; import redis.clients.jedis.DebugParams; import redis.clients.jedis.Jedis; import redis.clients.jedis.JedisMonitor; import redis.clients.jedis.exceptions.JedisDataException; public class ControlCommandsTest extends JedisCommandTestBase { @Test public void save() { try { String status = jedis.save(); assertEquals("OK", status); } catch (JedisDataException e) { assertTrue("ERR Background save already in progress".equalsIgnoreCase(e.getMessage())); } } @Test public void bgsave() { try { String status = jedis.bgsave(); assertEquals("Background saving started", status); } catch (JedisDataException e) { assertTrue("ERR Background save already in progress".equalsIgnoreCase(e.getMessage())); } } @Test public void bgrewriteaof() { String scheduled = "Background append only file rewriting scheduled"; String started = "Background append only file rewriting started"; String status = jedis.bgrewriteaof(); boolean ok = status.equals(scheduled) || status.equals(started); assertTrue(ok); } @Test public void lastsave() throws InterruptedException { long saved = jedis.lastsave(); assertTrue(saved > 0); } @Test public void info() { String info = jedis.info(); assertNotNull(info); info = jedis.info("server"); assertNotNull(info); } @Test public void readonly() { try { jedis.readonly(); } catch (JedisDataException e) { assertTrue("ERR This instance has cluster support disabled".equalsIgnoreCase(e.getMessage())); } } @Test public void monitor() { new Thread(new Runnable() { @Override public void run() { try { // sleep 100ms to make sure that monitor thread runs first Thread.sleep(100); } catch (InterruptedException e) { } Jedis j = new Jedis("localhost"); j.auth("foobared"); for (int i = 0; i < 5; i++) { j.incr("foobared"); } j.disconnect(); } }).start(); jedis.monitor(new JedisMonitor() { private int count = 0; @Override public void onCommand(String command) { if (command.contains("INCR")) { count++; } if (count == 5) { client.disconnect(); } } }); } @Test public void configGet() { List<String> info = jedis.configGet("m*"); assertNotNull(info); } @Test public void configSet() { List<String> info = jedis.configGet("maxmemory"); String memory = info.get(1); String status = jedis.configSet("maxmemory", "200"); assertEquals("OK", status); jedis.configSet("maxmemory", memory); } @Test public void sync() { jedis.sync(); } @Test public void debug() { jedis.set("foo", "bar"); String resp = jedis.debug(DebugParams.OBJECT("foo")); assertNotNull(resp); resp = jedis.debug(DebugParams.RELOAD()); assertNotNull(resp); } @Test public void waitReplicas() { Long replicas = jedis.waitReplicas(1, 100); assertEquals(1, replicas.longValue()); } }