From ea37a7347ad77b3f389ebb8b3d10cc053da81b01 Mon Sep 17 00:00:00 2001 From: Mark Paluch Date: Tue, 10 Jan 2023 15:37:03 +0100 Subject: [PATCH] =?UTF-8?q?Use=20correct=20output=20for=20`ZCARD`=20comman?= =?UTF-8?q?d=20using=20`LettuceConnection.execute(=E2=80=A6)`.?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit We now provide a type hint for the ZCARD command. Closes #2473 Original pull request: #2482 --- .../redis/connection/lettuce/LettuceConnection.java | 2 +- .../lettuce/LettuceConnectionIntegrationTests.java | 11 ++++++++++- 2 files changed, 11 insertions(+), 2 deletions(-) diff --git a/src/main/java/org/springframework/data/redis/connection/lettuce/LettuceConnection.java b/src/main/java/org/springframework/data/redis/connection/lettuce/LettuceConnection.java index 1c59b53cc..5cfb980d0 100644 --- a/src/main/java/org/springframework/data/redis/connection/lettuce/LettuceConnection.java +++ b/src/main/java/org/springframework/data/redis/connection/lettuce/LettuceConnection.java @@ -57,7 +57,6 @@ import java.util.function.Supplier; import org.apache.commons.logging.Log; import org.apache.commons.logging.LogFactory; - import org.springframework.beans.BeanUtils; import org.springframework.core.convert.converter.Converter; import org.springframework.dao.DataAccessException; @@ -1088,6 +1087,7 @@ public class LettuceConnection extends AbstractRedisConnection { COMMAND_OUTPUT_TYPE_MAPPING.put(STRLEN, IntegerOutput.class); COMMAND_OUTPUT_TYPE_MAPPING.put(TTL, IntegerOutput.class); COMMAND_OUTPUT_TYPE_MAPPING.put(ZADD, IntegerOutput.class); + COMMAND_OUTPUT_TYPE_MAPPING.put(ZCARD, IntegerOutput.class); COMMAND_OUTPUT_TYPE_MAPPING.put(ZCOUNT, IntegerOutput.class); COMMAND_OUTPUT_TYPE_MAPPING.put(ZINTERSTORE, IntegerOutput.class); COMMAND_OUTPUT_TYPE_MAPPING.put(ZRANK, IntegerOutput.class); diff --git a/src/test/java/org/springframework/data/redis/connection/lettuce/LettuceConnectionIntegrationTests.java b/src/test/java/org/springframework/data/redis/connection/lettuce/LettuceConnectionIntegrationTests.java index 56a1ba9e2..b18e5283e 100644 --- a/src/test/java/org/springframework/data/redis/connection/lettuce/LettuceConnectionIntegrationTests.java +++ b/src/test/java/org/springframework/data/redis/connection/lettuce/LettuceConnectionIntegrationTests.java @@ -23,7 +23,6 @@ import java.util.Set; import org.junit.jupiter.api.Test; import org.junit.jupiter.api.extension.ExtendWith; - import org.springframework.dao.InvalidDataAccessApiUsageException; import org.springframework.data.redis.RedisSystemException; import org.springframework.data.redis.SettingsUtils; @@ -180,6 +179,16 @@ public class LettuceConnectionIntegrationTests extends AbstractConnectionIntegra .contains("awesome".getBytes(), "cool".getBytes(), "supercalifragilisticexpialidocious".getBytes()); } + @Test // GH-2473 + void testExecuteZcardShouldReturnNumericValue() { + + connection.zAdd("spring", 1, "awesome"); + connection.zAdd("spring", 1, "cool"); + connection.zAdd("spring", 1, "supercalifragilisticexpialidocious"); + + assertThat(connection.execute("ZCARD", "spring")).isInstanceOf(Long.class).isEqualTo(3L); + } + @SuppressWarnings("unchecked") @Test public void testEvalShaArrayBytes() {