Skip to content

Commit 67ef82b

Browse files
committed
Polishing.
Add integration tests for Lettuce Cluster zRevRangeByLex. Fix converter usage in tests. See #1998
1 parent 996c749 commit 67ef82b

File tree

1 file changed

+47
-15
lines changed

1 file changed

+47
-15
lines changed

src/test/java/org/springframework/data/redis/connection/lettuce/LettuceClusterConnectionTests.java

+47-15
Original file line numberDiff line numberDiff line change
@@ -23,6 +23,7 @@
2323
import static org.springframework.data.redis.connection.ClusterTestVariables.*;
2424
import static org.springframework.data.redis.connection.RedisGeoCommands.DistanceUnit.*;
2525
import static org.springframework.data.redis.connection.RedisGeoCommands.GeoRadiusCommandArgs.*;
26+
import static org.springframework.data.redis.connection.RedisZSetCommands.*;
2627
import static org.springframework.data.redis.core.ScanOptions.*;
2728

2829
import io.lettuce.core.cluster.RedisClusterClient;
@@ -53,10 +54,7 @@
5354
import org.springframework.data.redis.connection.RedisListCommands.Position;
5455
import org.springframework.data.redis.connection.RedisStringCommands.BitOperation;
5556
import org.springframework.data.redis.connection.RedisStringCommands.SetOption;
56-
import org.springframework.data.redis.connection.RedisZSetCommands.Range;
57-
import org.springframework.data.redis.connection.RedisZSetCommands.Tuple;
5857
import org.springframework.data.redis.connection.ValueEncoding.RedisValueEncoding;
59-
import org.springframework.data.redis.connection.jedis.JedisConverters;
6058
import org.springframework.data.redis.core.Cursor;
6159
import org.springframework.data.redis.core.ScanOptions;
6260
import org.springframework.data.redis.core.types.Expiration;
@@ -996,7 +994,7 @@ public void keysShouldReturnAllKeysForSpecificNode() {
996994
nativeConnection.set(KEY_2, VALUE_2);
997995

998996
Set<byte[]> keysOnNode = clusterConnection.keys(new RedisClusterNode("127.0.0.1", 7379, SlotRange.empty()),
999-
JedisConverters.toBytes("*"));
997+
LettuceConverters.toBytes("*"));
1000998

1001999
assertThat(keysOnNode).contains(KEY_2_BYTES);
10021000
assertThat(keysOnNode).doesNotContain(KEY_1_BYTES);
@@ -2082,6 +2080,40 @@ public void zRangeByLexShouldReturnResultCorrectly() {
20822080
LettuceConverters.toBytes("c"), LettuceConverters.toBytes("d"));
20832081
}
20842082

