Skip to content

Commit 51ea73a

Browse files
DATAREDIS-1207 - Fix LettuceStreamCommands.xPending Range conversion..
Original Pull Request: #556
1 parent 0ee04a7 commit 51ea73a

File tree

2 files changed

+24
-1
lines changed

2 files changed

+24
-1
lines changed

src/main/java/org/springframework/data/redis/connection/lettuce/LettuceStreamCommands.java

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -442,7 +442,7 @@ public PendingMessagesSummary xPending(byte[] key, String groupName) {
442442
public PendingMessages xPending(byte[] key, String groupName, XPendingOptions options) {
443443

444444
byte[] group = LettuceConverters.toBytes(groupName);
445-
io.lettuce.core.Range<String> range = RangeConverter.toRangeWithDefault(options.getRange(), "-", "+");
445+
io.lettuce.core.Range<String> range = RangeConverter.toRangeWithDefault(options.getRange(), "-", "+", Function.identity());
446446
io.lettuce.core.Limit limit = options.isLimited() ? io.lettuce.core.Limit.from(options.getCount())
447447
: io.lettuce.core.Limit.unlimited();
448448

src/test/java/org/springframework/data/redis/connection/AbstractConnectionIntegrationTests.java

Lines changed: 23 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -3212,6 +3212,29 @@ public void xPendingShouldLoadPendingMessages() {
32123212
assertThat(pending.get(0).getIdAsString()).isNotNull();
32133213
}
32143214

3215+
@Test // DATAREDIS-1207
3216+
@IfProfileValue(name = "redisVersion", value = "5.0")
3217+
@WithRedisDriver({ RedisDriver.LETTUCE })
3218+
public void xPendingShouldWorkWithBoundedRange() {
3219+
3220+
actual.add(connection.xAdd(KEY_1, Collections.singletonMap(KEY_2, VALUE_2)));
3221+
actual.add(connection.xGroupCreate(KEY_1, ReadOffset.from("0"), "my-group"));
3222+
actual.add(connection.xReadGroupAsString(Consumer.from("my-group", "my-consumer"),
3223+
StreamOffset.create(KEY_1, ReadOffset.lastConsumed())));
3224+
3225+
actual.add(connection.xPending(KEY_1, "my-group", org.springframework.data.domain.Range.open("0-0", "+"), 10L));
3226+
3227+
List<Object> results = getResults();
3228+
assertThat(results).hasSize(4);
3229+
PendingMessages pending = (PendingMessages) results.get(3);
3230+
3231+
assertThat(pending.size()).isOne();
3232+
assertThat(pending.get(0).getConsumerName()).isEqualTo("my-consumer");
3233+
assertThat(pending.get(0).getGroupName()).isEqualTo("my-group");
3234+
assertThat(pending.get(0).getTotalDeliveryCount()).isOne();
3235+
assertThat(pending.get(0).getIdAsString()).isNotNull();
3236+
}
3237+
32153238
@Test // DATAREDIS-1084
32163239
@IfProfileValue(name = "redisVersion", value = "5.0")
32173240
@WithRedisDriver({ RedisDriver.LETTUCE })

0 commit comments

Comments
 (0)