Upgrade to Jedis 3.7.

Enable support for SCAN with type, call appropriate shutdown methods with save/nosave flags.

Closes: #2153
Original Pull Request: #2154
This commit is contained in:
Mark Paluch
2021-09-01 16:05:06 +02:00
committed by Christoph Strobl
parent 99053cfeac
commit a944aa2d1b
6 changed files with 44 additions and 46 deletions

View File

@@ -2600,8 +2600,7 @@ public abstract class AbstractConnectionIntegrationTests {
assertThat(i).isEqualTo(itemCount);
}
@Test // GH-2089
@EnabledOnRedisDriver(RedisDriver.LETTUCE)
@Test // GH-2089, GH-2153
@EnabledOnRedisVersion("6.0")
void scanWithType() {

View File

@@ -61,9 +61,6 @@ public class JedisConnectionPipelineIntegrationTests extends AbstractConnectionP
connection = null;
}
@Disabled("Jedis issue: Pipeline tries to return String instead of List<String>")
public void testGetConfig() {}
@Test
public void testWatch() {
connection.set("testitnow", "willdo");

View File

@@ -22,6 +22,8 @@ import redis.clients.jedis.Client;
import redis.clients.jedis.Jedis;
import redis.clients.jedis.ScanParams;
import redis.clients.jedis.ScanResult;
import redis.clients.jedis.args.SaveMode;
import redis.clients.jedis.exceptions.JedisException;
import java.io.IOException;
import java.util.Collections;
@@ -30,8 +32,8 @@ import java.util.Map.Entry;
import org.junit.jupiter.api.BeforeEach;
import org.junit.jupiter.api.Nested;
import org.junit.jupiter.api.Test;
import org.mockito.ArgumentCaptor;
import org.springframework.dao.InvalidDataAccessApiUsageException;
import org.springframework.dao.InvalidDataAccessResourceUsageException;
import org.springframework.data.redis.connection.AbstractConnectionUnitTestBase;
import org.springframework.data.redis.connection.RedisServerCommands.ShutdownOption;
@@ -58,34 +60,32 @@ class JedisConnectionUnitTests {
connection = new JedisConnection(jedisSpy);
}
@Test // DATAREDIS-184
@Test // DATAREDIS-184, GH-2153
void shutdownWithNullShouldDelegateCommandCorrectly() {
connection.shutdown(null);
try {
connection.shutdown(null);
} catch (InvalidDataAccessApiUsageException e) {
// all good. Sometimes it throws an Exception.
}
verifyNativeConnectionInvocation().shutdown();
}
@Test // DATAREDIS-184
public void shutdownNosaveShouldBeSentCorrectlyUsingLuaScript() {
@Test // DATAREDIS-184, GH-2153
void shutdownNosaveShouldBeSentCorrectly() {
connection.shutdown(ShutdownOption.NOSAVE);
assertThatExceptionOfType(JedisException.class).isThrownBy(() -> connection.shutdown(ShutdownOption.NOSAVE));
ArgumentCaptor<byte[]> captor = ArgumentCaptor.forClass(byte[].class);
verifyNativeConnectionInvocation().eval(captor.capture(), any(byte[].class), any(byte[][].class));
assertThat(captor.getValue()).isEqualTo("return redis.call('SHUTDOWN','NOSAVE')".getBytes());
verifyNativeConnectionInvocation().shutdown(SaveMode.NOSAVE);
}
@Test // DATAREDIS-184
public void shutdownSaveShouldBeSentCorrectlyUsingLuaScript() {
@Test // DATAREDIS-184, GH-2153
void shutdownSaveShouldBeSentCorrectly() {
connection.shutdown(ShutdownOption.SAVE);
assertThatExceptionOfType(JedisException.class).isThrownBy(() -> connection.shutdown(ShutdownOption.SAVE));
ArgumentCaptor<byte[]> captor = ArgumentCaptor.forClass(byte[].class);
verifyNativeConnectionInvocation().eval(captor.capture(), any(byte[].class), any(byte[][].class));
assertThat(captor.getValue()).isEqualTo("return redis.call('SHUTDOWN','SAVE')".getBytes());
verifyNativeConnectionInvocation().shutdown(SaveMode.SAVE);
}
@Test // DATAREDIS-267
@@ -279,22 +279,6 @@ class JedisConnectionUnitTests {
connection.openPipeline();
}
@Test
@Override
// DATAREDIS-184
public void shutdownNosaveShouldBeSentCorrectlyUsingLuaScript() {
assertThatExceptionOfType(UnsupportedOperationException.class)
.isThrownBy(() -> super.shutdownNosaveShouldBeSentCorrectlyUsingLuaScript());
}
@Test
@Override
// DATAREDIS-184
public void shutdownSaveShouldBeSentCorrectlyUsingLuaScript() {
assertThatExceptionOfType(UnsupportedOperationException.class)
.isThrownBy(() -> super.shutdownSaveShouldBeSentCorrectlyUsingLuaScript());
}
@Test // DATAREDIS-267
public void killClientShouldDelegateCallCorrectly() {
assertThatExceptionOfType(UnsupportedOperationException.class)