2083+
@Test // GH-1998
2084+
public void zRevRangeByLexShouldReturnValuesCorrectly() {
2085+
2086+
nativeConnection.zadd(KEY_1, 0, "a");
2087+
nativeConnection.zadd(KEY_1, 0, "b");
2088+
nativeConnection.zadd(KEY_1, 0, "c");
2089+
nativeConnection.zadd(KEY_1, 0, "d");
2090+
nativeConnection.zadd(KEY_1, 0, "e");
2091+
nativeConnection.zadd(KEY_1, 0, "f");
2092+
nativeConnection.zadd(KEY_1, 0, "g");
2093+
2094+
Set<byte[]> values = clusterConnection.zRevRangeByLex(KEY_1_BYTES, Range.range().lte("c"));
2095+
2096+
assertThat(values).containsExactly(LettuceConverters.toBytes("c"), LettuceConverters.toBytes("b"),
2097+
LettuceConverters.toBytes("a"));
2098+
assertThat(values).doesNotContain(LettuceConverters.toBytes("d"), LettuceConverters.toBytes("e"),
2099+
LettuceConverters.toBytes("f"), LettuceConverters.toBytes("g"));
2100+
2101+
values = clusterConnection.zRevRangeByLex(KEY_1_BYTES, Range.range().lt("c"));
2102+
assertThat(values).containsExactly(LettuceConverters.toBytes("b"), LettuceConverters.toBytes("a"));
2103+
assertThat(values).doesNotContain(LettuceConverters.toBytes("c"));
2104+
2105+
values = clusterConnection.zRevRangeByLex(KEY_1_BYTES, Range.range().gte("aaa").lt("g"));
2106+
assertThat(values).containsExactly(LettuceConverters.toBytes("f"), LettuceConverters.toBytes("e"),
2107+
LettuceConverters.toBytes("d"), LettuceConverters.toBytes("c"), LettuceConverters.toBytes("b"));
2108+
assertThat(values).doesNotContain(LettuceConverters.toBytes("a"), LettuceConverters.toBytes("g"));
2109+
2110+
values = clusterConnection.zRevRangeByLex(KEY_1_BYTES, Range.range().lte("d"), Limit.limit().count(2).offset(1));
2111+
2112+
assertThat(values).hasSize(2).containsExactly(LettuceConverters.toBytes("c"), LettuceConverters.toBytes("b"));
2113+
assertThat(values).doesNotContain(LettuceConverters.toBytes("a"), LettuceConverters.toBytes("d"),
2114+
LettuceConverters.toBytes("e"), LettuceConverters.toBytes("f"), LettuceConverters.toBytes("g"));
2115+
}
2116+
20852117
@Test // DATAREDIS-315
20862118
public void zRangeByScoreShouldReturnValuesCorrectly() {
20872119

@@ -2398,46 +2430,46 @@ void refcountReturnsNullWhenKeyDoesNotExist() {
23982430
@Test // DATAREDIS-562
23992431
void bitFieldSetShouldWorkCorrectly() {
24002432

2401-
assertThat(clusterConnection.stringCommands().bitField(JedisConverters.toBytes(KEY_1),
2433+
assertThat(clusterConnection.stringCommands().bitField(LettuceConverters.toBytes(KEY_1),
24022434
create().set(INT_8).valueAt(BitFieldSubCommands.Offset.offset(0L)).to(10L))).containsExactly(0L);
2403-
assertThat(clusterConnection.stringCommands().bitField(JedisConverters.toBytes(KEY_1),
2435+
assertThat(clusterConnection.stringCommands().bitField(LettuceConverters.toBytes(KEY_1),
24042436
create().set(INT_8).valueAt(BitFieldSubCommands.Offset.offset(0L)).to(20L))).containsExactly(10L);
24052437
}
24062438

24072439
@Test // DATAREDIS-562
24082440
void bitFieldGetShouldWorkCorrectly() {
24092441

2410-
assertThat(clusterConnection.stringCommands().bitField(JedisConverters.toBytes(KEY_1),
2442+
assertThat(clusterConnection.stringCommands().bitField(LettuceConverters.toBytes(KEY_1),
24112443
create().get(INT_8).valueAt(BitFieldSubCommands.Offset.offset(0L)))).containsExactly(0L);
24122444
}
24132445

24142446
@Test // DATAREDIS-562
24152447
void bitFieldIncrByShouldWorkCorrectly() {
24162448

2417-
assertThat(clusterConnection.stringCommands().bitField(JedisConverters.toBytes(KEY_1),
2449+
assertThat(clusterConnection.stringCommands().bitField(LettuceConverters.toBytes(KEY_1),
24182450
create().incr(INT_8).valueAt(BitFieldSubCommands.Offset.offset(100L)).by(1L))).containsExactly(1L);
24192451
}
24202452

24212453
@Test // DATAREDIS-562
24222454
void bitFieldIncrByWithOverflowShouldWorkCorrectly() {
24232455

2424-
assertThat(clusterConnection.stringCommands().bitField(JedisConverters.toBytes(KEY_1),
2456+
assertThat(clusterConnection.stringCommands().bitField(LettuceConverters.toBytes(KEY_1),
24252457
create().incr(unsigned(2)).valueAt(BitFieldSubCommands.Offset.offset(102L)).overflow(FAIL).by(1L)))
24262458
.containsExactly(1L);
2427-
assertThat(clusterConnection.stringCommands().bitField(JedisConverters.toBytes(KEY_1),
2459+
assertThat(clusterConnection.stringCommands().bitField(LettuceConverters.toBytes(KEY_1),
24282460
create().incr(unsigned(2)).valueAt(BitFieldSubCommands.Offset.offset(102L)).overflow(FAIL).by(1L)))
24292461
.containsExactly(2L);
2430-
assertThat(clusterConnection.stringCommands().bitField(JedisConverters.toBytes(KEY_1),
2462+
assertThat(clusterConnection.stringCommands().bitField(LettuceConverters.toBytes(KEY_1),
24312463
create().incr(unsigned(2)).valueAt(BitFieldSubCommands.Offset.offset(102L)).overflow(FAIL).by(1L)))
24322464
.containsExactly(3L);
2433-
assertThat(clusterConnection.stringCommands().bitField(JedisConverters.toBytes(KEY_1),
2465+
assertThat(clusterConnection.stringCommands().bitField(LettuceConverters.toBytes(KEY_1),
24342466
create().incr(unsigned(2)).valueAt(BitFieldSubCommands.Offset.offset(102L)).overflow(FAIL).by(1L))).isNotNull();
24352467
}
24362468

24372469
@Test // DATAREDIS-562
24382470
void bitfieldShouldAllowMultipleSubcommands() {
24392471

2440-
assertThat(clusterConnection.stringCommands().bitField(JedisConverters.toBytes(KEY_1),
2472+
assertThat(clusterConnection.stringCommands().bitField(LettuceConverters.toBytes(KEY_1),
24412473
create().incr(signed(5)).valueAt(BitFieldSubCommands.Offset.offset(100L)).by(1L).get(unsigned(4)).valueAt(0L)))
24422474
.containsExactly(1L, 0L);
24432475
}
@@ -2446,13 +2478,13 @@ void bitfieldShouldAllowMultipleSubcommands() {
24462478
void bitfieldShouldWorkUsingNonZeroBasedOffset() {
24472479

24482480
assertThat(
2449-
clusterConnection.stringCommands().bitField(JedisConverters.toBytes(KEY_1),
2481+
clusterConnection.stringCommands().bitField(LettuceConverters.toBytes(KEY_1),
24502482
create().set(INT_8).valueAt(BitFieldSubCommands.Offset.offset(0L).multipliedByTypeLength()).to(100L)
24512483
.set(INT_8).valueAt(BitFieldSubCommands.Offset.offset(1L).multipliedByTypeLength()).to(200L)))
24522484
.containsExactly(0L, 0L);
24532485
assertThat(
24542486
clusterConnection.stringCommands()
2455-
.bitField(JedisConverters.toBytes(KEY_1),
2487+
.bitField(LettuceConverters.toBytes(KEY_1),
24562488
create().get(INT_8).valueAt(BitFieldSubCommands.Offset.offset(0L).multipliedByTypeLength()).get(INT_8)
24572489
.valueAt(BitFieldSubCommands.Offset.offset(1L).multipliedByTypeLength()))).containsExactly(100L,
24582490
-56L);

0 commit comments

Comments
 (0)