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