package redis.clients.jedis.tests; import java.io.UnsupportedEncodingException; import java.util.List; import java.util.Map; import java.util.Set; import org.junit.Assert; import org.junit.Before; import org.junit.Test; import redis.clients.jedis.Jedis; import redis.clients.jedis.Pipeline; import redis.clients.jedis.PipelineBlock; import redis.clients.jedis.Response; import redis.clients.jedis.Tuple; import redis.clients.jedis.exceptions.JedisDataException; import redis.clients.jedis.tests.HostAndPortUtil.HostAndPort; public class PipeliningTest extends Assert { private static HostAndPort hnp = HostAndPortUtil.getRedisServers().get(0); private Jedis jedis; @Before public void setUp() throws Exception { jedis = new Jedis(hnp.host, hnp.port, 500); jedis.connect(); jedis.auth("foobared"); jedis.flushAll(); } @Test public void pipeline() throws UnsupportedEncodingException { List results = jedis.pipelined(new PipelineBlock() { public void execute() { set("foo", "bar"); get("foo"); } }); assertEquals(2, results.size()); assertEquals("OK", results.get(0)); assertEquals("bar", results.get(1)); Pipeline p = jedis.pipelined(); p.set("foo", "bar"); p.get("foo"); results = p.sync(); assertEquals(2, results.size()); assertEquals("OK", results.get(0)); assertEquals("bar", results.get(1)); } @Test public void pipelineResponse() { jedis.set("string", "foo"); jedis.lpush("list", "foo"); jedis.hset("hash", "foo", "bar"); jedis.zadd("zset", 1, "foo"); jedis.sadd("set", "foo"); Pipeline p = jedis.pipelined(); Response string = p.get("string"); Response list = p.lpop("list"); Response hash = p.hget("hash", "foo"); Response> zset = p.zrange("zset", 0, -1); Response set = p.spop("set"); Response blist = p.exists("list"); Response zincrby = p.zincrby("zset", 1, "foo"); Response zcard = p.zcard("zset"); p.lpush("list", "bar"); Response> lrange = p.lrange("list", 0, -1); Response> hgetAll = p.hgetAll("hash"); p.sadd("set", "foo"); Response> smembers = p.smembers("set"); Response> zrangeWithScores = p.zrangeWithScores("zset", 0, -1); p.sync(); assertEquals("foo", string.get()); assertEquals("foo", list.get()); assertEquals("bar", hash.get()); assertEquals("foo", zset.get().iterator().next()); assertEquals("foo", set.get()); assertEquals(false, blist.get()); assertEquals(new Double(2), zincrby.get()); assertEquals(new Long(1), zcard.get()); assertEquals(1, lrange.get().size()); assertNotNull(hgetAll.get().get("foo")); assertEquals(1, smembers.get().size()); assertEquals(1, zrangeWithScores.get().size()); } @Test(expected = JedisDataException.class) public void pipelineResponseWithinPipeline() { jedis.set("string", "foo"); Pipeline p = jedis.pipelined(); Response string = p.get("string"); string.get(); p.sync(); } @Test public void pipelineWithPubSub() { Pipeline pipelined = jedis.pipelined(); Response p1 = pipelined.publish("foo", "bar"); Response p2 = pipelined.publish("foo".getBytes(), "bar" .getBytes()); pipelined.sync(); assertEquals(0, p1.get().longValue()); assertEquals(0, p2.get().longValue()); } }