|
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