Fix StringRedisConnection not passed to callbacks in StringTemplate.execute()
DATAREDIS-222
This commit is contained in:
@@ -38,7 +38,7 @@ import org.springframework.test.context.junit4.SpringJUnit4ClassRunner;
|
||||
*
|
||||
*/
|
||||
@RunWith(SpringJUnit4ClassRunner.class)
|
||||
@ContextConfiguration("RedisTemplateTests-context.xml")
|
||||
@ContextConfiguration("StringRedisTemplateTests-context.xml")
|
||||
@ProfileValueSourceConfiguration(RedisTestProfileValueSource.class)
|
||||
public class DefaultSetOperationsTests {
|
||||
|
||||
|
||||
@@ -27,7 +27,9 @@ import org.junit.Before;
|
||||
import org.junit.Test;
|
||||
import org.junit.runner.RunWith;
|
||||
import org.springframework.beans.factory.annotation.Autowired;
|
||||
import org.springframework.data.redis.RedisTestProfileValueSource;
|
||||
import org.springframework.test.annotation.IfProfileValue;
|
||||
import org.springframework.test.annotation.ProfileValueSourceConfiguration;
|
||||
import org.springframework.test.context.ContextConfiguration;
|
||||
import org.springframework.test.context.junit4.SpringJUnit4ClassRunner;
|
||||
|
||||
@@ -38,7 +40,8 @@ import org.springframework.test.context.junit4.SpringJUnit4ClassRunner;
|
||||
*
|
||||
*/
|
||||
@RunWith(SpringJUnit4ClassRunner.class)
|
||||
@ContextConfiguration("RedisTemplateTests-context.xml")
|
||||
@ContextConfiguration("StringRedisTemplateTests-context.xml")
|
||||
@ProfileValueSourceConfiguration(RedisTestProfileValueSource.class)
|
||||
public class DefaultValueOperationsTests {
|
||||
|
||||
@Autowired
|
||||
|
||||
@@ -22,6 +22,7 @@ import org.junit.Test;
|
||||
import org.springframework.dao.DataAccessException;
|
||||
import org.springframework.data.redis.connection.RedisConnection;
|
||||
import org.springframework.data.redis.connection.RedisConnectionFactory;
|
||||
import org.springframework.data.redis.connection.StringRedisConnection;
|
||||
import org.springframework.data.redis.core.RedisCallback;
|
||||
import org.springframework.data.redis.core.RedisOperations;
|
||||
import org.springframework.data.redis.core.RedisTemplate;
|
||||
@@ -36,18 +37,19 @@ public class SessionTest {
|
||||
@Test
|
||||
public void testSession() throws Exception {
|
||||
final RedisConnection conn = mock(RedisConnection.class);
|
||||
final StringRedisConnection stringConn = mock(StringRedisConnection.class);
|
||||
RedisConnectionFactory factory = mock(RedisConnectionFactory.class);
|
||||
|
||||
final StringRedisTemplate template = spy(new StringRedisTemplate(factory));
|
||||
when(factory.getConnection()).thenReturn(conn);
|
||||
final StringRedisTemplate template = new StringRedisTemplate(factory);
|
||||
doReturn(stringConn).when(template).preProcessConnection(eq(conn), anyBoolean());
|
||||
|
||||
template.execute(new SessionCallback<Object>() {
|
||||
|
||||
@SuppressWarnings("rawtypes")
|
||||
public Object execute(RedisOperations operations) {
|
||||
checkConnection(template, conn);
|
||||
checkConnection(template, stringConn);
|
||||
template.discard();
|
||||
assertSame(template, operations);
|
||||
checkConnection(template, conn);
|
||||
checkConnection(template, stringConn);
|
||||
return null;
|
||||
}
|
||||
});
|
||||
@@ -55,8 +57,6 @@ public class SessionTest {
|
||||
|
||||
private void checkConnection(RedisTemplate<?, ?> template, final RedisConnection expectedConnection) {
|
||||
template.execute(new RedisCallback<Object>() {
|
||||
|
||||
|
||||
public Object doInRedis(RedisConnection connection) throws DataAccessException {
|
||||
assertSame(expectedConnection, connection);
|
||||
return null;
|
||||
|
||||
@@ -25,28 +25,38 @@ import org.junit.After;
|
||||
import org.junit.Test;
|
||||
import org.junit.runner.RunWith;
|
||||
import org.springframework.beans.factory.annotation.Autowired;
|
||||
import org.springframework.data.redis.RedisTestProfileValueSource;
|
||||
import org.springframework.data.redis.TestCondition;
|
||||
import org.springframework.data.redis.connection.RedisConnection;
|
||||
import org.springframework.data.redis.connection.StringRedisConnection;
|
||||
import org.springframework.test.annotation.IfProfileValue;
|
||||
import org.springframework.test.annotation.ProfileValueSourceConfiguration;
|
||||
import org.springframework.test.context.ContextConfiguration;
|
||||
import org.springframework.test.context.junit4.SpringJUnit4ClassRunner;
|
||||
|
||||
/**
|
||||
*
|
||||
* Integration test of {@link RedisTemplate}
|
||||
*
|
||||
* Integration test of {@link StringRedisTemplate}
|
||||
*
|
||||
* @author Jennifer Hickey
|
||||
*
|
||||
*/
|
||||
@RunWith(SpringJUnit4ClassRunner.class)
|
||||
@ContextConfiguration
|
||||
public class RedisTemplateTests {
|
||||
@ProfileValueSourceConfiguration(RedisTestProfileValueSource.class)
|
||||
public class StringRedisTemplateTests {
|
||||
|
||||
@Autowired
|
||||
private RedisTemplate<String, String> redisTemplate;
|
||||
private StringRedisTemplate redisTemplate;
|
||||
|
||||
@After
|
||||
public void tearDown() {
|
||||
redisTemplate.getConnectionFactory().getConnection().flushDb();
|
||||
redisTemplate.execute(new RedisCallback<Object>() {
|
||||
public Object doInRedis(RedisConnection connection) {
|
||||
connection.flushDb();
|
||||
return null;
|
||||
}
|
||||
});
|
||||
}
|
||||
|
||||
@Test
|
||||
@@ -90,4 +100,15 @@ public class RedisTemplateTests {
|
||||
tpl.exec();
|
||||
}
|
||||
|
||||
@Test
|
||||
public void testStringTemplateExecutesWithStringConn() {
|
||||
String value = redisTemplate.execute(new RedisCallback<String>() {
|
||||
public String doInRedis(RedisConnection connection) {
|
||||
StringRedisConnection stringConn = (StringRedisConnection) connection;
|
||||
stringConn.set("test", "it");
|
||||
return stringConn.get("test");
|
||||
}
|
||||
});
|
||||
assertEquals(value,"it");
|
||||
}
|
||||
}
|
||||
Reference in New Issue
Block a user