package redis.clients.jedis.tests.commands; import java.util.LinkedHashSet; import java.util.Set; import org.junit.Test; public class SetCommandsTest extends JedisCommandTestBase { @Test public void sadd() { int status = jedis.sadd("foo", "a"); assertEquals(1, status); status = jedis.sadd("foo", "a"); assertEquals(0, status); } @Test public void smembers() { jedis.sadd("foo", "a"); jedis.sadd("foo", "b"); Set expected = new LinkedHashSet(); expected.add("a"); expected.add("b"); Set members = jedis.smembers("foo"); assertEquals(expected, members); } @Test public void srem() { jedis.sadd("foo", "a"); jedis.sadd("foo", "b"); int status = jedis.srem("foo", "a"); Set expected = new LinkedHashSet(); expected.add("b"); assertEquals(1, status); assertEquals(expected, jedis.smembers("foo")); status = jedis.srem("foo", "bar"); assertEquals(0, status); } @Test public void spop() { jedis.sadd("foo", "a"); jedis.sadd("foo", "b"); String member = jedis.spop("foo"); assertTrue("a".equals(member) || "b".equals(member)); assertEquals(1, jedis.smembers("foo").size()); member = jedis.spop("bar"); assertNull(member); } @Test public void smove() { jedis.sadd("foo", "a"); jedis.sadd("foo", "b"); jedis.sadd("bar", "c"); int status = jedis.smove("foo", "bar", "a"); Set expectedSrc = new LinkedHashSet(); expectedSrc.add("b"); Set expectedDst = new LinkedHashSet(); expectedDst.add("c"); expectedDst.add("a"); assertEquals(status, 1); assertEquals(expectedSrc, jedis.smembers("foo")); assertEquals(expectedDst, jedis.smembers("bar")); status = jedis.smove("foo", "bar", "a"); assertEquals(status, 0); } @Test public void scard() { jedis.sadd("foo", "a"); jedis.sadd("foo", "b"); int card = jedis.scard("foo"); assertEquals(2, card); card = jedis.scard("bar"); assertEquals(0, card); } @Test public void sismember() { jedis.sadd("foo", "a"); jedis.sadd("foo", "b"); int status = jedis.sismember("foo", "a"); assertEquals(1, status); status = jedis.sismember("foo", "c"); assertEquals(0, status); } @Test public void sinter() { jedis.sadd("foo", "a"); jedis.sadd("foo", "b"); jedis.sadd("bar", "b"); jedis.sadd("bar", "c"); Set expected = new LinkedHashSet(); expected.add("b"); Set intersection = jedis.sinter("foo", "bar"); assertEquals(expected, intersection); } @Test public void sinterstore() { jedis.sadd("foo", "a"); jedis.sadd("foo", "b"); jedis.sadd("bar", "b"); jedis.sadd("bar", "c"); Set expected = new LinkedHashSet(); expected.add("b"); int status = jedis.sinterstore("car", "foo", "bar"); assertEquals(1, status); assertEquals(expected, jedis.smembers("car")); } @Test public void sunion() { jedis.sadd("foo", "a"); jedis.sadd("foo", "b"); jedis.sadd("bar", "b"); jedis.sadd("bar", "c"); Set expected = new LinkedHashSet(); expected.add("a"); expected.add("b"); expected.add("c"); Set union = jedis.sunion("foo", "bar"); assertEquals(expected, union); } @Test public void sunionstore() { jedis.sadd("foo", "a"); jedis.sadd("foo", "b"); jedis.sadd("bar", "b"); jedis.sadd("bar", "c"); Set expected = new LinkedHashSet(); expected.add("a"); expected.add("b"); expected.add("c"); int status = jedis.sunionstore("car", "foo", "bar"); assertEquals(3, status); assertEquals(expected, jedis.smembers("car")); } @Test public void sdiff() { jedis.sadd("foo", "x"); jedis.sadd("foo", "a"); jedis.sadd("foo", "b"); jedis.sadd("foo", "c"); jedis.sadd("bar", "c"); jedis.sadd("car", "a"); jedis.sadd("car", "d"); Set expected = new LinkedHashSet(); expected.add("x"); expected.add("b"); Set diff = jedis.sdiff("foo", "bar", "car"); assertEquals(expected, diff); } @Test public void sdiffstore() { jedis.sadd("foo", "x"); jedis.sadd("foo", "a"); jedis.sadd("foo", "b"); jedis.sadd("foo", "c"); jedis.sadd("bar", "c"); jedis.sadd("car", "a"); jedis.sadd("car", "d"); Set expected = new LinkedHashSet(); expected.add("d"); expected.add("a"); int status = jedis.sdiffstore("tar", "foo", "bar", "car"); assertEquals(2, status); assertEquals(expected, jedis.smembers("car")); } @Test public void srandmember() { jedis.sadd("foo", "a"); jedis.sadd("foo", "b"); String member = jedis.srandmember("foo"); assertTrue("a".equals(member) || "b".equals(member)); assertEquals(2, jedis.smembers("foo").size()); member = jedis.srandmember("bar"); assertNull(member); } }