Add popFirst and popLast methods to RedisZSet.
See #2007 Original Pull Request: #2088
This commit is contained in:
committed by
Christoph Strobl
parent
0f2039d5a0
commit
739b917922
@@ -23,6 +23,7 @@ import java.util.Arrays;
|
||||
import java.util.Iterator;
|
||||
import java.util.NoSuchElementException;
|
||||
import java.util.Set;
|
||||
import java.util.concurrent.TimeUnit;
|
||||
|
||||
import org.assertj.core.data.Offset;
|
||||
import org.junit.jupiter.api.BeforeEach;
|
||||
@@ -37,6 +38,7 @@ import org.springframework.data.redis.core.BoundZSetOperations;
|
||||
import org.springframework.data.redis.core.Cursor;
|
||||
import org.springframework.data.redis.core.RedisTemplate;
|
||||
import org.springframework.data.redis.core.ZSetOperations.TypedTuple;
|
||||
import org.springframework.data.redis.test.condition.EnabledOnCommand;
|
||||
import org.springframework.data.redis.test.extension.parametrized.ParameterizedRedisTest;
|
||||
|
||||
/**
|
||||
@@ -119,6 +121,38 @@ public abstract class AbstractRedisZSetTestIntegration<T> extends AbstractRedisC
|
||||
assertThat(zSet.first()).isEqualTo(t1);
|
||||
}
|
||||
|
||||
@ParameterizedRedisTest
|
||||
@EnabledOnCommand("ZPOPMIN")
|
||||
void testPopFirst() {
|
||||
|
||||
T t1 = getT();
|
||||
T t2 = getT();
|
||||
T t3 = getT();
|
||||
|
||||
zSet.add(t1, 3);
|
||||
zSet.add(t2, 4);
|
||||
zSet.add(t3, 5);
|
||||
|
||||
assertThat(zSet.popFirst()).isEqualTo(t1);
|
||||
assertThat(zSet).hasSize(2);
|
||||
}
|
||||
|
||||
@ParameterizedRedisTest
|
||||
@EnabledOnCommand("ZPOPMIN")
|
||||
void testPopFirstWithTimeout() {
|
||||
|
||||
T t1 = getT();
|
||||
T t2 = getT();
|
||||
T t3 = getT();
|
||||
|
||||
zSet.add(t1, 3);
|
||||
zSet.add(t2, 4);
|
||||
zSet.add(t3, 5);
|
||||
|
||||
assertThat(zSet.popFirst(1, TimeUnit.SECONDS)).isEqualTo(t1);
|
||||
assertThat(zSet).hasSize(2);
|
||||
}
|
||||
|
||||
@ParameterizedRedisTest
|
||||
void testFirstException() {
|
||||
assertThatExceptionOfType(NoSuchElementException.class).isThrownBy(() -> zSet.first());
|
||||
@@ -126,6 +160,7 @@ public abstract class AbstractRedisZSetTestIntegration<T> extends AbstractRedisC
|
||||
|
||||
@ParameterizedRedisTest
|
||||
void testLast() {
|
||||
|
||||
T t1 = getT();
|
||||
T t2 = getT();
|
||||
T t3 = getT();
|
||||
@@ -138,6 +173,38 @@ public abstract class AbstractRedisZSetTestIntegration<T> extends AbstractRedisC
|
||||
assertThat(zSet.last()).isEqualTo(t3);
|
||||
}
|
||||
|
||||
@ParameterizedRedisTest
|
||||
@EnabledOnCommand("ZPOPMAX")
|
||||
void testPopLast() {
|
||||
|
||||
T t1 = getT();
|
||||
T t2 = getT();
|
||||
T t3 = getT();
|
||||
|
||||
zSet.add(t1, 3);
|
||||
zSet.add(t2, 4);
|
||||
zSet.add(t3, 5);
|
||||
|
||||
assertThat(zSet.popLast()).isEqualTo(t3);
|
||||
assertThat(zSet).hasSize(2);
|
||||
}
|
||||
|
||||
@ParameterizedRedisTest
|
||||
@EnabledOnCommand("ZPOPMAX")
|
||||
void testPopLastWithTimeout() {
|
||||
|
||||
T t1 = getT();
|
||||
T t2 = getT();
|
||||
T t3 = getT();
|
||||
|
||||
zSet.add(t1, 3);
|
||||
zSet.add(t2, 4);
|
||||
zSet.add(t3, 5);
|
||||
|
||||
assertThat(zSet.popLast(1, TimeUnit.SECONDS)).isEqualTo(t3);
|
||||
assertThat(zSet).hasSize(2);
|
||||
}
|
||||
|
||||
@ParameterizedRedisTest
|
||||
void testLastException() {
|
||||
assertThatExceptionOfType(NoSuchElementException.class).isThrownBy(() -> zSet.last());
|
||||
|
||||
Reference in New Issue
Block a user