Skip to content

Commit cbda0d6

Browse files
authored
Test: Intermediate sync() works in regular Pipeline (#3246)
A test showing that intermediate sync() calls work in classic Pipeline bound to single connection.
1 parent 96cd700 commit cbda0d6

File tree

1 file changed

+53
-0
lines changed

1 file changed

+53
-0
lines changed

src/test/java/redis/clients/jedis/PipeliningTest.java

+53
Original file line numberDiff line numberDiff line change
@@ -89,6 +89,59 @@ public void pipelineResponse() {
8989
assertArrayEquals(expectedGetRangeBytes, getrangeBytes.get());
9090
}
9191

92+
@Test
93+
public void intermediateSyncs() {
94+
jedis.set("string", "foo");
95+
jedis.lpush("list", "foo");
96+
jedis.hset("hash", "foo", "bar");
97+
jedis.zadd("zset", 1, "foo");
98+
jedis.sadd("set", "foo");
99+
jedis.setrange("setrange", 0, "0123456789");
100+
byte[] bytesForSetRange = { 0, 1, 2, 3, 4, 5, 6, 7, 8, 9 };
101+
jedis.setrange("setrangebytes".getBytes(), 0, bytesForSetRange);
102+
103+
Pipeline p = jedis.pipelined();
104+
Response<String> string = p.get("string");
105+
Response<String> list = p.lpop("list");
106+
Response<String> hash = p.hget("hash", "foo");
107+
Response<List<String>> zset = p.zrange("zset", 0, -1);
108+
Response<String> set = p.spop("set");
109+
Response<Boolean> blist = p.exists("list");
110+
p.sync();
111+
112+
assertEquals("foo", string.get());
113+
assertEquals("foo", list.get());
114+
assertEquals("bar", hash.get());
115+
assertEquals("foo", zset.get().iterator().next());
116+
assertEquals("foo", set.get());
117+
assertEquals(false, blist.get());
118+
119+
Response<Double> zincrby = p.zincrby("zset", 1, "foo");
120+
Response<Long> zcard = p.zcard("zset");
121+
p.lpush("list", "bar");
122+
Response<List<String>> lrange = p.lrange("list", 0, -1);
123+
Response<Map<String, String>> hgetAll = p.hgetAll("hash");
124+
p.sadd("set", "foo");
125+
p.sync();
126+
127+
assertEquals(Double.valueOf(2), zincrby.get());
128+
assertEquals(Long.valueOf(1), zcard.get());
129+
assertEquals(1, lrange.get().size());
130+
assertNotNull(hgetAll.get().get("foo"));
131+
132+
Response<Set<String>> smembers = p.smembers("set");
133+
Response<List<Tuple>> zrangeWithScores = p.zrangeWithScores("zset", 0, -1);
134+
Response<String> getrange = p.getrange("setrange", 1, 3);
135+
Response<byte[]> getrangeBytes = p.getrange("setrangebytes".getBytes(), 6, 8);
136+
p.sync();
137+
138+
assertEquals(1, smembers.get().size());
139+
assertEquals(1, zrangeWithScores.get().size());
140+
assertEquals("123", getrange.get());
141+
byte[] expectedGetRangeBytes = { 6, 7, 8 };
142+
assertArrayEquals(expectedGetRangeBytes, getrangeBytes.get());
143+
}
144+
92145
@Test
93146
public void pipelineResponseWithData() {
94147
jedis.zadd("zset", 1, "foo");

0 commit comments

Comments
 (0)