From fd8e3116ab4706dcc678ac8eaea5508858c61ed4 Mon Sep 17 00:00:00 2001 From: Yaourt Date: Thu, 4 Nov 2010 17:14:06 +0100 Subject: [PATCH] Fix broken U tests --- .../redis/clients/jedis/tests/JedisTest.java | 26 ++++++++- .../clients/jedis/tests/ProtocolTest.java | 54 +++++++++++++------ .../clients/jedis/tests/ShardedJedisTest.java | 10 +++- 3 files changed, 71 insertions(+), 19 deletions(-) diff --git a/src/test/java/redis/clients/jedis/tests/JedisTest.java b/src/test/java/redis/clients/jedis/tests/JedisTest.java index d1ebf0a..6812f2c 100644 --- a/src/test/java/redis/clients/jedis/tests/JedisTest.java +++ b/src/test/java/redis/clients/jedis/tests/JedisTest.java @@ -1,10 +1,12 @@ package redis.clients.jedis.tests; import java.util.HashMap; +import java.util.Iterator; +import java.util.List; import java.util.Map; import org.junit.Test; - +import org.junit.Assert; import redis.clients.jedis.Jedis; import redis.clients.jedis.JedisShardInfo; import redis.clients.jedis.Protocol; @@ -41,4 +43,26 @@ public class JedisTest extends JedisCommandTestBase { Jedis jedis = new Jedis(shardInfo); jedis.get("foo"); } + + @SuppressWarnings("rawtypes") + public static void compareList(List expected, List result) { + final Iterator expectedit = expected.iterator(); + final Iterator responseit = result.iterator(); + while(expectedit.hasNext()) { + final Object exp = expectedit.next(); + final Object resp = responseit.next(); + if(exp instanceof byte[]) { + final byte[] bexp = (byte[]) exp; + final byte[] bresp = (byte[]) resp; + Assert.assertArrayEquals(bexp, bresp); + } else if (exp instanceof List) { + final List subexp = (List) exp; + final List subresp = (List) resp; + compareList(subexp, subresp); + } else { + assertEquals(exp, resp); + } + } + } + } diff --git a/src/test/java/redis/clients/jedis/tests/ProtocolTest.java b/src/test/java/redis/clients/jedis/tests/ProtocolTest.java index 0ba6f54..cfb1eb3 100644 --- a/src/test/java/redis/clients/jedis/tests/ProtocolTest.java +++ b/src/test/java/redis/clients/jedis/tests/ProtocolTest.java @@ -7,9 +7,11 @@ import java.io.InputStream; import java.io.PipedInputStream; import java.io.PipedOutputStream; import java.util.ArrayList; +import java.util.Collection; +import java.util.Iterator; import java.util.List; -import junit.framework.Assert; +import org.junit.Assert; import org.junit.Test; @@ -87,34 +89,54 @@ public class ProtocolTest extends Assert { "*4\r\n$3\r\nfoo\r\n$3\r\nbar\r\n$5\r\nHello\r\n$5\r\nWorld\r\n" .getBytes()); Protocol protocol = new Protocol(); - List response = (List) (List) protocol - .read(new RedisInputStream(is)); - List expected = new ArrayList(); - expected.add("foo"); - expected.add("bar"); - expected.add("Hello"); - expected.add("World"); + List response = (List) protocol.read(new RedisInputStream(is)); + List expected = new ArrayList(); + expected.add("foo".getBytes(Protocol.UTF8)); + expected.add("bar".getBytes(Protocol.UTF8)); + expected.add("Hello".getBytes(Protocol.UTF8)); + expected.add("World".getBytes(Protocol.UTF8)); - assertEquals(expected, response); + assertEquals(expected.size(), response.size()); + JedisTest.compareList(expected, response); +// final Iterator expectedit = expected.iterator(); +// final Iterator responseit = response.iterator(); +// while(expectedit.hasNext()) { +// final byte[] exp = expectedit.next(); +// final byte[] resp = responseit.next(); +// assertArrayEquals(exp, resp); +// } is = new ByteArrayInputStream( "*4\r\n$3\r\nfoo\r\n+OK\r\n:1000\r\n*2\r\n$3\r\nfoo\r\n$3\r\nbar" .getBytes()); protocol = new Protocol(); - List response2 = (List) protocol - .read(new RedisInputStream(is)); + List response2 = (List) protocol.read(new RedisInputStream(is)); List expected2 = new ArrayList(); - expected2.add("foo"); + expected2.add("foo".getBytes(Protocol.UTF8)); expected2.add("OK"); expected2.add(1000); List sub = new ArrayList(); - sub.add("foo"); - sub.add("bar"); + sub.add("foo".getBytes(Protocol.UTF8)); + sub.add("bar".getBytes(Protocol.UTF8)); expected2.add(sub); - assertEquals(expected2, response2); + assertEquals(expected2.size(), response2.size()); + JedisTest.compareList(expected2, response2); +// final Iterator expectedit2 = expected2.iterator(); +// final Iterator responseit2 = response2.iterator(); +// while(expectedit2.hasNext()) { +// final Object exp = expectedit2.next(); +// final Object resp = responseit2.next(); +// if(exp instanceof byte[]) { +// final byte[] bexp = (byte[]) exp; +// final byte[] bresp = (byte[]) resp; +// assertArrayEquals(bexp, bresp); +// } else { +// assertEquals(exp, resp); +// } +// } } - + @SuppressWarnings("unchecked") @Test public void nullMultiBulkReply() { diff --git a/src/test/java/redis/clients/jedis/tests/ShardedJedisTest.java b/src/test/java/redis/clients/jedis/tests/ShardedJedisTest.java index 5190306..1a5c93d 100644 --- a/src/test/java/redis/clients/jedis/tests/ShardedJedisTest.java +++ b/src/test/java/redis/clients/jedis/tests/ShardedJedisTest.java @@ -9,6 +9,7 @@ import org.junit.Test; import redis.clients.jedis.Jedis; import redis.clients.jedis.JedisShardInfo; +import redis.clients.jedis.Protocol; import redis.clients.jedis.ShardedJedis; import redis.clients.jedis.ShardedJedisPipeline; import redis.clients.jedis.tests.HostAndPortUtil.HostAndPort; @@ -141,7 +142,12 @@ public class ShardedJedisTest extends Assert { } }); - assertEquals("a", results.get(0)); - assertEquals("b", results.get(1)); + List expected = new ArrayList(2); + expected.add("a".getBytes(Protocol.UTF8)); + expected.add("b".getBytes(Protocol.UTF8)); + + JedisTest.compareList(expected, results); +// assertArrayEquals("a".getBytes(Protocol.UTF8), results.get(0)); +// assertArrayEquals("b".getBytes(Protocol.UTF8), results.get(1)); } } \ No newline at end of file