From d1d3b545b2cae9db3b02ab34c6bfebc4d57a6867 Mon Sep 17 00:00:00 2001 From: M Sazzadul Hoque Date: Tue, 26 Nov 2019 20:57:52 +0600 Subject: [PATCH] Modify tests (#2083) Changes mostly includes: - Move utility methods (arrayContains, setContains) from JedisCommandTestBase - close()/disconnect() Jedis objects --- .../clients/jedis/tests/JedisPoolTest.java | 7 +++- .../jedis/tests/JedisSentinelPoolTest.java | 9 +++++- .../jedis/tests/JedisSentinelTest.java | 1 + .../redis/clients/jedis/tests/JedisTest.java | 13 ++++++-- .../clients/jedis/tests/PipeliningTest.java | 8 +++++ .../jedis/tests/ShardedJedisPoolTest.java | 4 +++ .../commands/AllKindOfValuesCommandsTest.java | 5 +-- .../tests/commands/ClientCommandsTest.java | 2 +- .../tests/commands/HashesCommandsTest.java | 5 +-- .../tests/commands/JedisCommandTestBase.java | 32 ++----------------- .../jedis/tests/commands/MigrateTest.java | 2 +- .../tests/commands/SlowlogCommandsTest.java | 6 +++- .../commands/TransactionCommandsTest.java | 9 ++++++ .../clients/jedis/tests/utils/AssertUtil.java | 10 +++++- .../jedis/tests/utils/ByteArrayUtil.java | 2 -- 15 files changed, 72 insertions(+), 43 deletions(-) diff --git a/src/test/java/redis/clients/jedis/tests/JedisPoolTest.java b/src/test/java/redis/clients/jedis/tests/JedisPoolTest.java index a118f8187c..4124f20d5a 100644 --- a/src/test/java/redis/clients/jedis/tests/JedisPoolTest.java +++ b/src/test/java/redis/clients/jedis/tests/JedisPoolTest.java @@ -149,10 +149,13 @@ public void startWithUrlString() { j.auth("foobared"); j.select(2); j.set("foo", "bar"); + j.close(); + JedisPool pool = new JedisPool("redis://:foobared@localhost:6380/2"); Jedis jedis = pool.getResource(); assertEquals("PONG", jedis.ping()); assertEquals("bar", jedis.get("foo")); + jedis.close(); } @Test @@ -161,6 +164,8 @@ public void startWithUrl() throws URISyntaxException { j.auth("foobared"); j.select(2); j.set("foo", "bar"); + j.close(); + JedisPool pool = new JedisPool(new URI("redis://:foobared@localhost:6380/2")); Jedis jedis = pool.getResource(); assertEquals("PONG", jedis.ping()); @@ -398,7 +403,7 @@ public void testCloseConnectionOnMakeObject() { } catch (Exception e) { assertEquals(currentClientCount, getClientCount(jedis.clientList())); } - + jedis.close(); } private int getClientCount(final String clientList) { diff --git a/src/test/java/redis/clients/jedis/tests/JedisSentinelPoolTest.java b/src/test/java/redis/clients/jedis/tests/JedisSentinelPoolTest.java index 4eb1079fc8..c5e014844c 100644 --- a/src/test/java/redis/clients/jedis/tests/JedisSentinelPoolTest.java +++ b/src/test/java/redis/clients/jedis/tests/JedisSentinelPoolTest.java @@ -11,6 +11,7 @@ import org.apache.commons.pool2.PooledObjectFactory; import org.apache.commons.pool2.impl.DefaultPooledObject; import org.apache.commons.pool2.impl.GenericObjectPoolConfig; +import org.junit.After; import org.junit.Before; import org.junit.Test; @@ -44,7 +45,13 @@ public void setUp() throws Exception { sentinelJedis1 = new Jedis(sentinel1); sentinelJedis2 = new Jedis(sentinel2); } - + + @After + public void tearDown() throws Exception { + sentinelJedis1.close(); + sentinelJedis2.close(); + } + @Test public void repeatedSentinelPoolInitialization() { diff --git a/src/test/java/redis/clients/jedis/tests/JedisSentinelTest.java b/src/test/java/redis/clients/jedis/tests/JedisSentinelTest.java index abe889445c..1f258819a8 100644 --- a/src/test/java/redis/clients/jedis/tests/JedisSentinelTest.java +++ b/src/test/java/redis/clients/jedis/tests/JedisSentinelTest.java @@ -96,6 +96,7 @@ public void sentinelFailover() throws InterruptedException { assertNotEquals(newMaster, currentMaster); } finally { j.close(); + j2.close(); } } diff --git a/src/test/java/redis/clients/jedis/tests/JedisTest.java b/src/test/java/redis/clients/jedis/tests/JedisTest.java index 54b617ea08..b06b1e42cd 100644 --- a/src/test/java/redis/clients/jedis/tests/JedisTest.java +++ b/src/test/java/redis/clients/jedis/tests/JedisTest.java @@ -24,11 +24,13 @@ import redis.clients.jedis.util.SafeEncoder; public class JedisTest extends JedisCommandTestBase { + @Test public void useWithoutConnecting() { Jedis jedis = new Jedis("localhost"); jedis.auth("foobared"); jedis.dbSize(); + jedis.close(); } @Test @@ -51,6 +53,7 @@ public void connectWithShardInfo() { shardInfo.setPassword("foobared"); Jedis jedis = new Jedis(shardInfo); jedis.get("foo"); + jedis.close(); } @Test @@ -103,7 +106,6 @@ public void failWhenSendingNullValues() { @Test(expected = InvalidURIException.class) public void shouldThrowInvalidURIExceptionForInvalidURI() throws URISyntaxException { Jedis j = new Jedis(new URI("localhost:6380")); - j.ping(); } @Test @@ -121,9 +123,12 @@ public void startWithUrlString() { j.auth("foobared"); j.select(2); j.set("foo", "bar"); + j.close(); + Jedis jedis = new Jedis("redis://:foobared@localhost:6380/2"); assertEquals("PONG", jedis.ping()); assertEquals("bar", jedis.get("foo")); + jedis.close(); } @Test @@ -132,13 +137,15 @@ public void startWithUrl() throws URISyntaxException { j.auth("foobared"); j.select(2); j.set("foo", "bar"); + Jedis jedis = new Jedis(new URI("redis://:foobared@localhost:6380/2")); assertEquals("PONG", jedis.ping()); assertEquals("bar", jedis.get("foo")); + jedis.close(); } @Test - public void shouldNotUpdateDbIndexIfSelectFails() throws URISyntaxException { + public void shouldNotUpdateDbIndexIfSelectFails() { int currentDb = jedis.getDB(); try { int invalidDb = -1; @@ -157,12 +164,14 @@ public void allowUrlWithNoDBAndNoPassword() { assertEquals("localhost", jedis.getClient().getHost()); assertEquals(6380, jedis.getClient().getPort()); assertEquals(0, jedis.getDB()); + jedis.close(); jedis = new Jedis("redis://localhost:6380/"); jedis.auth("foobared"); assertEquals("localhost", jedis.getClient().getHost()); assertEquals(6380, jedis.getClient().getPort()); assertEquals(0, jedis.getDB()); + jedis.close(); } @Test diff --git a/src/test/java/redis/clients/jedis/tests/PipeliningTest.java b/src/test/java/redis/clients/jedis/tests/PipeliningTest.java index 7b9b07fa87..e3661635f0 100644 --- a/src/test/java/redis/clients/jedis/tests/PipeliningTest.java +++ b/src/test/java/redis/clients/jedis/tests/PipeliningTest.java @@ -22,6 +22,7 @@ import org.hamcrest.CoreMatchers; import org.hamcrest.Matcher; +import org.junit.After; import org.junit.Test; import redis.clients.jedis.Jedis; @@ -34,6 +35,11 @@ public class PipeliningTest extends JedisCommandTestBase { + @After + public void tearDown() throws Exception { + jedis.close(); + } + @Test public void pipeline() { Pipeline p = jedis.pipelined(); @@ -651,6 +657,7 @@ public void testCloseable() throws IOException { // it shouldn't meet any exception retFuture1.get(); retFuture2.get(); + jedis2.close(); } @Test @@ -681,6 +688,7 @@ public void testCloseableWithMulti() throws IOException { // it shouldn't meet any exception retFuture1.get(); retFuture2.get(); + jedis2.close(); } private void verifyHasBothValues(String firstKey, String secondKey, String value1, String value2) { diff --git a/src/test/java/redis/clients/jedis/tests/ShardedJedisPoolTest.java b/src/test/java/redis/clients/jedis/tests/ShardedJedisPoolTest.java index 68db3382c6..bb51545663 100644 --- a/src/test/java/redis/clients/jedis/tests/ShardedJedisPoolTest.java +++ b/src/test/java/redis/clients/jedis/tests/ShardedJedisPoolTest.java @@ -188,10 +188,12 @@ public void startWithUrlString() { Jedis j = new Jedis("localhost", 6380); j.auth("foobared"); j.set("foo", "bar"); + j.disconnect(); j = new Jedis("localhost", 6379); j.auth("foobared"); j.set("foo", "bar"); + j.disconnect(); List shards = new ArrayList(); shards.add(new JedisShardInfo("redis://:foobared@localhost:6380")); @@ -216,10 +218,12 @@ public void startWithUrl() throws URISyntaxException { Jedis j = new Jedis("localhost", 6380); j.auth("foobared"); j.set("foo", "bar"); + j.disconnect(); j = new Jedis("localhost", 6379); j.auth("foobared"); j.set("foo", "bar"); + j.disconnect(); List shards = new ArrayList(); shards.add(new JedisShardInfo(new URI("redis://:foobared@localhost:6380"))); diff --git a/src/test/java/redis/clients/jedis/tests/commands/AllKindOfValuesCommandsTest.java b/src/test/java/redis/clients/jedis/tests/commands/AllKindOfValuesCommandsTest.java index 8f70775cf3..70c4322ad7 100644 --- a/src/test/java/redis/clients/jedis/tests/commands/AllKindOfValuesCommandsTest.java +++ b/src/test/java/redis/clients/jedis/tests/commands/AllKindOfValuesCommandsTest.java @@ -15,6 +15,7 @@ import static redis.clients.jedis.ScanParams.SCAN_POINTER_START; import static redis.clients.jedis.ScanParams.SCAN_POINTER_START_BINARY; import static redis.clients.jedis.params.SetParams.setParams; +import static redis.clients.jedis.tests.utils.AssertUtil.assertCollectionContains; import java.util.ArrayList; import java.util.Arrays; @@ -232,8 +233,8 @@ public void keys() { Set bkeys = jedis.keys(bfoostar); assertEquals(2, bkeys.size()); - assertTrue(setContains(bkeys, bfoo)); - assertTrue(setContains(bkeys, bfoobar)); + assertCollectionContains(bkeys, bfoo); + assertCollectionContains(bkeys, bfoobar); bkeys = jedis.keys(bbarstar); diff --git a/src/test/java/redis/clients/jedis/tests/commands/ClientCommandsTest.java b/src/test/java/redis/clients/jedis/tests/commands/ClientCommandsTest.java index 458eec24d5..e74181fb87 100644 --- a/src/test/java/redis/clients/jedis/tests/commands/ClientCommandsTest.java +++ b/src/test/java/redis/clients/jedis/tests/commands/ClientCommandsTest.java @@ -37,7 +37,7 @@ public void setUp() throws Exception { @After @Override - public void tearDown() { + public void tearDown() throws Exception { client.close(); super.tearDown(); } 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 8524621779..a29d7d6ea5 100644 --- a/src/test/java/redis/clients/jedis/tests/commands/HashesCommandsTest.java +++ b/src/test/java/redis/clients/jedis/tests/commands/HashesCommandsTest.java @@ -9,6 +9,7 @@ import static redis.clients.jedis.ScanParams.SCAN_POINTER_START_BINARY; import static redis.clients.jedis.tests.utils.AssertUtil.assertByteArrayListEquals; import static redis.clients.jedis.tests.utils.AssertUtil.assertByteArraySetEquals; +import static redis.clients.jedis.tests.utils.AssertUtil.assertCollectionContains; import java.util.ArrayList; import java.util.HashMap; @@ -318,8 +319,8 @@ public void hvals() { List bvals = jedis.hvals(bfoo); assertEquals(2, bvals.size()); - assertTrue(arrayContains(bvals, bbar)); - assertTrue(arrayContains(bvals, bcar)); + assertCollectionContains(bvals, bbar); + assertCollectionContains(bvals, bcar); } @Test diff --git a/src/test/java/redis/clients/jedis/tests/commands/JedisCommandTestBase.java b/src/test/java/redis/clients/jedis/tests/commands/JedisCommandTestBase.java index 8b018a3ee8..9d5b2d9d0a 100644 --- a/src/test/java/redis/clients/jedis/tests/commands/JedisCommandTestBase.java +++ b/src/test/java/redis/clients/jedis/tests/commands/JedisCommandTestBase.java @@ -1,9 +1,7 @@ package redis.clients.jedis.tests.commands; -import static org.junit.Assert.assertArrayEquals; - -import java.util.List; -import java.util.Set; +import java.util.LinkedHashMap; +import java.util.Map; import org.junit.After; import org.junit.Before; @@ -30,7 +28,7 @@ public void setUp() throws Exception { } @After - public void tearDown() { + public void tearDown() throws Exception { jedis.disconnect(); } @@ -40,28 +38,4 @@ protected Jedis createJedis() { j.auth("foobared"); return j; } - - protected boolean arrayContains(List array, byte[] expected) { - for (byte[] a : array) { - try { - assertArrayEquals(a, expected); - return true; - } catch (AssertionError e) { - - } - } - return false; - } - - protected boolean setContains(Set set, byte[] expected) { - for (byte[] a : set) { - try { - assertArrayEquals(a, expected); - return true; - } catch (AssertionError e) { - - } - } - return false; - } } diff --git a/src/test/java/redis/clients/jedis/tests/commands/MigrateTest.java b/src/test/java/redis/clients/jedis/tests/commands/MigrateTest.java index 291450c397..dad1ecf649 100644 --- a/src/test/java/redis/clients/jedis/tests/commands/MigrateTest.java +++ b/src/test/java/redis/clients/jedis/tests/commands/MigrateTest.java @@ -52,7 +52,7 @@ public void setUp() throws Exception { @After @Override - public void tearDown() { + public void tearDown() throws Exception { dest.close(); destAuth.close(); super.tearDown(); diff --git a/src/test/java/redis/clients/jedis/tests/commands/SlowlogCommandsTest.java b/src/test/java/redis/clients/jedis/tests/commands/SlowlogCommandsTest.java index ded19b0f40..513345243b 100644 --- a/src/test/java/redis/clients/jedis/tests/commands/SlowlogCommandsTest.java +++ b/src/test/java/redis/clients/jedis/tests/commands/SlowlogCommandsTest.java @@ -14,7 +14,9 @@ public class SlowlogCommandsTest extends JedisCommandTestBase { @Test public void slowlog() { - // do something + final String slowlogTimeParam = "slowlog-log-slower-than"; + final String slowlogTimeValue = jedis.configGet(slowlogTimeParam).get(1); + jedis.configSet("slowlog-log-slower-than", "0"); jedis.set("foo", "bar"); jedis.set("foo2", "bar2"); @@ -48,5 +50,7 @@ public void slowlog() { assertTrue(len1 > len2); assertTrue(log1.size() > log2.size()); assertTrue(blog1.size() > blog2.size()); + + jedis.configSet(slowlogTimeParam, slowlogTimeValue); } } \ No newline at end of file diff --git a/src/test/java/redis/clients/jedis/tests/commands/TransactionCommandsTest.java b/src/test/java/redis/clients/jedis/tests/commands/TransactionCommandsTest.java index f65351255c..35c96c62ee 100644 --- a/src/test/java/redis/clients/jedis/tests/commands/TransactionCommandsTest.java +++ b/src/test/java/redis/clients/jedis/tests/commands/TransactionCommandsTest.java @@ -14,6 +14,7 @@ import java.util.Arrays; import java.util.List; import java.util.Set; +import org.junit.After; import org.junit.Before; import org.junit.Test; @@ -37,6 +38,7 @@ public class TransactionCommandsTest extends JedisCommandTestBase { Jedis nj; @Before + @Override public void setUp() throws Exception { super.setUp(); @@ -46,6 +48,13 @@ public void setUp() throws Exception { nj.flushAll(); } + @After + @Override + public void tearDown() throws Exception { + nj.close(); + super.tearDown(); + } + @Test public void multi() { Transaction trans = jedis.multi(); diff --git a/src/test/java/redis/clients/jedis/tests/utils/AssertUtil.java b/src/test/java/redis/clients/jedis/tests/utils/AssertUtil.java index dcafbf6fbe..c5b1c707b2 100644 --- a/src/test/java/redis/clients/jedis/tests/utils/AssertUtil.java +++ b/src/test/java/redis/clients/jedis/tests/utils/AssertUtil.java @@ -2,7 +2,6 @@ import static org.junit.Assert.assertArrayEquals; import static org.junit.Assert.assertEquals; -import static org.junit.Assert.assertTrue; import java.util.Arrays; import java.util.Collection; @@ -15,6 +14,15 @@ public class AssertUtil { + public static boolean assertCollectionContains(Collection array, byte[] expected) { + for (byte[] bytes : array) { + if (Arrays.equals(bytes, expected)) { + return true; + } + } + throw new ComparisonFailure("element is missing", Arrays.toString(expected), array.toString()); + } + public static void assertByteArrayListEquals(List expected, List actual) { assertEquals(expected.size(), actual.size()); for (int n = 0; n < expected.size(); n++) { diff --git a/src/test/java/redis/clients/jedis/tests/utils/ByteArrayUtil.java b/src/test/java/redis/clients/jedis/tests/utils/ByteArrayUtil.java index a377f49baf..08dccf1e09 100644 --- a/src/test/java/redis/clients/jedis/tests/utils/ByteArrayUtil.java +++ b/src/test/java/redis/clients/jedis/tests/utils/ByteArrayUtil.java @@ -1,7 +1,5 @@ package redis.clients.jedis.tests.utils; -import static org.junit.Assert.assertTrue; - import java.util.Arrays; import java.util.Collection; import java.util.Iterator;