From e915aa18fc96aeafd83dadceb548cf13a7fc8708 Mon Sep 17 00:00:00 2001 From: Andrew Carbonetto Date: Mon, 1 Apr 2024 14:22:53 -0700 Subject: [PATCH 1/8] Clean up all warnings in Java client test (#163) * Clean up all warnings in Java client test Signed-off-by: Andrew Carbonetto --------- Signed-off-by: Andrew Carbonetto --- .../test/java/glide/api/RedisClientTest.java | 266 +++++++++--------- .../glide/api/RedisClusterClientTest.java | 4 +- .../ConnectionWithGlideMockTests.java | 19 +- .../ThreadPoolResourceAllocatorTest.java | 15 +- .../src/test/java/glide/ffi/FfiTest.java | 2 +- .../glide/managers/ConnectionManagerTest.java | 20 +- .../test/java/glide/utils/RustCoreMock.java | 17 +- 7 files changed, 171 insertions(+), 172 deletions(-) diff --git a/java/client/src/test/java/glide/api/RedisClientTest.java b/java/client/src/test/java/glide/api/RedisClientTest.java index 397bda7e56..923c84eeab 100644 --- a/java/client/src/test/java/glide/api/RedisClientTest.java +++ b/java/client/src/test/java/glide/api/RedisClientTest.java @@ -133,8 +133,8 @@ public void customCommand_returns_success() { Object value = "testValue"; String cmd = "GETSTRING"; String[] arguments = new String[] {cmd, key}; - CompletableFuture testResponse = mock(CompletableFuture.class); - when(testResponse.get()).thenReturn(value); + CompletableFuture testResponse = new CompletableFuture<>(); + testResponse.complete(value); // match on protobuf request when(commandManager.submitNewCommand(eq(CustomCommand), eq(arguments), any())) @@ -175,8 +175,8 @@ public void echo_returns_success() { @Test public void ping_returns_success() { // setup - CompletableFuture testResponse = mock(CompletableFuture.class); - when(testResponse.get()).thenReturn("PONG"); + CompletableFuture testResponse = new CompletableFuture<>(); + testResponse.complete("PONG"); // match on protobuf request when(commandManager.submitNewCommand(eq(Ping), eq(new String[0]), any())) @@ -217,9 +217,9 @@ public void ping_with_message_returns_success() { @Test public void select_returns_success() { // setup - CompletableFuture testResponse = mock(CompletableFuture.class); - Long index = 5L; - when(testResponse.get()).thenReturn(OK); + CompletableFuture testResponse = new CompletableFuture<>(); + long index = 5L; + testResponse.complete(OK); // match on protobuf request when(commandManager.submitNewCommand( @@ -241,8 +241,8 @@ public void del_returns_long_success() { // setup String[] keys = new String[] {"testKey1", "testKey2"}; Long numberDeleted = 1L; - CompletableFuture testResponse = mock(CompletableFuture.class); - when(testResponse.get()).thenReturn(numberDeleted); + CompletableFuture testResponse = new CompletableFuture<>(); + testResponse.complete(numberDeleted); when(commandManager.submitNewCommand(eq(Del), eq(keys), any())).thenReturn(testResponse); // exercise @@ -260,8 +260,8 @@ public void unlink_returns_long_success() { // setup String[] keys = new String[] {"testKey1", "testKey2"}; Long numberUnlinked = 1L; - CompletableFuture testResponse = mock(CompletableFuture.class); - when(testResponse.get()).thenReturn(numberUnlinked); + CompletableFuture testResponse = new CompletableFuture<>(); + testResponse.complete(numberUnlinked); // match on protobuf request when(commandManager.submitNewCommand(eq(Unlink), eq(keys), any())) @@ -282,8 +282,8 @@ public void get_returns_success() { // setup String key = "testKey"; String value = "testValue"; - CompletableFuture testResponse = mock(CompletableFuture.class); - when(testResponse.get()).thenReturn(value); + CompletableFuture testResponse = new CompletableFuture<>(); + testResponse.complete(value); when(commandManager.submitNewCommand(eq(GetString), eq(new String[] {key}), any())) .thenReturn(testResponse); @@ -302,9 +302,10 @@ public void set_returns_success() { // setup String key = "testKey"; String value = "testValue"; - CompletableFuture testResponse = mock(CompletableFuture.class); - when(testResponse.get()).thenReturn(null); - when(commandManager.submitNewCommand(eq(SetString), eq(new String[] {key, value}), any())) + CompletableFuture testResponse = new CompletableFuture<>(); + testResponse.complete(null); + when(commandManager.submitNewCommand( + eq(SetString), eq(new String[] {key, value}), any())) .thenReturn(testResponse); // exercise @@ -330,8 +331,8 @@ public void set_with_SetOptions_OnlyIfExists_returns_success() { .build(); String[] arguments = new String[] {key, value, ONLY_IF_EXISTS.getRedisApi(), "KEEPTTL"}; - CompletableFuture testResponse = mock(CompletableFuture.class); - when(testResponse.get()).thenReturn(null); + CompletableFuture testResponse = new CompletableFuture<>(); + testResponse.complete(null); when(commandManager.submitNewCommand(eq(SetString), eq(arguments), any())) .thenReturn(testResponse); @@ -359,8 +360,8 @@ public void set_with_SetOptions_OnlyIfDoesNotExist_returns_success() { new String[] { key, value, ONLY_IF_DOES_NOT_EXIST.getRedisApi(), RETURN_OLD_VALUE, "EXAT", "60" }; - CompletableFuture testResponse = mock(CompletableFuture.class); - when(testResponse.get()).thenReturn(value); + CompletableFuture testResponse = new CompletableFuture<>(); + testResponse.complete(value); when(commandManager.submitNewCommand(eq(SetString), eq(arguments), any())) .thenReturn(testResponse); @@ -378,8 +379,8 @@ public void exists_returns_long_success() { // setup String[] keys = new String[] {"testKey1", "testKey2"}; Long numberExisting = 1L; - CompletableFuture testResponse = mock(CompletableFuture.class); - when(testResponse.get()).thenReturn(numberExisting); + CompletableFuture testResponse = new CompletableFuture<>(); + testResponse.complete(numberExisting); when(commandManager.submitNewCommand(eq(Exists), eq(keys), any())) .thenReturn(testResponse); @@ -400,8 +401,8 @@ public void expire_returns_success() { long seconds = 10L; String[] arguments = new String[] {key, Long.toString(seconds)}; - CompletableFuture testResponse = mock(CompletableFuture.class); - when(testResponse.get()).thenReturn(true); + CompletableFuture testResponse = new CompletableFuture<>(); + testResponse.complete(Boolean.TRUE); // match on protobuf request when(commandManager.submitNewCommand(eq(Expire), eq(arguments), any())) @@ -423,8 +424,8 @@ public void expire_with_expireOptions_returns_success() { long seconds = 10L; String[] arguments = new String[] {key, Long.toString(seconds), "NX"}; - CompletableFuture testResponse = mock(CompletableFuture.class); - when(testResponse.get()).thenReturn(false); + CompletableFuture testResponse = new CompletableFuture<>(); + testResponse.complete(Boolean.FALSE); // match on protobuf request when(commandManager.submitNewCommand(eq(Expire), eq(arguments), any())) @@ -446,8 +447,8 @@ public void expireAt_returns_success() { long unixSeconds = 100000L; String[] arguments = new String[] {key, Long.toString(unixSeconds)}; - CompletableFuture testResponse = mock(CompletableFuture.class); - when(testResponse.get()).thenReturn(true); + CompletableFuture testResponse = new CompletableFuture<>(); + testResponse.complete(Boolean.TRUE); // match on protobuf request when(commandManager.submitNewCommand(eq(ExpireAt), eq(arguments), any())) @@ -469,8 +470,8 @@ public void expireAt_with_expireOptions_returns_success() { long unixSeconds = 100000L; String[] arguments = new String[] {key, Long.toString(unixSeconds), "XX"}; - CompletableFuture testResponse = mock(CompletableFuture.class); - when(testResponse.get()).thenReturn(false); + CompletableFuture testResponse = new CompletableFuture<>(); + testResponse.complete(Boolean.FALSE); // match on protobuf request when(commandManager.submitNewCommand(eq(ExpireAt), eq(arguments), any())) @@ -493,8 +494,8 @@ public void pexpire_returns_success() { long milliseconds = 50000L; String[] arguments = new String[] {key, Long.toString(milliseconds)}; - CompletableFuture testResponse = mock(CompletableFuture.class); - when(testResponse.get()).thenReturn(true); + CompletableFuture testResponse = new CompletableFuture<>(); + testResponse.complete(Boolean.TRUE); // match on protobuf request when(commandManager.submitNewCommand(eq(PExpire), eq(arguments), any())) @@ -516,8 +517,8 @@ public void pexpire_with_expireOptions_returns_success() { long milliseconds = 50000L; String[] arguments = new String[] {key, Long.toString(milliseconds), "LT"}; - CompletableFuture testResponse = mock(CompletableFuture.class); - when(testResponse.get()).thenReturn(false); + CompletableFuture testResponse = new CompletableFuture<>(); + testResponse.complete(Boolean.FALSE); // match on protobuf request when(commandManager.submitNewCommand(eq(PExpire), eq(arguments), any())) @@ -540,8 +541,8 @@ public void pexpireAt_returns_success() { long unixMilliseconds = 999999L; String[] arguments = new String[] {key, Long.toString(unixMilliseconds)}; - CompletableFuture testResponse = mock(CompletableFuture.class); - when(testResponse.get()).thenReturn(true); + CompletableFuture testResponse = new CompletableFuture<>(); + testResponse.complete(Boolean.TRUE); // match on protobuf request when(commandManager.submitNewCommand(eq(PExpireAt), eq(arguments), any())) @@ -563,8 +564,8 @@ public void pexpireAt_with_expireOptions_returns_success() { long unixMilliseconds = 999999L; String[] arguments = new String[] {key, Long.toString(unixMilliseconds), "GT"}; - CompletableFuture testResponse = mock(CompletableFuture.class); - when(testResponse.get()).thenReturn(false); + CompletableFuture testResponse = new CompletableFuture<>(); + testResponse.complete(Boolean.FALSE); // match on protobuf request when(commandManager.submitNewCommand(eq(PExpireAt), eq(arguments), any())) @@ -585,9 +586,8 @@ public void ttl_returns_success() { // setup String key = "testKey"; long ttl = 999L; - - CompletableFuture testResponse = mock(CompletableFuture.class); - when(testResponse.get()).thenReturn(ttl); + CompletableFuture testResponse = new CompletableFuture<>(); + testResponse.complete(ttl); // match on protobuf request when(commandManager.submitNewCommand(eq(TTL), eq(new String[] {key}), any())) @@ -701,9 +701,9 @@ public void persist_returns_success() { @Test public void info_returns_success() { // setup - CompletableFuture testResponse = mock(CompletableFuture.class); String testPayload = "Key: Value"; - when(testResponse.get()).thenReturn(testPayload); + CompletableFuture testResponse = new CompletableFuture<>(); + testResponse.complete(testPayload); when(commandManager.submitNewCommand(eq(Info), eq(new String[0]), any())) .thenReturn(testResponse); @@ -722,9 +722,9 @@ public void info_with_multiple_InfoOptions_returns_success() { // setup String[] arguments = new String[] {InfoOptions.Section.ALL.toString(), InfoOptions.Section.DEFAULT.toString()}; - CompletableFuture testResponse = mock(CompletableFuture.class); String testPayload = "Key: Value"; - when(testResponse.get()).thenReturn(testPayload); + CompletableFuture testResponse = new CompletableFuture<>(); + testResponse.complete(testPayload); when(commandManager.submitNewCommand(eq(Info), eq(arguments), any())) .thenReturn(testResponse); @@ -746,9 +746,9 @@ public void info_with_multiple_InfoOptions_returns_success() { @Test public void info_with_empty_InfoOptions_returns_success() { // setup - CompletableFuture testResponse = mock(CompletableFuture.class); String testPayload = "Key: Value"; - when(testResponse.get()).thenReturn(testPayload); + CompletableFuture testResponse = new CompletableFuture<>(); + testResponse.complete(testPayload); when(commandManager.submitNewCommand(eq(Info), eq(new String[0]), any())) .thenReturn(testResponse); @@ -768,11 +768,11 @@ public void mget_returns_success() { String[] keys = {"key1", null, "key2"}; String[] values = {"value1", null, "value2"}; - CompletableFuture testResponse = mock(CompletableFuture.class); - when(testResponse.get()).thenReturn(values); + CompletableFuture testResponse = new CompletableFuture<>(); + testResponse.complete(values); // match on protobuf request - when(commandManager.submitNewCommand(eq(MGet), eq(keys), any())) + when(commandManager.submitNewCommand(eq(MGet), eq(keys), any())) .thenReturn(testResponse); // exercise @@ -793,8 +793,8 @@ public void mset_returns_success() { keyValueMap.put("key2", "value2"); String[] args = {"key1", "value1", "key2", "value2"}; - CompletableFuture testResponse = mock(CompletableFuture.class); - when(testResponse.get()).thenReturn(OK); + CompletableFuture testResponse = new CompletableFuture<>(); + testResponse.complete(OK); // match on protobuf request when(commandManager.submitNewCommand(eq(MSet), eq(args), any())) @@ -816,11 +816,11 @@ public void incr_returns_success() { String key = "testKey"; Long value = 10L; - CompletableFuture testResponse = mock(CompletableFuture.class); - when(testResponse.get()).thenReturn(value); + CompletableFuture testResponse = new CompletableFuture<>(); + testResponse.complete(value); // match on protobuf request - when(commandManager.submitNewCommand(eq(Incr), eq(new String[] {key}), any())) + when(commandManager.submitNewCommand(eq(Incr), eq(new String[] {key}), any())) .thenReturn(testResponse); // exercise @@ -840,11 +840,11 @@ public void incrBy_returns_success() { long amount = 1L; Long value = 10L; - CompletableFuture testResponse = mock(CompletableFuture.class); - when(testResponse.get()).thenReturn(value); + CompletableFuture testResponse = new CompletableFuture<>(); + testResponse.complete(value); // match on protobuf request - when(commandManager.submitNewCommand( + when(commandManager.submitNewCommand( eq(IncrBy), eq(new String[] {key, Long.toString(amount)}), any())) .thenReturn(testResponse); @@ -865,11 +865,11 @@ public void incrByFloat_returns_success() { double amount = 1.1; Double value = 10.1; - CompletableFuture testResponse = mock(CompletableFuture.class); - when(testResponse.get()).thenReturn(value); + CompletableFuture testResponse = new CompletableFuture<>(); + testResponse.complete(value); // match on protobuf request - when(commandManager.submitNewCommand( + when(commandManager.submitNewCommand( eq(IncrByFloat), eq(new String[] {key, Double.toString(amount)}), any())) .thenReturn(testResponse); @@ -889,8 +889,8 @@ public void decr_returns_success() { String key = "testKey"; Long value = 10L; - CompletableFuture testResponse = mock(CompletableFuture.class); - when(testResponse.get()).thenReturn(value); + CompletableFuture testResponse = new CompletableFuture<>(); + testResponse.complete(value); // match on protobuf request when(commandManager.submitNewCommand(eq(Decr), eq(new String[] {key}), any())) @@ -913,8 +913,8 @@ public void decrBy_returns_success() { long amount = 1L; Long value = 10L; - CompletableFuture testResponse = mock(CompletableFuture.class); - when(testResponse.get()).thenReturn(value); + CompletableFuture testResponse = new CompletableFuture<>(); + testResponse.complete(value); // match on protobuf request when(commandManager.submitNewCommand( @@ -962,8 +962,8 @@ public void hget_success() { String[] args = new String[] {key, field}; String value = "value"; - CompletableFuture testResponse = mock(CompletableFuture.class); - when(testResponse.get()).thenReturn(value); + CompletableFuture testResponse = new CompletableFuture<>(); + testResponse.complete(value); when(commandManager.submitNewCommand(eq(HashGet), eq(args), any())) .thenReturn(testResponse); @@ -987,8 +987,8 @@ public void hset_success() { String[] args = new String[] {key, "field1", "value1", "field2", "value2"}; Long value = 2L; - CompletableFuture testResponse = mock(CompletableFuture.class); - when(testResponse.get()).thenReturn(value); + CompletableFuture testResponse = new CompletableFuture<>(); + testResponse.complete(value); when(commandManager.submitNewCommand(eq(HashSet), eq(args), any())) .thenReturn(testResponse); @@ -1035,8 +1035,8 @@ public void hdel_success() { String[] args = {key, "testField1", "testField2"}; Long value = 2L; - CompletableFuture testResponse = mock(CompletableFuture.class); - when(testResponse.get()).thenReturn(value); + CompletableFuture testResponse = new CompletableFuture<>(); + testResponse.complete(value); // match on protobuf request when(commandManager.submitNewCommand(eq(HashDel), eq(args), any())) @@ -1084,8 +1084,8 @@ public void hmget_success() { String[] args = {"testKey", "testField1", "testField2"}; String[] value = {"testValue1", "testValue2"}; - CompletableFuture testResponse = mock(CompletableFuture.class); - when(testResponse.get()).thenReturn(value); + CompletableFuture testResponse = new CompletableFuture<>(); + testResponse.complete(value); // match on protobuf request when(commandManager.submitNewCommand(eq(HashMGet), eq(args), any())) @@ -1109,8 +1109,8 @@ public void hexists_success() { String[] args = new String[] {key, field}; Boolean value = true; - CompletableFuture testResponse = mock(CompletableFuture.class); - when(testResponse.get()).thenReturn(value); + CompletableFuture testResponse = new CompletableFuture<>(); + testResponse.complete(value); // match on protobuf request when(commandManager.submitNewCommand(eq(HashExists), eq(args), any())) @@ -1135,8 +1135,8 @@ public void hgetall_success() { value.put("key1", "field1"); value.put("key2", "field2"); - CompletableFuture> testResponse = mock(CompletableFuture.class); - when(testResponse.get()).thenReturn(value); + CompletableFuture> testResponse = new CompletableFuture<>(); + testResponse.complete(value); // match on protobuf request when(commandManager.>submitNewCommand(eq(HashGetAll), eq(args), any())) @@ -1160,8 +1160,8 @@ public void hincrBy_returns_success() { long amount = 1L; Long value = 10L; - CompletableFuture testResponse = mock(CompletableFuture.class); - when(testResponse.get()).thenReturn(value); + CompletableFuture testResponse = new CompletableFuture<>(); + testResponse.complete(value); // match on protobuf request when(commandManager.submitNewCommand( @@ -1186,8 +1186,8 @@ public void hincrByFloat_returns_success() { double amount = 1.0; Double value = 10.0; - CompletableFuture testResponse = mock(CompletableFuture.class); - when(testResponse.get()).thenReturn(value); + CompletableFuture testResponse = new CompletableFuture<>(); + testResponse.complete(value); // match on protobuf request when(commandManager.submitNewCommand( @@ -1212,8 +1212,8 @@ public void lpush_returns_success() { String[] args = new String[] {key, "value1", "value2"}; Long value = 2L; - CompletableFuture testResponse = mock(CompletableFuture.class); - when(testResponse.get()).thenReturn(value); + CompletableFuture testResponse = new CompletableFuture<>(); + testResponse.complete(value); // match on protobuf request when(commandManager.submitNewCommand(eq(LPush), eq(args), any())) @@ -1236,8 +1236,8 @@ public void lpop_returns_success() { String[] args = new String[] {key}; String value = "value"; - CompletableFuture testResponse = mock(CompletableFuture.class); - when(testResponse.get()).thenReturn(value); + CompletableFuture testResponse = new CompletableFuture<>(); + testResponse.complete(value); // match on protobuf request when(commandManager.submitNewCommand(eq(LPop), eq(args), any())) @@ -1261,8 +1261,8 @@ public void lpopCount_returns_success() { String[] args = new String[] {key, Long.toString(count)}; String[] value = new String[] {"value1", "value2"}; - CompletableFuture testResponse = mock(CompletableFuture.class); - when(testResponse.get()).thenReturn(value); + CompletableFuture testResponse = new CompletableFuture<>(); + testResponse.complete(value); // match on protobuf request when(commandManager.submitNewCommand(eq(LPop), eq(args), any())) @@ -1287,8 +1287,8 @@ public void lrange_returns_success() { String[] args = new String[] {key, Long.toString(start), Long.toString(end)}; String[] value = new String[] {"value1", "value2"}; - CompletableFuture testResponse = mock(CompletableFuture.class); - when(testResponse.get()).thenReturn(value); + CompletableFuture testResponse = new CompletableFuture<>(); + testResponse.complete(value); // match on protobuf request when(commandManager.submitNewCommand(eq(LRange), eq(args), any())) @@ -1312,8 +1312,8 @@ public void ltrim_returns_success() { long end = 2L; String[] args = new String[] {key, Long.toString(end), Long.toString(start)}; - CompletableFuture testResponse = mock(CompletableFuture.class); - when(testResponse.get()).thenReturn(OK); + CompletableFuture testResponse = new CompletableFuture<>(); + testResponse.complete(OK); // match on protobuf request when(commandManager.submitNewCommand(eq(LTrim), eq(args), any())) @@ -1336,8 +1336,8 @@ public void llen_returns_success() { String[] args = new String[] {key}; long value = 2L; - CompletableFuture testResponse = mock(CompletableFuture.class); - when(testResponse.get()).thenReturn(value); + CompletableFuture testResponse = new CompletableFuture<>(); + testResponse.complete(value); // match on protobuf request when(commandManager.submitNewCommand(eq(LLen), eq(args), any())).thenReturn(testResponse); @@ -1361,8 +1361,8 @@ public void lrem_returns_success() { String[] args = new String[] {key, Long.toString(count), element}; long value = 2L; - CompletableFuture testResponse = mock(CompletableFuture.class); - when(testResponse.get()).thenReturn(value); + CompletableFuture testResponse = new CompletableFuture<>(); + testResponse.complete(value); // match on protobuf request when(commandManager.submitNewCommand(eq(LRem), eq(args), any())).thenReturn(testResponse); @@ -1385,8 +1385,8 @@ public void rpush_returns_success() { String[] args = new String[] {key, "value1", "value2"}; Long value = 2L; - CompletableFuture testResponse = mock(CompletableFuture.class); - when(testResponse.get()).thenReturn(value); + CompletableFuture testResponse = new CompletableFuture<>(); + testResponse.complete(value); // match on protobuf request when(commandManager.submitNewCommand(eq(RPush), eq(args), any())) @@ -1409,8 +1409,8 @@ public void rpop_returns_success() { String value = "value"; String[] args = new String[] {key}; - CompletableFuture testResponse = mock(CompletableFuture.class); - when(testResponse.get()).thenReturn(value); + CompletableFuture testResponse = new CompletableFuture<>(); + testResponse.complete(value); // match on protobuf request when(commandManager.submitNewCommand(eq(RPop), eq(args), any())) @@ -1434,8 +1434,8 @@ public void rpopCount_returns_success() { String[] args = new String[] {key, Long.toString(count)}; String[] value = new String[] {"value1", "value2"}; - CompletableFuture testResponse = mock(CompletableFuture.class); - when(testResponse.get()).thenReturn(value); + CompletableFuture testResponse = new CompletableFuture<>(); + testResponse.complete(value); // match on protobuf request when(commandManager.submitNewCommand(eq(RPop), eq(args), any())) @@ -1459,8 +1459,8 @@ public void sadd_returns_success() { String[] arguments = ArrayUtils.addFirst(members, key); Long value = 2L; - CompletableFuture testResponse = mock(CompletableFuture.class); - when(testResponse.get()).thenReturn(value); + CompletableFuture testResponse = new CompletableFuture<>(); + testResponse.complete(value); // match on protobuf request when(commandManager.submitNewCommand(eq(SAdd), eq(arguments), any())) @@ -1484,8 +1484,8 @@ public void srem_returns_success() { String[] arguments = ArrayUtils.addFirst(members, key); Long value = 2L; - CompletableFuture testResponse = mock(CompletableFuture.class); - when(testResponse.get()).thenReturn(value); + CompletableFuture testResponse = new CompletableFuture<>(); + testResponse.complete(value); // match on protobuf request when(commandManager.submitNewCommand(eq(SRem), eq(arguments), any())) @@ -1507,8 +1507,8 @@ public void smembers_returns_success() { String key = "testKey"; Set value = Set.of("testMember"); - CompletableFuture> testResponse = mock(CompletableFuture.class); - when(testResponse.get()).thenReturn(value); + CompletableFuture> testResponse = new CompletableFuture<>(); + testResponse.complete(value); // match on protobuf request when(commandManager.>submitNewCommand(eq(SMembers), eq(new String[] {key}), any())) @@ -1530,8 +1530,8 @@ public void scard_returns_success() { String key = "testKey"; Long value = 2L; - CompletableFuture testResponse = mock(CompletableFuture.class); - when(testResponse.get()).thenReturn(value); + CompletableFuture testResponse = new CompletableFuture<>(); + testResponse.complete(value); // match on protobuf request when(commandManager.submitNewCommand(eq(SCard), eq(new String[] {key}), any())) @@ -1558,8 +1558,8 @@ public void zadd_noOptions_returns_success() { String[] arguments = ArrayUtils.addFirst(membersScoresArgs, key); Long value = 2L; - CompletableFuture testResponse = mock(CompletableFuture.class); - when(testResponse.get()).thenReturn(value); + CompletableFuture testResponse = new CompletableFuture<>(); + testResponse.complete(value); // match on protobuf request when(commandManager.submitNewCommand(eq(Zadd), eq(arguments), any())) @@ -1593,8 +1593,8 @@ public void zadd_withOptions_returns_success() { arguments = ArrayUtils.addAll(arguments, membersScoresArgs); Long value = 2L; - CompletableFuture testResponse = mock(CompletableFuture.class); - when(testResponse.get()).thenReturn(value); + CompletableFuture testResponse = new CompletableFuture<>(); + testResponse.complete(value); // match on protobuf request when(commandManager.submitNewCommand(eq(Zadd), eq(arguments), any())) @@ -1637,8 +1637,8 @@ public void zaddIncr_noOptions_returns_success() { String[] arguments = new String[] {key, "INCR", Double.toString(increment), member}; Double value = 3.0; - CompletableFuture testResponse = mock(CompletableFuture.class); - when(testResponse.get()).thenReturn(value); + CompletableFuture testResponse = new CompletableFuture<>(); + testResponse.complete(value); // match on protobuf request when(commandManager.submitNewCommand(eq(Zadd), eq(arguments), any())) @@ -1672,8 +1672,8 @@ public void zaddIncr_withOptions_returns_success() { new String[] {"INCR", Double.toString(increment), member}); Double value = 3.0; - CompletableFuture testResponse = mock(CompletableFuture.class); - when(testResponse.get()).thenReturn(value); + CompletableFuture testResponse = new CompletableFuture<>(); + testResponse.complete(value); // match on protobuf request when(commandManager.submitNewCommand(eq(Zadd), eq(arguments), any())) @@ -1692,8 +1692,8 @@ public void zaddIncr_withOptions_returns_success() { @Test public void clientId_returns_success() { // setup - CompletableFuture testResponse = mock(CompletableFuture.class); - when(testResponse.get()).thenReturn(42L); + CompletableFuture testResponse = new CompletableFuture<>(); + testResponse.complete(42L); // match on protobuf request when(commandManager.submitNewCommand(eq(ClientId), eq(new String[0]), any())) @@ -1711,8 +1711,8 @@ public void clientId_returns_success() { @Test public void clientGetName_returns_success() { // setup - CompletableFuture testResponse = mock(CompletableFuture.class); - when(testResponse.get()).thenReturn("TEST"); + CompletableFuture testResponse = new CompletableFuture<>(); + testResponse.complete("TEST"); // match on protobuf request when(commandManager.submitNewCommand(eq(ClientGetName), eq(new String[0]), any())) @@ -1730,8 +1730,8 @@ public void clientGetName_returns_success() { @Test public void configRewrite_returns_success() { // setup - CompletableFuture testResponse = mock(CompletableFuture.class); - when(testResponse.get()).thenReturn(OK); + CompletableFuture testResponse = new CompletableFuture<>(); + testResponse.complete(OK); // match on protobuf request when(commandManager.submitNewCommand(eq(ConfigRewrite), eq(new String[0]), any())) @@ -1750,8 +1750,8 @@ public void configRewrite_returns_success() { @Test public void configResetStat_returns_success() { // setup - CompletableFuture testResponse = mock(CompletableFuture.class); - when(testResponse.get()).thenReturn(OK); + CompletableFuture testResponse = new CompletableFuture<>(); + testResponse.complete(OK); // match on protobuf request when(commandManager.submitNewCommand(eq(ConfigResetStat), eq(new String[0]), any())) @@ -1770,9 +1770,9 @@ public void configResetStat_returns_success() { @Test public void configGet_returns_success() { // setup - CompletableFuture> testResponse = mock(CompletableFuture.class); Map testPayload = Map.of("timeout", "1000"); - when(testResponse.get()).thenReturn(testPayload); + CompletableFuture> testResponse = new CompletableFuture<>(); + testResponse.complete(testPayload); // match on protobuf request when(commandManager.>submitNewCommand( @@ -1792,8 +1792,8 @@ public void configGet_returns_success() { @Test public void configSet_returns_success() { // setup - CompletableFuture testResponse = mock(CompletableFuture.class); - when(testResponse.get()).thenReturn(OK); + CompletableFuture testResponse = new CompletableFuture<>(); + testResponse.complete(OK); // match on protobuf request when(commandManager.submitNewCommand( @@ -1817,8 +1817,8 @@ public void zrem_returns_success() { String[] arguments = ArrayUtils.addFirst(members, key); Long value = 2L; - CompletableFuture testResponse = mock(CompletableFuture.class); - when(testResponse.get()).thenReturn(value); + CompletableFuture testResponse = new CompletableFuture<>(); + testResponse.complete(value); // match on protobuf request when(commandManager.submitNewCommand(eq(Zrem), eq(arguments), any())) @@ -1841,8 +1841,8 @@ public void zcard_returns_success() { String[] arguments = new String[] {key}; Long value = 3L; - CompletableFuture testResponse = mock(CompletableFuture.class); - when(testResponse.get()).thenReturn(value); + CompletableFuture testResponse = new CompletableFuture<>(); + testResponse.complete(value); // match on protobuf request when(commandManager.submitNewCommand(eq(Zcard), eq(arguments), any())) diff --git a/java/client/src/test/java/glide/api/RedisClusterClientTest.java b/java/client/src/test/java/glide/api/RedisClusterClientTest.java index fde9adc3ac..4faa8e666e 100644 --- a/java/client/src/test/java/glide/api/RedisClusterClientTest.java +++ b/java/client/src/test/java/glide/api/RedisClusterClientTest.java @@ -175,7 +175,7 @@ public void ping_with_message_returns_success() { // setup String message = "RETURN OF THE PONG"; String[] arguments = new String[] {message}; - CompletableFuture testResponse = new CompletableFuture(); + CompletableFuture testResponse = new CompletableFuture<>(); testResponse.complete(message); // match on protobuf request @@ -287,7 +287,7 @@ public void echo_with_route_returns_success() { public void info_returns_string() { // setup CompletableFuture> testResponse = mock(CompletableFuture.class); - Map testPayload = new HashMap(); + Map testPayload = new HashMap<>(); testPayload.put("addr1", "value1"); testPayload.put("addr2", "value2"); testPayload.put("addr3", "value3"); diff --git a/java/client/src/test/java/glide/connection/ConnectionWithGlideMockTests.java b/java/client/src/test/java/glide/connection/ConnectionWithGlideMockTests.java index 331af6fa39..08235ac1fc 100644 --- a/java/client/src/test/java/glide/connection/ConnectionWithGlideMockTests.java +++ b/java/client/src/test/java/glide/connection/ConnectionWithGlideMockTests.java @@ -169,15 +169,16 @@ public void rethrow_error_on_read_when_malformed_packet_received() { @Test @SneakyThrows public void rethrow_error_if_UDS_channel_closed() { - var client = new TestClient(channelHandler); - stopRustCoreLibMock(); - try { - var exception = - assertThrows(ExecutionException.class, () -> client.customCommand(new String[0]).get()); - assertTrue(exception.getCause() instanceof ClosingException); - } finally { - // restart mock to let other tests pass if this one failed - startRustCoreLibMock(null); + try (var client = new TestClient(channelHandler)) { + stopRustCoreLibMock(); + try { + var exception = + assertThrows(ExecutionException.class, () -> client.customCommand(new String[0]).get()); + assertTrue(exception.getCause() instanceof ClosingException); + } finally { + // restart mock to let other tests pass if this one failed + startRustCoreLibMock(null); + } } } diff --git a/java/client/src/test/java/glide/connectors/resources/ThreadPoolResourceAllocatorTest.java b/java/client/src/test/java/glide/connectors/resources/ThreadPoolResourceAllocatorTest.java index 74f45779ef..3f8867d7ab 100644 --- a/java/client/src/test/java/glide/connectors/resources/ThreadPoolResourceAllocatorTest.java +++ b/java/client/src/test/java/glide/connectors/resources/ThreadPoolResourceAllocatorTest.java @@ -15,8 +15,6 @@ public class ThreadPoolResourceAllocatorTest { - ThreadPoolResourceAllocator service; - @BeforeEach public void init() { var threadPoolResource = ThreadPoolResourceAllocator.getOrCreate(() -> null); @@ -30,17 +28,19 @@ public void init() { public void getOrCreate_returns_default_after_repeated_calls() { ThreadPoolResource mockedThreadPoolResource = mock(ThreadPoolResource.class); EventLoopGroup mockedEventLoopGroup = mock(EventLoop.class); + @SuppressWarnings("unchecked") Supplier threadPoolSupplier = mock(Supplier.class); when(mockedThreadPoolResource.getEventLoopGroup()).thenReturn(mockedEventLoopGroup); when(mockedEventLoopGroup.isShuttingDown()).thenReturn(false); when(threadPoolSupplier.get()).thenReturn(mockedThreadPoolResource); - ThreadPoolResource theResource = service.getOrCreate(threadPoolSupplier); + ThreadPoolResource theResource = ThreadPoolResourceAllocator.getOrCreate(threadPoolSupplier); assertEquals(mockedThreadPoolResource, theResource); // Ensure that supplier only is invoked once to set up the shared resource - ThreadPoolResource theSameResource = service.getOrCreate(threadPoolSupplier); + ThreadPoolResource theSameResource = + ThreadPoolResourceAllocator.getOrCreate(threadPoolSupplier); assertEquals(mockedThreadPoolResource, theSameResource); verify(threadPoolSupplier, times(1)).get(); @@ -52,17 +52,20 @@ public void getOrCreate_returns_default_after_repeated_calls() { public void getOrCreate_returns_new_thread_pool_after_shutdown() { ThreadPoolResource mockedThreadPoolResource = mock(ThreadPoolResource.class); EventLoopGroup mockedEventLoopGroup = mock(EventLoop.class); + + @SuppressWarnings("unchecked") Supplier threadPoolSupplier = mock(Supplier.class); when(mockedThreadPoolResource.getEventLoopGroup()).thenReturn(mockedEventLoopGroup); when(mockedEventLoopGroup.isShuttingDown()).thenReturn(true); when(threadPoolSupplier.get()).thenReturn(mockedThreadPoolResource); - ThreadPoolResource theResource = service.getOrCreate(threadPoolSupplier); + ThreadPoolResource theResource = ThreadPoolResourceAllocator.getOrCreate(threadPoolSupplier); assertEquals(mockedThreadPoolResource, theResource); // Ensure that supplier only is invoked once to set up the shared resource - ThreadPoolResource theSameResource = service.getOrCreate(threadPoolSupplier); + ThreadPoolResource theSameResource = + ThreadPoolResourceAllocator.getOrCreate(threadPoolSupplier); assertEquals(mockedThreadPoolResource, theSameResource); verify(threadPoolSupplier, times(2)).get(); diff --git a/java/client/src/test/java/glide/ffi/FfiTest.java b/java/client/src/test/java/glide/ffi/FfiTest.java index c0af584ac0..e8cb136c53 100644 --- a/java/client/src/test/java/glide/ffi/FfiTest.java +++ b/java/client/src/test/java/glide/ffi/FfiTest.java @@ -65,7 +65,7 @@ public void redisValueToJavaValue_Okay() { } @ParameterizedTest - @ValueSource(longs = {0L, 100L, 774L, Integer.MAX_VALUE + 1, Integer.MIN_VALUE - 1}) + @ValueSource(longs = {0L, 100L, 774L, Integer.MAX_VALUE + 1L, Integer.MIN_VALUE - 1L}) public void redisValueToJavaValue_Int(Long input) { long ptr = FfiTest.createLeakedInt(input); Object longValue = RedisValueResolver.valueFromPointer(ptr); diff --git a/java/client/src/test/java/glide/managers/ConnectionManagerTest.java b/java/client/src/test/java/glide/managers/ConnectionManagerTest.java index b04dd5b312..79389fcde1 100644 --- a/java/client/src/test/java/glide/managers/ConnectionManagerTest.java +++ b/java/client/src/test/java/glide/managers/ConnectionManagerTest.java @@ -40,21 +40,21 @@ public class ConnectionManagerTest { ChannelHandler channel; - private static String HOST = "aws.com"; - private static int PORT = 9999; + private static final String HOST = "aws.com"; + private static final int PORT = 9999; - private static String USERNAME = "JohnDoe"; - private static String PASSWORD = "Password1"; + private static final String USERNAME = "JohnDoe"; + private static final String PASSWORD = "Password1"; - private static int NUM_OF_RETRIES = 5; - private static int FACTOR = 10; - private static int EXPONENT_BASE = 50; + private static final int NUM_OF_RETRIES = 5; + private static final int FACTOR = 10; + private static final int EXPONENT_BASE = 50; - private static int DATABASE_ID = 1; + private static final int DATABASE_ID = 1; - private static int REQUEST_TIMEOUT = 3; + private static final int REQUEST_TIMEOUT = 3; - private static String CLIENT_NAME = "ClientName"; + private static final String CLIENT_NAME = "ClientName"; @BeforeEach public void setUp() { diff --git a/java/client/src/test/java/glide/utils/RustCoreMock.java b/java/client/src/test/java/glide/utils/RustCoreMock.java index 8ef787948e..b9bc53bae6 100644 --- a/java/client/src/test/java/glide/utils/RustCoreMock.java +++ b/java/client/src/test/java/glide/utils/RustCoreMock.java @@ -21,6 +21,7 @@ import java.nio.file.Files; import java.util.concurrent.TimeUnit; import java.util.concurrent.atomic.AtomicBoolean; +import lombok.NonNull; import lombok.RequiredArgsConstructor; import lombok.SneakyThrows; import redis_request.RedisRequestOuterClass.RedisRequest; @@ -67,13 +68,6 @@ public static Response.Builder OK() { } } - public abstract static class GlideMockConnectAll extends GlideMockProtobuf { - @Override - public Response connection(ConnectionRequest request) { - return Response.newBuilder().build(); - } - } - /** Thread pool supplied to Netty to perform all async IO. */ private final EventLoopGroup group; @@ -113,7 +107,7 @@ private RustCoreMock() { new ChannelInitializer() { @Override - protected void initChannel(DomainSocketChannel ch) throws Exception { + protected void initChannel(@NonNull DomainSocketChannel ch) { ch.pipeline() // https://netty.io/4.1/api/io/netty/handler/codec/protobuf/ProtobufEncoder.html .addLast("frameDecoder", new ProtobufVarint32FrameDecoder()) @@ -155,7 +149,8 @@ private class UdsServer extends ChannelInboundHandlerAdapter { private final AtomicBoolean anybodyConnected = new AtomicBoolean(false); @Override - public void channelRead(ChannelHandlerContext ctx, Object msg) throws Exception { + public void channelRead(@NonNull ChannelHandlerContext ctx, @NonNull Object msg) + throws Exception { var buf = (ByteBuf) msg; var bytes = new byte[buf.readableBytes()]; buf.readBytes(bytes); @@ -165,7 +160,7 @@ public void channelRead(ChannelHandlerContext ctx, Object msg) throws Exception return; } var handler = (GlideMockProtobuf) messageProcessor; - Response response = null; + Response response; if (!anybodyConnected.get()) { var connection = ConnectionRequest.parseFrom(bytes); response = handler.connection(connection); @@ -180,7 +175,7 @@ public void channelRead(ChannelHandlerContext ctx, Object msg) throws Exception } @Override - public void exceptionCaught(ChannelHandlerContext ctx, Throwable cause) throws Exception { + public void exceptionCaught(ChannelHandlerContext ctx, Throwable cause) { cause.printStackTrace(); ctx.close(); failed.setPlain(true); From 9a58a2c61cd14dcc8538c668df228bde2396a7b6 Mon Sep 17 00:00:00 2001 From: Andrew Carbonetto Date: Tue, 2 Apr 2024 21:43:58 -0700 Subject: [PATCH 2/8] Clean FfiTest.java of warnings Signed-off-by: Andrew Carbonetto --- java/client/src/test/java/glide/ffi/FfiTest.java | 8 ++++---- 1 file changed, 4 insertions(+), 4 deletions(-) diff --git a/java/client/src/test/java/glide/ffi/FfiTest.java b/java/client/src/test/java/glide/ffi/FfiTest.java index e8cb136c53..73c9082c20 100644 --- a/java/client/src/test/java/glide/ffi/FfiTest.java +++ b/java/client/src/test/java/glide/ffi/FfiTest.java @@ -98,8 +98,8 @@ public void redisValueToJavaValue_Map() { long[] values = {1L, 2L, 3L}; long ptr = FfiTest.createLeakedMap(keys, values); Object mapValue = RedisValueResolver.valueFromPointer(ptr); - assertTrue(mapValue instanceof HashMap); - HashMap result = (HashMap) mapValue; + assertTrue(mapValue instanceof HashMap); + HashMap result = (HashMap) mapValue; assertAll( () -> assertEquals(1L, result.get(12L)), () -> assertEquals(2L, result.get(14L)), @@ -134,8 +134,8 @@ public void redisValueToJavaValue_Set() { long[] array = {1L, 2L, 2L}; long ptr = FfiTest.createLeakedLongSet(array); Object longSetValue = RedisValueResolver.valueFromPointer(ptr); - assertTrue(longSetValue instanceof HashSet); - HashSet result = (HashSet) longSetValue; + assertTrue(longSetValue instanceof HashSet); + HashSet result = (HashSet) longSetValue; assertAll( () -> assertTrue(result.contains(1L)), () -> assertTrue(result.contains(2L)), From 4b6140f5b8667adaf6c3033feea5777b01ffc7c5 Mon Sep 17 00:00:00 2001 From: Andrew Carbonetto Date: Tue, 2 Apr 2024 21:55:56 -0700 Subject: [PATCH 3/8] Clean RedisClusterClientTest.java of compiler warnings Signed-off-by: Andrew Carbonetto --- .../glide/api/RedisClusterClientTest.java | 62 ++++++++++--------- 1 file changed, 32 insertions(+), 30 deletions(-) diff --git a/java/client/src/test/java/glide/api/RedisClusterClientTest.java b/java/client/src/test/java/glide/api/RedisClusterClientTest.java index 4faa8e666e..01ad53a0aa 100644 --- a/java/client/src/test/java/glide/api/RedisClusterClientTest.java +++ b/java/client/src/test/java/glide/api/RedisClusterClientTest.java @@ -39,7 +39,6 @@ import response.ResponseOuterClass.ConstantResponse; import response.ResponseOuterClass.Response; -@SuppressWarnings("unchecked,resource") public class RedisClusterClientTest { RedisClusterClient service; @@ -129,7 +128,9 @@ public TestClient(CommandManager commandManager, Object objectToReturn) { @Override protected T handleRedisResponse(Class classType, boolean isNullable, Response response) { - return (T) object; + @SuppressWarnings("unchecked") + T returnValue = (T) object; + return returnValue; } } @@ -153,8 +154,8 @@ public CompletableFuture submitCommandToChannel( @Test public void ping_returns_success() { // setup - CompletableFuture testResponse = mock(CompletableFuture.class); - when(testResponse.get()).thenReturn("PONG"); + CompletableFuture testResponse = new CompletableFuture<>(); + testResponse.complete("PONG"); // match on protobuf request when(commandManager.submitNewCommand(eq(Ping), eq(new String[0]), any())) @@ -195,8 +196,8 @@ public void ping_with_message_returns_success() { @Test public void ping_with_route_returns_success() { // setup - CompletableFuture testResponse = mock(CompletableFuture.class); - when(testResponse.get()).thenReturn("PONG"); + CompletableFuture testResponse = new CompletableFuture<>(); + testResponse.complete("PONG"); Route route = ALL_NODES; @@ -286,12 +287,12 @@ public void echo_with_route_returns_success() { @Test public void info_returns_string() { // setup - CompletableFuture> testResponse = mock(CompletableFuture.class); Map testPayload = new HashMap<>(); testPayload.put("addr1", "value1"); testPayload.put("addr2", "value2"); testPayload.put("addr3", "value3"); - when(testResponse.get()).thenReturn(ClusterValue.of(testPayload)); + CompletableFuture> testResponse = new CompletableFuture<>(); + testResponse.complete(ClusterValue.of(testPayload)); when(commandManager.>submitNewCommand(eq(Info), eq(new String[0]), any())) .thenReturn(testResponse); @@ -309,10 +310,10 @@ public void info_returns_string() { @Test public void info_with_route_returns_string() { // setup - CompletableFuture> testResponse = mock(CompletableFuture.class); Map testClusterValue = Map.of("addr1", "addr1 result", "addr2", "addr2 result"); Route route = ALL_NODES; - when(testResponse.get()).thenReturn(ClusterValue.of(testClusterValue)); + CompletableFuture> testResponse = new CompletableFuture<>(); + testResponse.complete(ClusterValue.of(testClusterValue)); when(commandManager.>submitNewCommand( eq(Info), eq(new String[0]), eq(route), any())) .thenReturn(testResponse); @@ -333,9 +334,10 @@ public void info_with_route_returns_string() { public void info_with_route_with_infoOptions_returns_string() { // setup String[] infoArguments = new String[] {"ALL", "DEFAULT"}; - CompletableFuture> testResponse = mock(CompletableFuture.class); Map testClusterValue = Map.of("addr1", "addr1 result", "addr2", "addr2 result"); - when(testResponse.get()).thenReturn(ClusterValue.of(testClusterValue)); + CompletableFuture> testResponse = new CompletableFuture<>(); + testResponse.complete(ClusterValue.of(testClusterValue)); + Route route = ALL_PRIMARIES; when(commandManager.>submitNewCommand( eq(Info), eq(infoArguments), eq(route), any())) @@ -414,8 +416,8 @@ public void info_with_options_and_multi_node_route_returns_multi_value() { @Test public void clientId_returns_success() { // setup - CompletableFuture testResponse = mock(CompletableFuture.class); - when(testResponse.get()).thenReturn(42L); + CompletableFuture testResponse = new CompletableFuture<>(); + testResponse.complete(42L); // match on protobuf request when(commandManager.submitNewCommand(eq(ClientId), eq(new String[0]), any())) @@ -456,8 +458,8 @@ public void clientId_with_single_node_route_returns_success() { @Test public void clientGetName_returns_success() { // setup - CompletableFuture testResponse = mock(CompletableFuture.class); - when(testResponse.get()).thenReturn("TEST"); + CompletableFuture testResponse = new CompletableFuture<>(); + testResponse.complete("TEST"); // match on protobuf request when(commandManager.submitNewCommand(eq(ClientGetName), eq(new String[0]), any())) @@ -498,8 +500,8 @@ public void clientGetName_with_multi_node_route_returns_success() { @Test public void configRewrite_without_route_returns_success() { // setup - CompletableFuture testResponse = mock(CompletableFuture.class); - when(testResponse.get()).thenReturn(OK); + CompletableFuture testResponse = new CompletableFuture<>(); + testResponse.complete(OK); // match on protobuf request when(commandManager.submitNewCommand(eq(ConfigRewrite), eq(new String[0]), any())) @@ -518,8 +520,8 @@ public void configRewrite_without_route_returns_success() { @Test public void configRewrite_with_route_returns_success() { // setup - CompletableFuture testResponse = mock(CompletableFuture.class); - when(testResponse.get()).thenReturn(OK); + CompletableFuture testResponse = new CompletableFuture<>(); + testResponse.complete(OK); Route route = ALL_NODES; @@ -541,8 +543,8 @@ public void configRewrite_with_route_returns_success() { @Test public void configResetStat_without_route_returns_success() { // setup - CompletableFuture testResponse = mock(CompletableFuture.class); - when(testResponse.get()).thenReturn(OK); + CompletableFuture testResponse = new CompletableFuture<>(); + testResponse.complete(OK); // match on protobuf request when(commandManager.submitNewCommand(eq(ConfigResetStat), eq(new String[0]), any())) @@ -561,8 +563,8 @@ public void configResetStat_without_route_returns_success() { @Test public void configResetStat_with_route_returns_success() { // setup - CompletableFuture testResponse = mock(CompletableFuture.class); - when(testResponse.get()).thenReturn(OK); + CompletableFuture testResponse = new CompletableFuture<>(); + testResponse.complete(OK); Route route = ALL_NODES; @@ -585,9 +587,9 @@ public void configResetStat_with_route_returns_success() { @Test public void configGet_returns_success() { // setup - CompletableFuture> testResponse = mock(CompletableFuture.class); var testPayload = Map.of("timeout", "1000"); - when(testResponse.get()).thenReturn(testPayload); + CompletableFuture> testResponse = new CompletableFuture<>(); + testResponse.complete(testPayload); // match on protobuf request when(commandManager.>submitNewCommand( @@ -634,8 +636,8 @@ public void configGet_with_multi_node_route_returns_multi_value() { @Test public void configSet_returns_success() { // setup - CompletableFuture testResponse = mock(CompletableFuture.class); - when(testResponse.get()).thenReturn(OK); + CompletableFuture testResponse = new CompletableFuture<>(); + testResponse.complete(OK); // match on protobuf request when(commandManager.submitNewCommand( @@ -654,8 +656,8 @@ public void configSet_returns_success() { @Test public void configSet_with_route_returns_success() { // setup - CompletableFuture testResponse = mock(CompletableFuture.class); - when(testResponse.get()).thenReturn(OK); + CompletableFuture testResponse = new CompletableFuture<>(); + testResponse.complete(OK); // match on protobuf request when(commandManager.submitNewCommand( From 960ef6750d2d6433767d9664e122881bffcf9cf1 Mon Sep 17 00:00:00 2001 From: Andrew Carbonetto Date: Wed, 3 Apr 2024 17:07:25 -0700 Subject: [PATCH 4/8] Clean up more warnings in client tests Signed-off-by: Andrew Carbonetto --- .../test/java/glide/api/RedisClientTest.java | 21 ++-- .../glide/api/RedisClusterClientTest.java | 119 +++++++++--------- 2 files changed, 70 insertions(+), 70 deletions(-) diff --git a/java/client/src/test/java/glide/api/RedisClientTest.java b/java/client/src/test/java/glide/api/RedisClientTest.java index 923c84eeab..333e53a16d 100644 --- a/java/client/src/test/java/glide/api/RedisClientTest.java +++ b/java/client/src/test/java/glide/api/RedisClientTest.java @@ -614,7 +614,7 @@ public void invokeScript_returns_success() { testResponse.complete(payload); // match on protobuf request - when(commandManager.submitScript(eq(script), eq(List.of()), eq(List.of()), any())) + when(commandManager.submitScript(eq(script), eq(List.of()), eq(List.of()), any())) .thenReturn(testResponse); // exercise @@ -641,7 +641,7 @@ public void invokeScript_with_ScriptOptions_returns_success() { testResponse.complete(payload); // match on protobuf request - when(commandManager.submitScript( + when(commandManager.submitScript( eq(script), eq(List.of("key1", "key2")), eq(List.of("arg1", "arg2")), any())) .thenReturn(testResponse); @@ -660,8 +660,8 @@ public void pttl_returns_success() { String key = "testKey"; long pttl = 999000L; - CompletableFuture testResponse = mock(CompletableFuture.class); - when(testResponse.get()).thenReturn(pttl); + CompletableFuture testResponse = new CompletableFuture<>(); + testResponse.complete(pttl); // match on protobuf request when(commandManager.submitNewCommand(eq(PTTL), eq(new String[] {key}), any())) @@ -937,8 +937,8 @@ public void strlen_returns_success() { String key = "testKey"; Long value = 10L; - CompletableFuture testResponse = mock(CompletableFuture.class); - when(testResponse.get()).thenReturn(value); + CompletableFuture testResponse = new CompletableFuture<>(); + testResponse.complete(value); // match on protobuf request when(commandManager.submitNewCommand(eq(Strlen), eq(new String[] {key}), any())) @@ -2012,7 +2012,6 @@ public void zrange_by_score_with_reverse_returns_success() { String key = "testKey"; RangeByScore rangeByScore = new RangeByScore(new ScoreBoundary(3, false), InfScoreBound.NEGATIVE_INFINITY); - boolean reversed = true; String[] arguments = new String[] {key, rangeByScore.getStart(), rangeByScore.getEnd(), "BYSCORE", "REV"}; String[] value = new String[] {"two", "one"}; @@ -2183,8 +2182,8 @@ public void type_returns_success() { String[] arguments = new String[] {key}; String value = "none"; - CompletableFuture testResponse = mock(CompletableFuture.class); - when(testResponse.get()).thenReturn(value); + CompletableFuture testResponse = new CompletableFuture<>(); + testResponse.complete(value); // match on protobuf request when(commandManager.submitNewCommand(eq(Type), eq(arguments), any())) @@ -2203,9 +2202,9 @@ public void type_returns_success() { @Test public void time_returns_success() { // setup - CompletableFuture testResponse = mock(CompletableFuture.class); + CompletableFuture testResponse = new CompletableFuture<>(); String[] payload = new String[] {"UnixTime", "ms"}; - when(testResponse.get()).thenReturn(payload); + testResponse.complete(payload); // match on protobuf request when(commandManager.submitNewCommand(eq(Time), eq(new String[0]), any())) diff --git a/java/client/src/test/java/glide/api/RedisClusterClientTest.java b/java/client/src/test/java/glide/api/RedisClusterClientTest.java index 01ad53a0aa..824f377eeb 100644 --- a/java/client/src/test/java/glide/api/RedisClusterClientTest.java +++ b/java/client/src/test/java/glide/api/RedisClusterClientTest.java @@ -61,10 +61,10 @@ public void setUp() { public void custom_command_returns_single_value() { var commandManager = new TestCommandManager(null); - var client = new TestClient(commandManager, "TEST"); - - var value = client.customCommand(TEST_ARGS).get(); - assertEquals("TEST", value.getSingleValue()); + try(var client = new TestClient(commandManager, "TEST")) { + var value = client.customCommand(TEST_ARGS).get(); + assertEquals("TEST", value.getSingleValue()); + } } @Test @@ -73,10 +73,10 @@ public void custom_command_returns_multi_value() { var commandManager = new TestCommandManager(null); var data = Map.of("key1", "value1", "key2", "value2"); - var client = new TestClient(commandManager, data); - - var value = client.customCommand(TEST_ARGS).get(); - assertEquals(data, value.getMultiValue()); + try (var client = new TestClient(commandManager, data)) { + var value = client.customCommand(TEST_ARGS).get(); + assertEquals(data, value.getMultiValue()); + } } @Test @@ -86,10 +86,10 @@ public void custom_command_with_single_node_route_returns_single_value() { var commandManager = new TestCommandManager(null); var data = Map.of("key1", "value1", "key2", "value2"); - var client = new TestClient(commandManager, data); - - var value = client.customCommand(TEST_ARGS, RANDOM).get(); - assertEquals(data, value.getSingleValue()); + try (var client = new TestClient(commandManager, data)) { + var value = client.customCommand(TEST_ARGS, RANDOM).get(); + assertEquals(data, value.getSingleValue()); + } } @Test @@ -98,10 +98,10 @@ public void custom_command_with_multi_node_route_returns_multi_value() { var commandManager = new TestCommandManager(null); var data = Map.of("key1", "value1", "key2", "value2"); - var client = new TestClient(commandManager, data); - - var value = client.customCommand(TEST_ARGS, ALL_NODES).get(); - assertEquals(data, value.getMultiValue()); + try (var client = new TestClient(commandManager, data)) { + var value = client.customCommand(TEST_ARGS, ALL_NODES).get(); + assertEquals(data, value.getMultiValue()); + } } @Test @@ -111,10 +111,10 @@ public void custom_command_returns_single_value_on_constant_response() { new TestCommandManager( Response.newBuilder().setConstantResponse(ConstantResponse.OK).build()); - var client = new TestClient(commandManager, "OK"); - - var value = client.customCommand(TEST_ARGS, ALL_NODES).get(); - assertEquals("OK", value.getSingleValue()); + try (var client = new TestClient(commandManager, "OK")) { + var value = client.customCommand(TEST_ARGS, ALL_NODES).get(); + assertEquals("OK", value.getSingleValue()); + } } private static class TestClient extends RedisClusterClient { @@ -366,11 +366,11 @@ public void info_with_single_node_route_returns_single_value() { var commandManager = new TestCommandManager(null); var data = "info string"; - var client = new TestClient(commandManager, data); - - var value = client.info(RANDOM).get(); - assertAll( + try (var client = new TestClient(commandManager, data)) { + var value = client.info(RANDOM).get(); + assertAll( () -> assertTrue(value.hasSingleData()), () -> assertEquals(data, value.getSingleValue())); + } } @Test @@ -379,11 +379,11 @@ public void info_with_multi_node_route_returns_multi_value() { var commandManager = new TestCommandManager(null); var data = Map.of("key1", "value1", "key2", "value2"); - var client = new TestClient(commandManager, data); - - var value = client.info(ALL_NODES).get(); - assertAll( + try (var client = new TestClient(commandManager, data)) { + var value = client.info(ALL_NODES).get(); + assertAll( () -> assertTrue(value.hasMultiData()), () -> assertEquals(data, value.getMultiValue())); + } } @Test @@ -392,11 +392,11 @@ public void info_with_options_and_single_node_route_returns_single_value() { var commandManager = new TestCommandManager(null); var data = "info string"; - var client = new TestClient(commandManager, data); - - var value = client.info(InfoOptions.builder().build(), RANDOM).get(); - assertAll( + try (var client = new TestClient(commandManager, data)) { + var value = client.info(InfoOptions.builder().build(), RANDOM).get(); + assertAll( () -> assertTrue(value.hasSingleData()), () -> assertEquals(data, value.getSingleValue())); + } } @Test @@ -405,11 +405,11 @@ public void info_with_options_and_multi_node_route_returns_multi_value() { var commandManager = new TestCommandManager(null); var data = Map.of("key1", "value1", "key2", "value2"); - var client = new TestClient(commandManager, data); - - var value = client.info(InfoOptions.builder().build(), ALL_NODES).get(); - assertAll( + try (var client = new TestClient(commandManager, data)) { + var value = client.info(InfoOptions.builder().build(), ALL_NODES).get(); + assertAll( () -> assertTrue(value.hasMultiData()), () -> assertEquals(data, value.getMultiValue())); + } } @SneakyThrows @@ -437,10 +437,11 @@ public void clientId_with_multi_node_route_returns_success() { var commandManager = new TestCommandManager(null); var data = Map.of("n1", 42L); - var client = new TestClient(commandManager, data); + try (var client = new TestClient(commandManager, data)) { + var value = client.clientId(ALL_NODES).get(); - var value = client.clientId(ALL_NODES).get(); - assertEquals(data, value.getMultiValue()); + assertEquals(data, value.getMultiValue()); + } } @Test @@ -448,10 +449,10 @@ public void clientId_with_multi_node_route_returns_success() { public void clientId_with_single_node_route_returns_success() { var commandManager = new TestCommandManager(null); - var client = new TestClient(commandManager, 42L); - - var value = client.clientId(RANDOM).get(); - assertEquals(42, value.getSingleValue()); + try (var client = new TestClient(commandManager, 42L)) { + var value = client.clientId(RANDOM).get(); + assertEquals(42, value.getSingleValue()); + } } @SneakyThrows @@ -478,10 +479,10 @@ public void clientGetName_returns_success() { public void clientGetName_with_single_node_route_returns_success() { var commandManager = new TestCommandManager(null); - var client = new TestClient(commandManager, "TEST"); - - var value = client.clientGetName(RANDOM).get(); - assertEquals("TEST", value.getSingleValue()); + try (var client = new TestClient(commandManager, "TEST")) { + var value = client.clientGetName(RANDOM).get(); + assertEquals("TEST", value.getSingleValue()); + } } @Test @@ -490,10 +491,10 @@ public void clientGetName_with_multi_node_route_returns_success() { var commandManager = new TestCommandManager(null); var data = Map.of("n1", "TEST"); - var client = new TestClient(commandManager, data); - - var value = client.clientGetName(ALL_NODES).get(); - assertEquals(data, value.getMultiValue()); + try (var client = new TestClient(commandManager, data)) { + var value = client.clientGetName(ALL_NODES).get(); + assertEquals(data, value.getMultiValue()); + } } @SneakyThrows @@ -612,11 +613,11 @@ public void configGet_with_single_node_route_returns_single_value() { var commandManager = new TestCommandManager(null); var data = Map.of("timeout", "1000", "maxmemory", "1GB"); - var client = new TestClient(commandManager, data); - - var value = client.configGet(TEST_ARGS, RANDOM).get(); - assertAll( + try (var client = new TestClient(commandManager, data)) { + var value = client.configGet(TEST_ARGS, RANDOM).get(); + assertAll( () -> assertTrue(value.hasSingleData()), () -> assertEquals(data, value.getSingleValue())); + } } @Test @@ -625,11 +626,11 @@ public void configGet_with_multi_node_route_returns_multi_value() { var commandManager = new TestCommandManager(null); var data = Map.of("node1", Map.of("timeout", "1000", "maxmemory", "1GB")); - var client = new TestClient(commandManager, data); - - var value = client.configGet(TEST_ARGS, ALL_NODES).get(); - assertAll( + try (var client = new TestClient(commandManager, data)) { + var value = client.configGet(TEST_ARGS, ALL_NODES).get(); + assertAll( () -> assertTrue(value.hasMultiData()), () -> assertEquals(data, value.getMultiValue())); + } } @SneakyThrows From 9943e18f34ef96a0d0ae55aafcf38b79be984f26 Mon Sep 17 00:00:00 2001 From: Andrew Carbonetto Date: Thu, 4 Apr 2024 15:55:09 -0700 Subject: [PATCH 5/8] Spotless Signed-off-by: Andrew Carbonetto --- .../java/glide/api/RedisClusterClientTest.java | 17 ++++++++++------- 1 file changed, 10 insertions(+), 7 deletions(-) diff --git a/java/client/src/test/java/glide/api/RedisClusterClientTest.java b/java/client/src/test/java/glide/api/RedisClusterClientTest.java index 824f377eeb..04fea4f60c 100644 --- a/java/client/src/test/java/glide/api/RedisClusterClientTest.java +++ b/java/client/src/test/java/glide/api/RedisClusterClientTest.java @@ -61,7 +61,7 @@ public void setUp() { public void custom_command_returns_single_value() { var commandManager = new TestCommandManager(null); - try(var client = new TestClient(commandManager, "TEST")) { + try (var client = new TestClient(commandManager, "TEST")) { var value = client.customCommand(TEST_ARGS).get(); assertEquals("TEST", value.getSingleValue()); } @@ -369,7 +369,8 @@ public void info_with_single_node_route_returns_single_value() { try (var client = new TestClient(commandManager, data)) { var value = client.info(RANDOM).get(); assertAll( - () -> assertTrue(value.hasSingleData()), () -> assertEquals(data, value.getSingleValue())); + () -> assertTrue(value.hasSingleData()), + () -> assertEquals(data, value.getSingleValue())); } } @@ -382,7 +383,7 @@ public void info_with_multi_node_route_returns_multi_value() { try (var client = new TestClient(commandManager, data)) { var value = client.info(ALL_NODES).get(); assertAll( - () -> assertTrue(value.hasMultiData()), () -> assertEquals(data, value.getMultiValue())); + () -> assertTrue(value.hasMultiData()), () -> assertEquals(data, value.getMultiValue())); } } @@ -395,7 +396,8 @@ public void info_with_options_and_single_node_route_returns_single_value() { try (var client = new TestClient(commandManager, data)) { var value = client.info(InfoOptions.builder().build(), RANDOM).get(); assertAll( - () -> assertTrue(value.hasSingleData()), () -> assertEquals(data, value.getSingleValue())); + () -> assertTrue(value.hasSingleData()), + () -> assertEquals(data, value.getSingleValue())); } } @@ -408,7 +410,7 @@ public void info_with_options_and_multi_node_route_returns_multi_value() { try (var client = new TestClient(commandManager, data)) { var value = client.info(InfoOptions.builder().build(), ALL_NODES).get(); assertAll( - () -> assertTrue(value.hasMultiData()), () -> assertEquals(data, value.getMultiValue())); + () -> assertTrue(value.hasMultiData()), () -> assertEquals(data, value.getMultiValue())); } } @@ -616,7 +618,8 @@ public void configGet_with_single_node_route_returns_single_value() { try (var client = new TestClient(commandManager, data)) { var value = client.configGet(TEST_ARGS, RANDOM).get(); assertAll( - () -> assertTrue(value.hasSingleData()), () -> assertEquals(data, value.getSingleValue())); + () -> assertTrue(value.hasSingleData()), + () -> assertEquals(data, value.getSingleValue())); } } @@ -629,7 +632,7 @@ public void configGet_with_multi_node_route_returns_multi_value() { try (var client = new TestClient(commandManager, data)) { var value = client.configGet(TEST_ARGS, ALL_NODES).get(); assertAll( - () -> assertTrue(value.hasMultiData()), () -> assertEquals(data, value.getMultiValue())); + () -> assertTrue(value.hasMultiData()), () -> assertEquals(data, value.getMultiValue())); } } From 8b5fbb9fa1f93f8dead4f79a03fff3abeb7daf04 Mon Sep 17 00:00:00 2001 From: Yury-Fridlyand Date: Tue, 9 Apr 2024 19:47:28 -0700 Subject: [PATCH 6/8] Fix UT + update IT. Signed-off-by: Yury-Fridlyand --- .../java/glide/api/RedisClusterClientTest.java | 3 +++ .../src/test/java/glide/SharedClientTests.java | 1 + .../src/test/java/glide/SharedCommandTests.java | 16 ++++++++-------- 3 files changed, 12 insertions(+), 8 deletions(-) diff --git a/java/client/src/test/java/glide/api/RedisClusterClientTest.java b/java/client/src/test/java/glide/api/RedisClusterClientTest.java index 04fea4f60c..0a92568d6a 100644 --- a/java/client/src/test/java/glide/api/RedisClusterClientTest.java +++ b/java/client/src/test/java/glide/api/RedisClusterClientTest.java @@ -132,6 +132,9 @@ protected T handleRedisResponse(Class classType, boolean isNullable, Resp T returnValue = (T) object; return returnValue; } + + @Override + public void close() {} } private static class TestCommandManager extends CommandManager { diff --git a/java/integTest/src/test/java/glide/SharedClientTests.java b/java/integTest/src/test/java/glide/SharedClientTests.java index 595e7c9547..f6e74757b2 100644 --- a/java/integTest/src/test/java/glide/SharedClientTests.java +++ b/java/integTest/src/test/java/glide/SharedClientTests.java @@ -88,6 +88,7 @@ private static Stream clientAndDataSize() { @MethodSource("clientAndDataSize") public void client_can_handle_concurrent_workload(BaseClient client, int valueSize) { ExecutorService executorService = Executors.newCachedThreadPool(); + @SuppressWarnings("rawtypes") CompletableFuture[] futures = new CompletableFuture[100]; for (int i = 0; i < 100; i++) { diff --git a/java/integTest/src/test/java/glide/SharedCommandTests.java b/java/integTest/src/test/java/glide/SharedCommandTests.java index f296e32c09..3fe491c3f6 100644 --- a/java/integTest/src/test/java/glide/SharedCommandTests.java +++ b/java/integTest/src/test/java/glide/SharedCommandTests.java @@ -48,6 +48,7 @@ import lombok.SneakyThrows; import org.junit.jupiter.api.AfterAll; import org.junit.jupiter.api.BeforeAll; +import org.junit.jupiter.api.Test; import org.junit.jupiter.api.Timeout; import org.junit.jupiter.params.ParameterizedTest; import org.junit.jupiter.params.provider.Arguments; @@ -1061,7 +1062,7 @@ public void zadd_and_zaddIncr_with_NX_XX(BaseClient client) { assertEquals(0, client.zadd(key, membersScores, onlyIfExistsOptions).get()); assertEquals(3, client.zadd(key, membersScores, onlyIfDoesNotExistOptions).get()); - assertEquals(null, client.zaddIncr(key, "one", 5, onlyIfDoesNotExistOptions).get()); + assertNull(client.zaddIncr(key, "one", 5, onlyIfDoesNotExistOptions).get()); assertEquals(6, client.zaddIncr(key, "one", 5, onlyIfExistsOptions).get()); } @@ -1090,25 +1091,24 @@ public void zadd_and_zaddIncr_with_GT_LT(BaseClient client) { assertEquals(1, client.zadd(key, membersScores, scoreGreaterThanOptions, true).get()); assertEquals(0, client.zadd(key, membersScores, scoreLessThanOptions, true).get()); assertEquals(7, client.zaddIncr(key, "one", -3, scoreLessThanOptions).get()); - assertEquals(null, client.zaddIncr(key, "one", -3, scoreGreaterThanOptions).get()); + assertNull(client.zaddIncr(key, "one", -3, scoreGreaterThanOptions).get()); } - @SneakyThrows - @ParameterizedTest - @MethodSource("getClients") - public void zadd_illegal_arguments(BaseClient client) { + // TODO move to another class + @Test + public void zadd_illegal_arguments() { ZaddOptions existsGreaterThanOptions = ZaddOptions.builder() .conditionalChange(ZaddOptions.ConditionalChange.ONLY_IF_DOES_NOT_EXIST) .updateOptions(ZaddOptions.UpdateOptions.SCORE_GREATER_THAN_CURRENT) .build(); - assertThrows(IllegalArgumentException.class, () -> existsGreaterThanOptions.toArgs()); + assertThrows(IllegalArgumentException.class, existsGreaterThanOptions::toArgs); ZaddOptions existsLessThanOptions = ZaddOptions.builder() .conditionalChange(ZaddOptions.ConditionalChange.ONLY_IF_DOES_NOT_EXIST) .updateOptions(ZaddOptions.UpdateOptions.SCORE_LESS_THAN_CURRENT) .build(); - assertThrows(IllegalArgumentException.class, () -> existsLessThanOptions.toArgs()); + assertThrows(IllegalArgumentException.class, existsLessThanOptions::toArgs); ZaddOptions options = ZaddOptions.builder() .conditionalChange(ZaddOptions.ConditionalChange.ONLY_IF_DOES_NOT_EXIST) From a5189360f208a36074483507b95d79bf60680cef Mon Sep 17 00:00:00 2001 From: Yury-Fridlyand Date: Wed, 10 Apr 2024 10:11:53 -0700 Subject: [PATCH 7/8] Update suppression. Signed-off-by: Yury-Fridlyand --- java/integTest/src/test/java/glide/SharedClientTests.java | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/java/integTest/src/test/java/glide/SharedClientTests.java b/java/integTest/src/test/java/glide/SharedClientTests.java index f6e74757b2..d05545e2a9 100644 --- a/java/integTest/src/test/java/glide/SharedClientTests.java +++ b/java/integTest/src/test/java/glide/SharedClientTests.java @@ -88,8 +88,8 @@ private static Stream clientAndDataSize() { @MethodSource("clientAndDataSize") public void client_can_handle_concurrent_workload(BaseClient client, int valueSize) { ExecutorService executorService = Executors.newCachedThreadPool(); - @SuppressWarnings("rawtypes") - CompletableFuture[] futures = new CompletableFuture[100]; + @SuppressWarnings("unchecked") + CompletableFuture[] futures = new CompletableFuture[100]; for (int i = 0; i < 100; i++) { futures[i] = From 1e133314716f2d4c97fd915ad39c09bcf58becdb Mon Sep 17 00:00:00 2001 From: Andrew Carbonetto Date: Wed, 10 Apr 2024 12:03:18 -0700 Subject: [PATCH 8/8] Remove suppress warnings Signed-off-by: Andrew Carbonetto --- .../resources/ThreadPoolResourceAllocatorTest.java | 13 +++---------- 1 file changed, 3 insertions(+), 10 deletions(-) diff --git a/java/client/src/test/java/glide/connectors/resources/ThreadPoolResourceAllocatorTest.java b/java/client/src/test/java/glide/connectors/resources/ThreadPoolResourceAllocatorTest.java index 3f8867d7ab..3ce2052582 100644 --- a/java/client/src/test/java/glide/connectors/resources/ThreadPoolResourceAllocatorTest.java +++ b/java/client/src/test/java/glide/connectors/resources/ThreadPoolResourceAllocatorTest.java @@ -3,9 +3,7 @@ import static org.junit.jupiter.api.Assertions.assertEquals; import static org.mockito.Mockito.mock; -import static org.mockito.Mockito.verify; import static org.mockito.Mockito.when; -import static org.mockito.internal.verification.VerificationModeFactory.times; import io.netty.channel.EventLoop; import io.netty.channel.EventLoopGroup; @@ -28,12 +26,11 @@ public void init() { public void getOrCreate_returns_default_after_repeated_calls() { ThreadPoolResource mockedThreadPoolResource = mock(ThreadPoolResource.class); EventLoopGroup mockedEventLoopGroup = mock(EventLoop.class); - @SuppressWarnings("unchecked") - Supplier threadPoolSupplier = mock(Supplier.class); + + Supplier threadPoolSupplier = () -> mockedThreadPoolResource; when(mockedThreadPoolResource.getEventLoopGroup()).thenReturn(mockedEventLoopGroup); when(mockedEventLoopGroup.isShuttingDown()).thenReturn(false); - when(threadPoolSupplier.get()).thenReturn(mockedThreadPoolResource); ThreadPoolResource theResource = ThreadPoolResourceAllocator.getOrCreate(threadPoolSupplier); assertEquals(mockedThreadPoolResource, theResource); @@ -42,7 +39,6 @@ public void getOrCreate_returns_default_after_repeated_calls() { ThreadPoolResource theSameResource = ThreadPoolResourceAllocator.getOrCreate(threadPoolSupplier); assertEquals(mockedThreadPoolResource, theSameResource); - verify(threadPoolSupplier, times(1)).get(); // teardown when(mockedEventLoopGroup.isShuttingDown()).thenReturn(true); @@ -53,12 +49,10 @@ public void getOrCreate_returns_new_thread_pool_after_shutdown() { ThreadPoolResource mockedThreadPoolResource = mock(ThreadPoolResource.class); EventLoopGroup mockedEventLoopGroup = mock(EventLoop.class); - @SuppressWarnings("unchecked") - Supplier threadPoolSupplier = mock(Supplier.class); + Supplier threadPoolSupplier = () -> mockedThreadPoolResource; when(mockedThreadPoolResource.getEventLoopGroup()).thenReturn(mockedEventLoopGroup); when(mockedEventLoopGroup.isShuttingDown()).thenReturn(true); - when(threadPoolSupplier.get()).thenReturn(mockedThreadPoolResource); ThreadPoolResource theResource = ThreadPoolResourceAllocator.getOrCreate(threadPoolSupplier); assertEquals(mockedThreadPoolResource, theResource); @@ -67,7 +61,6 @@ public void getOrCreate_returns_new_thread_pool_after_shutdown() { ThreadPoolResource theSameResource = ThreadPoolResourceAllocator.getOrCreate(threadPoolSupplier); assertEquals(mockedThreadPoolResource, theSameResource); - verify(threadPoolSupplier, times(2)).get(); // teardown when(mockedEventLoopGroup.isShuttingDown()).thenReturn(true);