DATAREDIS-950 - Fix ClassCastException on shared Lettuce Cluster connection validation.
Original Pull Request: #445
This commit is contained in:
committed by
Christoph Strobl
parent
70cb773afe
commit
138198fd0f
@@ -31,6 +31,7 @@ import io.lettuce.core.api.StatefulRedisConnection;
|
||||
import io.lettuce.core.cluster.ClusterClientOptions;
|
||||
import io.lettuce.core.cluster.RedisClusterClient;
|
||||
import io.lettuce.core.cluster.api.StatefulRedisClusterConnection;
|
||||
import io.lettuce.core.cluster.api.sync.RedisAdvancedClusterCommands;
|
||||
import io.lettuce.core.codec.ByteArrayCodec;
|
||||
import io.lettuce.core.codec.RedisCodec;
|
||||
import io.lettuce.core.resource.ClientResources;
|
||||
@@ -663,6 +664,34 @@ public class LettuceConnectionFactoryUnitTests {
|
||||
verify(clientMock).connectAsync(ArgumentMatchers.any(RedisCodec.class));
|
||||
}
|
||||
|
||||
@Test // DATAREDIS-950
|
||||
public void shouldValidateSharedClusterConnection() {
|
||||
|
||||
RedisClusterClient clientMock = mock(RedisClusterClient.class);
|
||||
StatefulRedisClusterConnection<byte[], byte[]> connectionMock = mock(StatefulRedisClusterConnection.class);
|
||||
RedisAdvancedClusterCommands<byte[], byte[]> syncMock = mock(RedisAdvancedClusterCommands.class);
|
||||
when(clientMock.connectAsync(ByteArrayCodec.INSTANCE))
|
||||
.thenReturn(CompletableFuture.completedFuture(connectionMock));
|
||||
when(connectionMock.isOpen()).thenReturn(true);
|
||||
when(connectionMock.sync()).thenReturn(syncMock);
|
||||
|
||||
LettuceConnectionFactory connectionFactory = new LettuceConnectionFactory(clusterConfig,
|
||||
LettuceClientConfiguration.defaultConfiguration()) {
|
||||
|
||||
@Override
|
||||
protected AbstractRedisClient createClient() {
|
||||
return clientMock;
|
||||
}
|
||||
};
|
||||
|
||||
connectionFactory.setValidateConnection(true);
|
||||
connectionFactory.afterPropertiesSet();
|
||||
|
||||
connectionFactory.getConnection().close();
|
||||
|
||||
verify(syncMock).ping();
|
||||
}
|
||||
|
||||
@Test // DATAREDIS-721
|
||||
@SuppressWarnings("unchecked")
|
||||
public void shouldEagerlyInitializeSharedConnection() {
|
||||
|
||||
Reference in New Issue
Block a user