Binary U test on Hashes ...
This commit is contained in:
@@ -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));
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
@@ -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<byte[], byte[]> bhash = new HashMap<byte[], byte[]>();
|
||||
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<byte[], byte[]> bhash = new HashMap<byte[], byte[]>();
|
||||
bhash.put(bbar, bcar);
|
||||
bhash.put(bcar, bbar);
|
||||
jedis.hmset(bfoo, bhash);
|
||||
|
||||
List<byte[]> bvalues = jedis.hmget(bfoo, bbar, bcar, bfoo);
|
||||
List<byte[]> bexpected = new ArrayList<byte[]>();
|
||||
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<byte[], byte[]> bhash = new HashMap<byte[], byte[]>();
|
||||
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<byte[], byte[]> bhash = new HashMap<byte[], byte[]>();
|
||||
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<byte[], byte[]> bhash = new HashMap<byte[], byte[]>();
|
||||
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<byte[], byte[]> bhash = new LinkedHashMap<byte[], byte[]>();
|
||||
bhash.put(bbar, bcar);
|
||||
bhash.put(bcar, bbar);
|
||||
jedis.hmset(bfoo, bhash);
|
||||
|
||||
List<byte[]> bkeys = jedis.hkeys(bfoo);
|
||||
List<byte[]> bexpected = new ArrayList<byte[]>();
|
||||
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<byte[], byte[]> bhash = new LinkedHashMap<byte[], byte[]>();
|
||||
bhash.put(bbar, bcar);
|
||||
bhash.put(bcar, bbar);
|
||||
jedis.hmset(bfoo, bhash);
|
||||
|
||||
List<byte[]> bvals = jedis.hvals(bfoo);
|
||||
List<byte[]> bexpected = new ArrayList<byte[]>();
|
||||
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<byte[], byte[]> bh = new HashMap<byte[], byte[]>();
|
||||
bh.put(bbar, bcar);
|
||||
bh.put(bcar, bbar);
|
||||
jedis.hmset(bfoo, bh);
|
||||
|
||||
Map<byte[], byte[]> bhash = jedis.hgetAll(bfoo);
|
||||
Map<byte[], byte[]> bexpected = new HashMap<byte[], byte[]>();
|
||||
bexpected.put(bbar, bcar);
|
||||
bexpected.put(bcar, bbar);
|
||||
final Collection<byte[]> keysetExpected = bexpected.keySet();
|
||||
final Collection<byte[]> keysetResult = bhash.keySet();
|
||||
assertTrue(JedisTest.isListAreEquals(keysetExpected, keysetResult));
|
||||
final Collection<byte[]> valsExpected = bexpected.values();
|
||||
final Collection<byte[]> valsResult = bhash.values();
|
||||
assertTrue(JedisTest.isListAreEquals(valsExpected, valsResult));
|
||||
|
||||
}
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user