Fix Lettuce and RJC zRevRangeByScore incorrect parameter ordering
DATAREDIS-167 - Fix min/max parameter ordering - Fix Lettuce NPEs during transactions - Fix LettuceConnection not passing offset/count to zRevRangeByScoreWithScores
This commit is contained in:
@@ -46,6 +46,7 @@ import org.springframework.data.redis.Address;
|
||||
import org.springframework.data.redis.Person;
|
||||
import org.springframework.data.redis.connection.RedisListCommands.Position;
|
||||
import org.springframework.data.redis.connection.RedisZSetCommands.Aggregate;
|
||||
import org.springframework.data.redis.connection.RedisZSetCommands.Tuple;
|
||||
import org.springframework.data.redis.connection.SortParameters.Order;
|
||||
import org.springframework.data.redis.connection.StringRedisConnection.StringTuple;
|
||||
import org.springframework.data.redis.connection.lettuce.LettuceConnectionFactory;
|
||||
@@ -53,6 +54,7 @@ import org.springframework.data.redis.connection.srp.SrpConnectionFactory;
|
||||
import org.springframework.data.redis.core.StringRedisTemplate;
|
||||
import org.springframework.data.redis.serializer.JdkSerializationRedisSerializer;
|
||||
import org.springframework.data.redis.serializer.RedisSerializer;
|
||||
import org.springframework.data.redis.serializer.SerializationUtils;
|
||||
import org.springframework.data.redis.serializer.StringRedisSerializer;
|
||||
import org.springframework.test.annotation.IfProfileValue;
|
||||
import org.springframework.test.annotation.ProfileValueSourceConfiguration;
|
||||
@@ -78,9 +80,12 @@ public abstract class AbstractConnectionIntegrationTests {
|
||||
@Autowired
|
||||
protected RedisConnectionFactory connectionFactory;
|
||||
|
||||
protected RedisConnection byteConnection;
|
||||
|
||||
@Before
|
||||
public void setUp() {
|
||||
connection = new DefaultStringRedisConnection(connectionFactory.getConnection());
|
||||
byteConnection = connectionFactory.getConnection();
|
||||
connection = new DefaultStringRedisConnection(byteConnection);
|
||||
}
|
||||
|
||||
@After
|
||||
@@ -1001,6 +1006,53 @@ public abstract class AbstractConnectionIntegrationTests {
|
||||
connection.zRevRangeWithScores("myset", 0, -1));
|
||||
}
|
||||
|
||||
@Test
|
||||
public void testZRevRangeByScoreOffsetCount() {
|
||||
byteConnection.zAdd("myset".getBytes(), 2, "Bob".getBytes());
|
||||
byteConnection.zAdd("myset".getBytes(), 1, "James".getBytes());
|
||||
assertEquals(
|
||||
new LinkedHashSet<String>(Arrays.asList(new String[] { "Bob",
|
||||
"James" })), SerializationUtils.deserialize(
|
||||
byteConnection.zRevRangeByScore("myset".getBytes(), 0d,
|
||||
3d, 0, 5), stringSerializer));
|
||||
}
|
||||
|
||||
@Test
|
||||
public void testZRevRangeByScore() {
|
||||
byteConnection.zAdd("myset".getBytes(), 2, "Bob".getBytes());
|
||||
byteConnection.zAdd("myset".getBytes(), 1, "James".getBytes());
|
||||
assertEquals(
|
||||
new LinkedHashSet<String>(Arrays.asList(new String[] { "Bob",
|
||||
"James" })), SerializationUtils.deserialize(
|
||||
byteConnection.zRevRangeByScore("myset".getBytes(), 0d,
|
||||
3d), stringSerializer));
|
||||
}
|
||||
|
||||
@Test
|
||||
public void testZRevRangeByScoreWithScoresOffsetCount() {
|
||||
byteConnection.zAdd("myset".getBytes(), 2, "Bob".getBytes());
|
||||
byteConnection.zAdd("myset".getBytes(), 1, "James".getBytes());
|
||||
assertEquals(
|
||||
new LinkedHashSet<Tuple>(
|
||||
Arrays.asList(new Tuple[] { new DefaultTuple("Bob"
|
||||
.getBytes(), 2d) })),
|
||||
byteConnection.zRevRangeByScoreWithScores("myset".getBytes(),
|
||||
0d, 3d, 0, 1));
|
||||
}
|
||||
|
||||
@Test
|
||||
public void testZRevRangeByScoreWithScores() {
|
||||
byteConnection.zAdd("myset".getBytes(), 2, "Bob".getBytes());
|
||||
byteConnection.zAdd("myset".getBytes(), 1, "James".getBytes());
|
||||
byteConnection.zAdd("myset".getBytes(), 3, "Joe".getBytes());
|
||||
assertEquals(
|
||||
new LinkedHashSet<Tuple>(Arrays.asList(new Tuple[] {
|
||||
new DefaultTuple("Bob".getBytes(), 2d),
|
||||
new DefaultTuple("James".getBytes(), 1d) })),
|
||||
byteConnection.zRevRangeByScoreWithScores("myset".getBytes(),
|
||||
0d, 2d));
|
||||
}
|
||||
|
||||
@Test
|
||||
public void testZRank() {
|
||||
connection.zAdd("myset", 2, "Bob");
|
||||
|
||||
@@ -617,6 +617,63 @@ abstract public class AbstractConnectionPipelineIntegrationTests extends
|
||||
actual);
|
||||
}
|
||||
|
||||
@Test
|
||||
public void testZRevRangeByScoreOffsetCount() {
|
||||
actual.add(connection.zAdd("myset".getBytes(), 2, "Bob".getBytes()));
|
||||
actual.add(connection.zAdd("myset".getBytes(), 1, "James".getBytes()));
|
||||
actual.add(byteConnection.zRevRangeByScore("myset".getBytes(), 0d, 3d,
|
||||
0, 5));
|
||||
verifyResults(
|
||||
Arrays.asList(new Object[] { 1l, 1l,
|
||||
Arrays.asList(new String[] { "Bob", "James" }) }),
|
||||
actual);
|
||||
}
|
||||
|
||||
@Test
|
||||
public void testZRevRangeByScore() {
|
||||
actual.add(connection.zAdd("myset".getBytes(), 2, "Bob".getBytes()));
|
||||
actual.add(connection.zAdd("myset".getBytes(), 1, "James".getBytes()));
|
||||
actual.add(byteConnection.zRevRangeByScore("myset".getBytes(), 0d, 3d));
|
||||
verifyResults(
|
||||
Arrays.asList(new Object[] { 1l, 1l,
|
||||
Arrays.asList(new String[] { "Bob", "James" }) }),
|
||||
actual);
|
||||
}
|
||||
|
||||
@Test
|
||||
public void testZRevRangeByScoreWithScoresOffsetCount() {
|
||||
convertResultToTuples = true;
|
||||
actual.add(connection.zAdd("myset".getBytes(), 2, "Bob".getBytes()));
|
||||
actual.add(connection.zAdd("myset".getBytes(), 1, "James".getBytes()));
|
||||
actual.add(byteConnection.zRevRangeByScoreWithScores(
|
||||
"myset".getBytes(), 0d, 3d, 0, 1));
|
||||
verifyResults(Arrays.asList(new Object[] {
|
||||
1l,
|
||||
1l,
|
||||
Arrays.asList(new StringTuple[] { new DefaultStringTuple("Bob"
|
||||
.getBytes(), "Bob", 2d) }) }), actual);
|
||||
}
|
||||
|
||||
@Test
|
||||
public void testZRevRangeByScoreWithScores() {
|
||||
convertResultToTuples = true;
|
||||
actual.add(connection.zAdd("myset".getBytes(), 2, "Bob".getBytes()));
|
||||
actual.add(connection.zAdd("myset".getBytes(), 1, "James".getBytes()));
|
||||
actual.add(connection.zAdd("myset".getBytes(), 3, "Joe".getBytes()));
|
||||
actual.add(byteConnection.zRevRangeByScoreWithScores(
|
||||
"myset".getBytes(), 0d, 2d));
|
||||
verifyResults(
|
||||
Arrays.asList(new Object[] {
|
||||
1l,
|
||||
1l,
|
||||
1l,
|
||||
Arrays.asList(new StringTuple[] {
|
||||
new DefaultStringTuple("Bob".getBytes(), "Bob",
|
||||
2d),
|
||||
new DefaultStringTuple("James".getBytes(),
|
||||
"James", 1d) }) }), actual);
|
||||
}
|
||||
|
||||
@Test
|
||||
public void testZRank() {
|
||||
actual.add(connection.zAdd("myset", 2, "Bob"));
|
||||
|
||||
@@ -117,6 +117,26 @@ public class JedisConnectionPipelineIntegrationTests extends
|
||||
super.testInfo();
|
||||
}
|
||||
|
||||
@Test(expected = RedisSystemException.class)
|
||||
public void testZRevRangeByScore() {
|
||||
super.testZRevRangeByScore();
|
||||
}
|
||||
|
||||
@Test(expected = RedisSystemException.class)
|
||||
public void testZRevRangeByScoreOffsetCount() {
|
||||
super.testZRevRangeByScoreOffsetCount();
|
||||
}
|
||||
|
||||
@Test(expected = RedisSystemException.class)
|
||||
public void testZRevRangeByScoreWithScores() {
|
||||
super.testZRevRangeByScoreWithScores();
|
||||
}
|
||||
|
||||
@Test(expected = RedisSystemException.class)
|
||||
public void testZRevRangeByScoreWithScoresOffsetCount() {
|
||||
super.testZRevRangeByScoreWithScoresOffsetCount();
|
||||
}
|
||||
|
||||
// Overrides, usually due to return values being Long vs Boolean or Set vs
|
||||
// List
|
||||
|
||||
|
||||
@@ -240,6 +240,27 @@ public class JRedisConnectionIntegrationTests extends AbstractConnectionIntegrat
|
||||
super.testBRPopLPushTimeout();
|
||||
}
|
||||
|
||||
@Test(expected = UnsupportedOperationException.class)
|
||||
public void testZRevRangeByScore() {
|
||||
super.testZRevRangeByScore();
|
||||
}
|
||||
|
||||
@Test(expected = UnsupportedOperationException.class)
|
||||
public void testZRevRangeByScoreOffsetCount() {
|
||||
super.testZRevRangeByScoreOffsetCount();
|
||||
}
|
||||
|
||||
@Test(expected = UnsupportedOperationException.class)
|
||||
public void testZRevRangeByScoreWithScores() {
|
||||
super.testZRevRangeByScoreWithScores();
|
||||
}
|
||||
|
||||
@Test(expected = UnsupportedOperationException.class)
|
||||
public void testZRevRangeByScoreWithScoresOffsetCount() {
|
||||
super.testZRevRangeByScoreWithScoresOffsetCount();
|
||||
}
|
||||
|
||||
|
||||
// Jredis returns null for rPush
|
||||
@Test
|
||||
public void testSort() {
|
||||
|
||||
Reference in New Issue
Block a user