|
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