From 7d58a68d2d818b5e5df850f5486de025bd06b3dd Mon Sep 17 00:00:00 2001 From: Yaourt Date: Fri, 5 Nov 2010 16:09:32 +0100 Subject: [PATCH] Binary U test on Hashes ... --- .../redis/clients/jedis/tests/JedisTest.java | 21 ++- .../tests/commands/HashesCommandsTest.java | 145 +++++++++++++++++- 2 files changed, 157 insertions(+), 9 deletions(-) diff --git a/src/test/java/redis/clients/jedis/tests/JedisTest.java b/src/test/java/redis/clients/jedis/tests/JedisTest.java index 4a320a9..57db5b3 100644 --- a/src/test/java/redis/clients/jedis/tests/JedisTest.java +++ b/src/test/java/redis/clients/jedis/tests/JedisTest.java @@ -1,6 +1,7 @@ package redis.clients.jedis.tests; import java.util.Arrays; +import java.util.Collection; import java.util.HashMap; import java.util.Iterator; import java.util.List; @@ -48,7 +49,7 @@ public class JedisTest extends JedisCommandTestBase { } @SuppressWarnings("rawtypes") - public static boolean isListAreEquals(List expected, List result) { + public static boolean isListAreEquals(Collection expected, Collection result) { if(expected.size() != result.size()) { return false; } @@ -66,20 +67,26 @@ public class JedisTest extends JedisCommandTestBase { if(Arrays.equals(bexp, bresp)) { found = true; } - } else if (exp instanceof List && resp instanceof List) { - final List subexp = (List) exp; - final List subresp = (List) resp; + } else if (exp instanceof Collection && resp instanceof Collection) { + final Collection subexp = (Collection) exp; + final Collection subresp = (Collection) resp; if(isListAreEquals(subexp, subresp)) { found = true; } } else { - if (exp.equals(resp)){ - found = true; + if (null != exp) { + if (exp.equals(resp)){ + found = true; + } + } else { + if(resp == null) { + found = true; + } } } } if(!found){ - fail("Result doesn't contain " + exp.toString()); + fail("Result doesn't contain " + (null != exp ? exp.toString() : null)); } } diff --git a/src/test/java/redis/clients/jedis/tests/commands/HashesCommandsTest.java b/src/test/java/redis/clients/jedis/tests/commands/HashesCommandsTest.java index d2a8882..9dd3a72 100644 --- a/src/test/java/redis/clients/jedis/tests/commands/HashesCommandsTest.java +++ b/src/test/java/redis/clients/jedis/tests/commands/HashesCommandsTest.java @@ -1,6 +1,7 @@ package redis.clients.jedis.tests.commands; import java.util.ArrayList; +import java.util.Collection; import java.util.HashMap; import java.util.LinkedHashMap; import java.util.List; @@ -11,12 +12,22 @@ import org.junit.Test; import redis.clients.jedis.tests.JedisTest; public class HashesCommandsTest extends JedisCommandTestBase { + final byte[] bfoo = {0x01, 0x02, 0x03, 0x04}; + final byte[] bbar = {0x05, 0x06, 0x07, 0x08}; + final byte[] bcar = {0x09, 0x0A, 0x0B, 0x0C}; @Test public void hset() { int status = jedis.hset("foo", "bar", "car"); assertEquals(1, status); status = jedis.hset("foo", "bar", "foo"); assertEquals(0, status); + + //Binary + int bstatus = jedis.hset(bfoo, bbar, bcar); + assertEquals(1, bstatus); + bstatus = jedis.hset(bfoo, bbar, bfoo); + assertEquals(0, bstatus); + } @Test @@ -25,6 +36,12 @@ public class HashesCommandsTest extends JedisCommandTestBase { assertEquals(null, jedis.hget("bar", "foo")); assertEquals(null, jedis.hget("foo", "car")); assertEquals("car", jedis.hget("foo", "bar")); + + //Binary + jedis.hset(bfoo, bbar, bcar); + assertEquals(null, jedis.hget(bbar, bfoo)); + assertEquals(null, jedis.hget(bfoo, bcar)); + assertArrayEquals(bcar, jedis.hget(bfoo, bbar)); } @Test @@ -40,6 +57,20 @@ public class HashesCommandsTest extends JedisCommandTestBase { status = jedis.hsetnx("foo", "car", "bar"); assertEquals(1, status); assertEquals("bar", jedis.hget("foo", "car")); + + //Binary + int bstatus = jedis.hsetnx(bfoo, bbar, bcar); + assertEquals(1, bstatus); + assertArrayEquals(bcar, jedis.hget(bfoo, bbar)); + + bstatus = jedis.hsetnx(bfoo, bbar, bfoo); + assertEquals(0, bstatus); + assertArrayEquals(bcar, jedis.hget(bfoo, bbar)); + + bstatus = jedis.hsetnx(bfoo, bcar, bbar); + assertEquals(1, bstatus); + assertArrayEquals(bbar, jedis.hget(bfoo, bcar)); + } @Test @@ -51,7 +82,18 @@ public class HashesCommandsTest extends JedisCommandTestBase { assertEquals("OK", status); assertEquals("car", jedis.hget("foo", "bar")); assertEquals("bar", jedis.hget("foo", "car")); + + //Binary + Map bhash = new HashMap(); + bhash.put(bbar, bcar); + bhash.put(bcar, bbar); + String bstatus = jedis.hmset(bfoo, bhash); + assertEquals("OK", bstatus); + assertArrayEquals(bcar, jedis.hget(bfoo, bbar)); + assertArrayEquals(bbar, jedis.hget(bfoo, bcar)); + } + @Test public void hmget() { @@ -67,6 +109,20 @@ public class HashesCommandsTest extends JedisCommandTestBase { expected.add(null); assertEquals(expected, values); + + //Binary + Map bhash = new HashMap(); + bhash.put(bbar, bcar); + bhash.put(bcar, bbar); + jedis.hmset(bfoo, bhash); + + List bvalues = jedis.hmget(bfoo, bbar, bcar, bfoo); + List bexpected = new ArrayList(); + bexpected.add(bcar); + bexpected.add(bbar); + bexpected.add(null); + + JedisTest.isListAreEquals(bexpected, bvalues); } @Test @@ -77,6 +133,15 @@ public class HashesCommandsTest extends JedisCommandTestBase { assertEquals(0, value); value = jedis.hincrBy("foo", "bar", -10); assertEquals(-10, value); + + //Binary + int bvalue = jedis.hincrBy(bfoo, bbar, 1); + assertEquals(1, bvalue); + bvalue = jedis.hincrBy(bfoo, bbar, -1); + assertEquals(0, bvalue); + bvalue = jedis.hincrBy(bfoo, bbar, -10); + assertEquals(-10, bvalue); + } @Test @@ -89,6 +154,17 @@ public class HashesCommandsTest extends JedisCommandTestBase { assertEquals(0, jedis.hexists("bar", "foo").intValue()); assertEquals(0, jedis.hexists("foo", "foo").intValue()); assertEquals(1, jedis.hexists("foo", "bar").intValue()); + + //Binary + Map bhash = new HashMap(); + bhash.put(bbar, bcar); + bhash.put(bcar, bbar); + jedis.hmset(bfoo, bhash); + + assertEquals(0, jedis.hexists(bbar, bfoo).intValue()); + assertEquals(0, jedis.hexists(bfoo, bfoo).intValue()); + assertEquals(1, jedis.hexists(bfoo, bbar).intValue()); + } @Test @@ -102,6 +178,18 @@ public class HashesCommandsTest extends JedisCommandTestBase { assertEquals(0, jedis.hdel("foo", "foo").intValue()); assertEquals(1, jedis.hdel("foo", "bar").intValue()); assertEquals(null, jedis.hget("foo", "bar")); + + //Binary + Map bhash = new HashMap(); + bhash.put(bbar, bcar); + bhash.put(bcar, bbar); + jedis.hmset(bfoo, bhash); + + assertEquals(0, jedis.hdel(bbar, bfoo).intValue()); + assertEquals(0, jedis.hdel(bfoo, bfoo).intValue()); + assertEquals(1, jedis.hdel(bfoo, bbar).intValue()); + assertEquals(null, jedis.hget(bfoo, bbar)); + } @Test @@ -113,6 +201,16 @@ public class HashesCommandsTest extends JedisCommandTestBase { assertEquals(0, jedis.hlen("bar").intValue()); assertEquals(2, jedis.hlen("foo").intValue()); + + //Binary + Map bhash = new HashMap(); + bhash.put(bbar, bcar); + bhash.put(bcar, bbar); + jedis.hmset(bfoo, bhash); + + assertEquals(0, jedis.hlen(bbar).intValue()); + assertEquals(2, jedis.hlen(bfoo).intValue()); + } @Test @@ -127,7 +225,19 @@ public class HashesCommandsTest extends JedisCommandTestBase { expected.add("bar"); expected.add("car"); assertTrue(JedisTest.isListAreEquals(expected, keys)); -// assertEquals(expected, keys); + + //Binary + Map bhash = new LinkedHashMap(); + bhash.put(bbar, bcar); + bhash.put(bcar, bbar); + jedis.hmset(bfoo, bhash); + + List bkeys = jedis.hkeys(bfoo); + List bexpected = new ArrayList(); + bexpected.add(bbar); + bexpected.add(bcar); + assertTrue(JedisTest.isListAreEquals(bexpected, bkeys)); + } @Test @@ -142,7 +252,20 @@ public class HashesCommandsTest extends JedisCommandTestBase { expected.add("car"); expected.add("bar"); assertTrue(JedisTest.isListAreEquals(expected, vals)); -// assertEquals(expected, vals); + + //Binary + Map bhash = new LinkedHashMap(); + bhash.put(bbar, bcar); + bhash.put(bcar, bbar); + jedis.hmset(bfoo, bhash); + + List bvals = jedis.hvals(bfoo); + List bexpected = new ArrayList(); + bexpected.add(bcar); + bexpected.add(bbar); + assertTrue(JedisTest.isListAreEquals(bexpected, bvals)); + + } @Test @@ -157,5 +280,23 @@ public class HashesCommandsTest extends JedisCommandTestBase { expected.put("bar", "car"); expected.put("car", "bar"); assertEquals(expected, hash); + + //Binary + Map bh = new HashMap(); + bh.put(bbar, bcar); + bh.put(bcar, bbar); + jedis.hmset(bfoo, bh); + + Map bhash = jedis.hgetAll(bfoo); + Map bexpected = new HashMap(); + bexpected.put(bbar, bcar); + bexpected.put(bcar, bbar); + final Collection keysetExpected = bexpected.keySet(); + final Collection keysetResult = bhash.keySet(); + assertTrue(JedisTest.isListAreEquals(keysetExpected, keysetResult)); + final Collection valsExpected = bexpected.values(); + final Collection valsResult = bhash.values(); + assertTrue(JedisTest.isListAreEquals(valsExpected, valsResult)); + } }