diff --git a/src/test/java/redis/clients/jedis/tests/commands/VariadicCommandsTest.java b/src/test/java/redis/clients/jedis/tests/commands/VariadicCommandsTest.java new file mode 100644 index 0000000..fd63859 --- /dev/null +++ b/src/test/java/redis/clients/jedis/tests/commands/VariadicCommandsTest.java @@ -0,0 +1,190 @@ +package redis.clients.jedis.tests.commands; + +import java.util.ArrayList; +import java.util.HashMap; +import java.util.LinkedHashSet; +import java.util.List; +import java.util.Map; +import java.util.Set; + +import org.junit.Test; + +public class VariadicCommandsTest extends JedisCommandTestBase { + final byte[] bfoo = { 0x01, 0x02, 0x03, 0x04 }; + final byte[] bbar = { 0x05, 0x06, 0x07, 0x08 }; + final byte[] bcar = { 0x09, 0x0A, 0x0B, 0x0C }; + final byte[] bfoo1 = { 0x01, 0x02, 0x03, 0x04, 0x0A }; + final byte[] bfoo2 = { 0x01, 0x02, 0x03, 0x04, 0x0B }; + + @Test + public void hdel() { + Map hash = new HashMap(); + hash.put("bar", "car"); + hash.put("car", "bar"); + hash.put("foo2", "bar"); + jedis.hmset("foo", hash); + + assertEquals(0, jedis.hdel("bar", "foo", "foo1").intValue()); + assertEquals(0, jedis.hdel("foo", "foo", "foo1").intValue()); + assertEquals(2, jedis.hdel("foo", "bar", "foo2").intValue()); + assertEquals(null, jedis.hget("foo", "bar")); + + // Binary + Map bhash = new HashMap(); + bhash.put(bbar, bcar); + bhash.put(bcar, bbar); + bhash.put(bfoo2, bbar); + jedis.hmset(bfoo, bhash); + + assertEquals(0, jedis.hdel(bbar, bfoo, bfoo1).intValue()); + assertEquals(0, jedis.hdel(bfoo, bfoo, bfoo1).intValue()); + assertEquals(2, jedis.hdel(bfoo, bbar, bfoo2).intValue()); + assertEquals(null, jedis.hget(bfoo, bbar)); + + } + + @Test + public void rpush() { + long size = jedis.rpush("foo", "bar", "foo"); + assertEquals(2, size); + + List expected = new ArrayList(); + expected.add("bar"); + expected.add("foo"); + + List values = jedis.lrange("foo",0,-1); + assertEquals(expected, values); + + // Binary + size = jedis.rpush(bfoo, bbar, bfoo); + assertEquals(2, size); + + List bexpected = new ArrayList(); + bexpected.add(bbar); + bexpected.add(bfoo); + + List bvalues = jedis.lrange(bfoo, 0, -1); + assertEquals(bexpected, bvalues); + + } + + @Test + public void lpush() { + long size = jedis.lpush("foo", "bar", "foo"); + assertEquals(2, size); + + List expected = new ArrayList(); + expected.add("foo"); + expected.add("bar"); + + List values = jedis.lrange("foo",0,-1); + assertEquals(expected, values); + + // Binary + size = jedis.lpush(bfoo, bbar, bfoo); + assertEquals(2, size); + + List bexpected = new ArrayList(); + bexpected.add(bfoo); + bexpected.add(bbar); + + List bvalues = jedis.lrange(bfoo, 0, -1); + assertEquals(bexpected, bvalues); + + } + + @Test + public void sadd() { + long status = jedis.sadd("foo", "bar", "foo1"); + assertEquals(2, status); + + status = jedis.sadd("foo", "bar", "car"); + assertEquals(1, status); + + status = jedis.sadd("foo", "bar", "foo1"); + assertEquals(0, status); + + status = jedis.sadd(bfoo, bbar, bfoo1); + assertEquals(2, status); + + status = jedis.sadd(bfoo, bbar, bcar); + assertEquals(1, status); + + status = jedis.sadd(bfoo, bbar, bfoo1); + assertEquals(0, status); + + } + + @Test + public void zadd() { + Map scoreMembers = new HashMap(); + scoreMembers.put(1d, "bar"); + scoreMembers.put(10d, "foo"); + + long status = jedis.zadd("foo", scoreMembers); + assertEquals(2, status); + + scoreMembers.clear(); + scoreMembers.put(0.1d, "car"); + scoreMembers.put(2d, "bar"); + + status = jedis.zadd("foo", scoreMembers); + assertEquals(1, status); + + Map bscoreMembers = new HashMap(); + bscoreMembers.put(1d, bbar); + bscoreMembers.put(10d, bfoo); + + status = jedis.zadd(bfoo, bscoreMembers); + assertEquals(2, status); + + bscoreMembers.clear(); + bscoreMembers.put(0.1d, bcar); + bscoreMembers.put(2d, bbar); + + status = jedis.zadd(bfoo, bscoreMembers); + assertEquals(1, status); + + } + + @Test + public void zrem() { + jedis.zadd("foo", 1d, "bar"); + jedis.zadd("foo", 2d, "car"); + jedis.zadd("foo", 3d, "foo1"); + + long status = jedis.zrem("foo", "bar", "car"); + + Set expected = new LinkedHashSet(); + expected.add("foo1"); + + assertEquals(2, status); + assertEquals(expected, jedis.zrange("foo", 0, 100)); + + status = jedis.zrem("foo", "bar", "car"); + assertEquals(0, status); + + status = jedis.zrem("foo", "bar", "foo1"); + assertEquals(1, status); + + //Binary + jedis.zadd(bfoo, 1d, bbar); + jedis.zadd(bfoo, 2d, bcar); + jedis.zadd(bfoo, 3d, bfoo1); + + status = jedis.zrem(bfoo, bbar, bcar); + + Set bexpected = new LinkedHashSet(); + bexpected.add(bfoo); + + assertEquals(2, status); + assertEquals(bexpected, jedis.zrange(bfoo, 0, 100)); + + status = jedis.zrem(bfoo, bbar, bcar); + assertEquals(0, status); + + status = jedis.zrem(bfoo, bbar, bfoo1); + assertEquals(1, status); + + } +} \ No newline at end of file