steve-sienk commented on a change in pull request #7278:
URL: https://github.com/apache/geode/pull/7278#discussion_r794862362
##########
File path:
geode-for-redis/src/integrationTest/java/org/apache/geode/redis/internal/commands/executor/set/AbstractSScanIntegrationTest.java
##########
@@ -54,295 +74,397 @@ public void tearDown() {
}
@Test
- public void givenNoKeyArgument_returnsWrongNumberOfArgumentsError() {
- assertThatThrownBy(() -> jedis.sendCommand("key", Protocol.Command.SSCAN))
- .hasMessageContaining("ERR wrong number of arguments for 'sscan'
command");
+ public void givenLessThanTwoArguments_returnsWrongNumberOfArgumentsError() {
+ assertAtLeastNArgs(jedis, Protocol.Command.SSCAN, 2);
+ }
+
+ @Test
+ public void givenNonexistentKey_returnsEmptyArray() {
+ ScanResult<String> result = jedis.sscan("nonexistent", ZERO_CURSOR);
+
+ assertThat(result.isCompleteIteration()).isTrue();
+ assertThat(result.getResult()).isEmpty();
+ }
+
+ @Test
+ public void
givenNonexistentKeyAndIncorrectOptionalArguments_returnsEmptyArray() {
+ result = sendCustomSscanCommand("nonexistentKey", "nonexistentKey",
ZERO_CURSOR, "ANY");
+ assertThat(result.getResult()).isEmpty();
}
@Test
- public void givenNoCursorArgument_returnsWrongNumberOfArgumentsError() {
- assertThatThrownBy(() -> jedis.sendCommand("key", Protocol.Command.SSCAN,
"key"))
+ public void givenIncorrectOptionalArgumentAndKeyExists_returnsSyntaxError() {
+ assertThatThrownBy(() -> jedis.sendCommand(KEY, Protocol.Command.SSCAN,
KEY))
.hasMessageContaining("ERR wrong number of arguments for 'sscan'
command");
}
@Test
- public void givenArgumentsAreNotOddAndKeyExists_returnsSyntaxError() {
- jedis.sadd("a", "1");
- assertThatThrownBy(() -> jedis.sendCommand("a", Protocol.Command.SSCAN,
"a", "0", "a*"))
+ public void givenIncorrectOptionalArgumentsAndKeyExists_returnsSyntaxError()
{
+ jedis.sadd(KEY, "1");
+ assertThatThrownBy(() -> jedis.sendCommand(KEY, Protocol.Command.SSCAN,
KEY, ZERO_CURSOR, "a*"))
.hasMessageContaining(ERROR_SYNTAX);
}
@Test
- @SuppressWarnings("unchecked")
- public void givenArgumentsAreNotOddAndKeyDoesNotExist_returnsEmptyArray() {
- List<Object> result =
- (List<Object>) jedis.sendCommand("key!", Protocol.Command.SSCAN,
"key!", "0", "a*");
+ public void
givenMatchArgumentWithoutPatternOnExistingKey_returnsSyntaxError() {
+ jedis.sadd(KEY, "1");
+ assertThatThrownBy(
+ () -> jedis.sendCommand(KEY, Protocol.Command.SSCAN, KEY, ZERO_CURSOR,
"MATCH"))
+ .hasMessageContaining(ERROR_SYNTAX);
+ }
- assertThat((byte[]) result.get(0)).isEqualTo("0".getBytes());
- assertThat((List<Object>) result.get(1)).isEmpty();
+ @Test
+ public void
givenCountArgumentWithoutNumberOnExistingKey_returnsSyntaxError() {
+ jedis.sadd(KEY, "1");
+ assertThatThrownBy(
+ () -> jedis.sendCommand(KEY, Protocol.Command.SSCAN, KEY, ZERO_CURSOR,
"COUNT"))
+ .hasMessageContaining(ERROR_SYNTAX);
}
@Test
public void givenMatchOrCountKeywordNotSpecified_returnsSyntaxError() {
- jedis.sadd("a", "1");
- assertThatThrownBy(() -> jedis.sendCommand("a", Protocol.Command.SSCAN,
"a", "0", "a*", "1"))
- .hasMessageContaining(ERROR_SYNTAX);
+ jedis.sadd(KEY, "1");
+ assertThatThrownBy(
+ () -> jedis.sendCommand(KEY, Protocol.Command.SSCAN, KEY, ZERO_CURSOR,
"a*", "1"))
+ .hasMessageContaining(ERROR_SYNTAX);
}
@Test
public void
givenCount_whenCountParameterIsNotAnInteger_returnsNotIntegerError() {
- jedis.sadd("a", "1");
+ jedis.sadd(KEY, "1");
assertThatThrownBy(
- () -> jedis.sendCommand("a", Protocol.Command.SSCAN, "a", "0",
"COUNT", "MATCH"))
+ () -> jedis.sendCommand(KEY, Protocol.Command.SSCAN, KEY, ZERO_CURSOR,
"COUNT", "MATCH"))
.hasMessageContaining(ERROR_NOT_INTEGER);
}
@Test
public void
givenMultipleCounts_whenAnyCountParameterIsNotAnInteger_returnsNotIntegerError()
{
- jedis.sadd("a", "1");
- assertThatThrownBy(() -> jedis.sendCommand("a", Protocol.Command.SSCAN,
"a", "0", "COUNT", "2",
- "COUNT", "sjlfs", "COUNT", "1"))
- .hasMessageContaining(ERROR_NOT_INTEGER);
+ jedis.sadd(KEY, "1");
+ assertThatThrownBy(
+ () -> jedis.sendCommand(KEY, Protocol.Command.SSCAN, KEY, ZERO_CURSOR,
"COUNT", "12",
+ "COUNT", "sjlfs", "COUNT", "1"))
+ .hasMessageContaining(ERROR_NOT_INTEGER);
}
@Test
public void
givenMultipleCounts_whenAnyCountParameterIsLessThanOne_returnsSyntaxError() {
- jedis.sadd("a", "1");
- assertThatThrownBy(() -> jedis.sendCommand("a", Protocol.Command.SSCAN,
"a", "0", "COUNT", "2",
- "COUNT", "0", "COUNT", "1"))
- .hasMessageContaining(ERROR_SYNTAX);
+ jedis.sadd(KEY, "1");
+ assertThatThrownBy(
+ () -> jedis.sendCommand(KEY, Protocol.Command.SSCAN, KEY, ZERO_CURSOR,
"COUNT", "12",
+ "COUNT", "0", "COUNT", "1"))
+ .hasMessageContaining(ERROR_SYNTAX);
}
@Test
public void givenCount_whenCountParameterIsZero_returnsSyntaxError() {
- jedis.sadd("a", "1");
-
- assertThatThrownBy(() -> jedis.sendCommand("a", Protocol.Command.SSCAN,
"a", "0", "COUNT", "0"))
- .hasMessageContaining(ERROR_SYNTAX);
+ jedis.sadd(KEY, "1");
+ assertThatThrownBy(
+ () -> jedis.sendCommand(KEY, Protocol.Command.SSCAN, KEY, ZERO_CURSOR,
"COUNT", "0"))
+ .hasMessageContaining(ERROR_SYNTAX);
}
@Test
public void givenCount_whenCountParameterIsNegative_returnsSyntaxError() {
- jedis.sadd("a", "1");
-
+ jedis.sadd(KEY, "1");
assertThatThrownBy(
- () -> jedis.sendCommand("a", Protocol.Command.SSCAN, "a", "0",
"COUNT", "-37"))
+ () -> jedis.sendCommand(KEY, Protocol.Command.SSCAN, KEY, ZERO_CURSOR,
"COUNT", "-37"))
.hasMessageContaining(ERROR_SYNTAX);
}
@Test
public void givenKeyIsNotASet_returnsWrongTypeError() {
Review comment:
Testing the error condition with the combination of "key is not a set"
and "count is negative" seems unnecessary. Testing
`givenKeyIsNotASet_returnsWrongTypeError` would be sufficient, no?
--
This is an automated message from the Apache Git Service.
To respond to the message, please log on to GitHub and use the
URL above to go to the specific comment.
To unsubscribe, e-mail: [email protected]
For queries about this service, please contact Infrastructure at:
[email protected]