Use correct output for ZCARD command using LettuceConnection.execute(…).

We now provide a type hint for the ZCARD command.

Closes #2473

Original pull request: #2482
This commit is contained in:
Mark Paluch
2023-01-10 15:37:03 +01:00
committed by John Blum
parent 1c3bd4f02b
commit ea37a7347a
2 changed files with 11 additions and 2 deletions

View File

@@ -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);

View File

@@ -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() {