diff --git a/src/main/java/org/springframework/data/redis/core/RedisCommand.java b/src/main/java/org/springframework/data/redis/core/RedisCommand.java index 9e6e47cc1..16f373393 100644 --- a/src/main/java/org/springframework/data/redis/core/RedisCommand.java +++ b/src/main/java/org/springframework/data/redis/core/RedisCommand.java @@ -257,8 +257,8 @@ public enum RedisCommand { private final boolean read; private final boolean write; - private final int minArgs; - private final int maxArgs; + final int minArgs; + final int maxArgs; private final @Nullable String alias; @@ -313,7 +313,7 @@ public enum RedisCommand { * @return {@literal true} if the command requires arguments */ public boolean requiresArguments() { - return minArgs >= 0; + return minArgs > 0; } /** diff --git a/src/test/java/org/springframework/data/redis/core/RedisCommandUnitTests.java b/src/test/java/org/springframework/data/redis/core/RedisCommandUnitTests.java index fb72ba652..6f995df86 100644 --- a/src/test/java/org/springframework/data/redis/core/RedisCommandUnitTests.java +++ b/src/test/java/org/springframework/data/redis/core/RedisCommandUnitTests.java @@ -17,6 +17,8 @@ package org.springframework.data.redis.core; import static org.assertj.core.api.Assertions.*; +import java.util.Arrays; + import org.junit.jupiter.api.Test; /** @@ -117,4 +119,23 @@ class RedisCommandUnitTests { } } } + + @Test // GH-2646 + void commandRequiresArgumentsIsCorrect() { + + Arrays.stream(RedisCommand.values()).forEach(command -> + assertThat(command.requiresArguments()) + .describedAs("Redis command [%s] failed required arguments check", command) + .isEqualTo(command.minArgs > 0)); + } + + @Test // GH-2646 + void commandRequiresExactNumberOfArgumentsIsCorrect() { + + Arrays.stream(RedisCommand.values()).forEach(command -> + assertThat(command.requiresExactNumberOfArguments()) + .describedAs("Redis command [%s] failed requires exact arguments check") + .isEqualTo(command.minArgs == command.maxArgs)); + } + }