|
23 | 23 | import static org.springframework.data.redis.connection.ClusterTestVariables.*;
|
24 | 24 | import static org.springframework.data.redis.connection.RedisGeoCommands.DistanceUnit.*;
|
25 | 25 | import static org.springframework.data.redis.connection.RedisGeoCommands.GeoRadiusCommandArgs.*;
|
| 26 | +import static org.springframework.data.redis.connection.RedisZSetCommands.*; |
26 | 27 | import static org.springframework.data.redis.core.ScanOptions.*;
|
27 | 28 |
|
28 |
| -import org.springframework.data.redis.test.condition.EnabledOnCommand; |
29 | 29 | import redis.clients.jedis.HostAndPort;
|
30 | 30 | import redis.clients.jedis.Jedis;
|
31 | 31 | import redis.clients.jedis.JedisCluster;
|
|
63 | 63 | import org.springframework.data.redis.connection.RedisNode;
|
64 | 64 | import org.springframework.data.redis.connection.RedisStringCommands.BitOperation;
|
65 | 65 | import org.springframework.data.redis.connection.RedisStringCommands.SetOption;
|
66 |
| -import org.springframework.data.redis.connection.RedisZSetCommands.Range; |
67 |
| -import org.springframework.data.redis.connection.RedisZSetCommands.Tuple; |
68 | 66 | import org.springframework.data.redis.connection.ReturnType;
|
69 | 67 | import org.springframework.data.redis.connection.ValueEncoding.RedisValueEncoding;
|
70 | 68 | import org.springframework.data.redis.core.Cursor;
|
71 | 69 | import org.springframework.data.redis.core.ScanOptions;
|
72 | 70 | import org.springframework.data.redis.core.script.DigestUtils;
|
73 | 71 | import org.springframework.data.redis.core.types.Expiration;
|
| 72 | +import org.springframework.data.redis.test.condition.EnabledOnCommand; |
74 | 73 | import org.springframework.data.redis.test.condition.EnabledOnRedisClusterAvailable;
|
75 | 74 | import org.springframework.data.redis.test.extension.JedisExtension;
|
76 | 75 | import org.springframework.data.redis.test.util.HexStringUtils;
|
@@ -2041,6 +2040,40 @@ public void zRangeByLexShouldReturnResultCorrectly() {
|
2041 | 2040 | JedisConverters.toBytes("c"), JedisConverters.toBytes("d"));
|
2042 | 2041 | }
|
2043 | 2042 |
|
| 2043 | + @Test // GH-1998 |
| 2044 | + public void zRevRangeByLexShouldReturnValuesCorrectly() { |
| 2045 | + |
| 2046 | + nativeConnection.zadd(KEY_1, 0, "a"); |
| 2047 | + nativeConnection.zadd(KEY_1, 0, "b"); |
| 2048 | + nativeConnection.zadd(KEY_1, 0, "c"); |
| 2049 | + nativeConnection.zadd(KEY_1, 0, "d"); |
| 2050 | + nativeConnection.zadd(KEY_1, 0, "e"); |
| 2051 | + nativeConnection.zadd(KEY_1, 0, "f"); |
| 2052 | + nativeConnection.zadd(KEY_1, 0, "g"); |
| 2053 | + |
| 2054 | + Set<byte[]> values = clusterConnection.zRevRangeByLex(KEY_1_BYTES, Range.range().lte("c")); |
| 2055 | + |
| 2056 | + assertThat(values).containsExactly(JedisConverters.toBytes("c"), JedisConverters.toBytes("b"), |
| 2057 | + JedisConverters.toBytes("a")); |
| 2058 | + assertThat(values).doesNotContain(JedisConverters.toBytes("d"), JedisConverters.toBytes("e"), |
| 2059 | + JedisConverters.toBytes("f"), JedisConverters.toBytes("g")); |
| 2060 | + |
| 2061 | + values = clusterConnection.zRevRangeByLex(KEY_1_BYTES, Range.range().lt("c")); |
| 2062 | + assertThat(values).containsExactly(JedisConverters.toBytes("b"), JedisConverters.toBytes("a")); |
| 2063 | + assertThat(values).doesNotContain(JedisConverters.toBytes("c")); |
| 2064 | + |
| 2065 | + values = clusterConnection.zRevRangeByLex(KEY_1_BYTES, Range.range().gte("aaa").lt("g")); |
| 2066 | + assertThat(values).containsExactly(JedisConverters.toBytes("f"), JedisConverters.toBytes("e"), |
| 2067 | + JedisConverters.toBytes("d"), JedisConverters.toBytes("c"), JedisConverters.toBytes("b")); |
| 2068 | + assertThat(values).doesNotContain(JedisConverters.toBytes("a"), JedisConverters.toBytes("g")); |
| 2069 | + |
| 2070 | + values = clusterConnection.zRevRangeByLex(KEY_1_BYTES, Range.range().lte("d"), Limit.limit().count(2).offset(1)); |
| 2071 | + |
| 2072 | + assertThat(values).hasSize(2).containsExactly(JedisConverters.toBytes("c"), JedisConverters.toBytes("b")); |
| 2073 | + assertThat(values).doesNotContain(JedisConverters.toBytes("a"), JedisConverters.toBytes("d"), |
| 2074 | + JedisConverters.toBytes("e"), JedisConverters.toBytes("f"), JedisConverters.toBytes("g")); |
| 2075 | + } |
| 2076 | + |
2044 | 2077 | @Test // DATAREDIS-315
|
2045 | 2078 | public void zRangeByScoreShouldReturnValuesCorrectly() {
|
2046 | 2079 |
|
|
0 commit comments