DATAREDIS-842 - Polishing.

Reformat code. Add author tags. Add integration test.

Original pull request: #345.
This commit is contained in:
Mark Paluch
2018-06-06 12:23:07 +02:00
parent 0b53b8b53a
commit aae43892fe
3 changed files with 38 additions and 9 deletions

View File

@@ -77,6 +77,7 @@ import org.springframework.util.ClassUtils;
* @author Christoph Strobl
* @author Mark Paluch
* @author Balázs Németh
* @author Ruben Cervilla
*/
public class LettuceConnectionFactory
implements InitializingBean, DisposableBean, RedisConnectionFactory, ReactiveRedisConnectionFactory {

View File

@@ -29,9 +29,6 @@ import io.lettuce.core.ClientOptions;
import io.lettuce.core.RedisClient;
import io.lettuce.core.RedisURI;
import io.lettuce.core.cluster.RedisClusterClient;
import io.lettuce.core.cluster.api.StatefulRedisClusterConnection;
import io.lettuce.core.codec.ByteArrayCodec;
import io.lettuce.core.codec.RedisCodec;
import io.lettuce.core.resource.ClientResources;
import java.security.NoSuchAlgorithmException;
@@ -41,8 +38,6 @@ import java.util.Collections;
import org.junit.After;
import org.junit.Before;
import org.junit.Test;
import org.mockito.ArgumentMatchers;
import org.springframework.beans.DirectFieldAccessor;
import org.springframework.data.redis.ConnectionFactoryTracker;
import org.springframework.data.redis.connection.RedisClusterConfiguration;
import org.springframework.data.redis.connection.RedisClusterConnection;
@@ -57,6 +52,7 @@ import org.springframework.test.util.ReflectionTestUtils;
* @author Christoph Strobl
* @author Mark Paluch
* @author Balázs Németh
* @author Ruben Cervilla
*/
public class LettuceConnectionFactoryUnitTests {
@@ -68,7 +64,7 @@ public class LettuceConnectionFactoryUnitTests {
}
@After
public void tearDown() throws Exception {
public void tearDown() {
ConnectionFactoryTracker.cleanUp();
}
@@ -527,7 +523,8 @@ public class LettuceConnectionFactoryUnitTests {
@Test // DATAREDIS-842
public void databaseShouldBeSetCorrectlyOnSentinelClient() {
RedisSentinelConfiguration redisSentinelConfiguration = new RedisSentinelConfiguration("mymaster", Collections.singleton("host:1234"));
RedisSentinelConfiguration redisSentinelConfiguration = new RedisSentinelConfiguration("mymaster",
Collections.singleton("host:1234"));
redisSentinelConfiguration.setDatabase(1);
LettuceConnectionFactory connectionFactory = new LettuceConnectionFactory(redisSentinelConfiguration);
connectionFactory.setClientResources(getSharedClientResources());

View File

@@ -35,6 +35,7 @@ import org.junit.runners.Parameterized.Parameters;
import org.springframework.data.redis.ConnectionFactoryTracker;
import org.springframework.data.redis.connection.AbstractConnectionIntegrationTests;
import org.springframework.data.redis.connection.DefaultStringRedisConnection;
import org.springframework.data.redis.connection.RedisConnection;
import org.springframework.data.redis.connection.RedisSentinelConfiguration;
import org.springframework.data.redis.connection.RedisSentinelConnection;
import org.springframework.data.redis.connection.RedisServer;
@@ -56,8 +57,14 @@ public class LettuceSentinelIntegrationTests extends AbstractConnectionIntegrati
private static final RedisServer SLAVE_0 = new RedisServer("127.0.0.1", 6380);
private static final RedisServer SLAVE_1 = new RedisServer("127.0.0.1", 6381);
private static final RedisSentinelConfiguration SENTINEL_CONFIG = new RedisSentinelConfiguration() //
.master(MASTER_NAME).sentinel(SENTINEL_0).sentinel(SENTINEL_1);
private static final RedisSentinelConfiguration SENTINEL_CONFIG;
static {
SENTINEL_CONFIG = new RedisSentinelConfiguration() //
.master(MASTER_NAME).sentinel(SENTINEL_0).sentinel(SENTINEL_1);
SENTINEL_CONFIG.setDatabase(5);
}
public static @ClassRule RedisSentinelRule sentinelRule = RedisSentinelRule.forConfig(SENTINEL_CONFIG).oneActive();
public @Rule MinimumRedisVersionRule minimumVersionRule = new MinimumRedisVersionRule();
@@ -118,6 +125,30 @@ public class LettuceSentinelIntegrationTests extends AbstractConnectionIntegrati
assertThat(servers.get(0).getName(), is(MASTER_NAME));
}
@Test // DATAREDIS-842
public void shouldUseSpecifiedDatabase() {
RedisConnection connection = connectionFactory.getConnection();
connection.flushDb();
connection.set("foo".getBytes(), "bar".getBytes());
connection.close();
LettuceConnectionFactory connectionFactory = new LettuceConnectionFactory();
connectionFactory.setClientResources(LettuceTestClientResources.getSharedClientResources());
connectionFactory.setShutdownTimeout(0);
connectionFactory.setShareNativeConnection(false);
connectionFactory.afterPropertiesSet();
RedisConnection directConnection = connectionFactory.getConnection();
assertThat(directConnection.exists("foo".getBytes()), is(false));
directConnection.select(5);
assertThat(directConnection.exists("foo".getBytes()), is(true));
directConnection.close();
connectionFactory.destroy();
}
@Test // DATAREDIS-348
public void shouldReadSlavesOfMastersCorrectly() {