Support ZRANDMEMBER via RedisZSet.

Add randomValue() method to both RedisZSet and RedisSet.

See: #2049
Original Pull Request: #2104
This commit is contained in:
Christoph Strobl
2021-06-30 14:08:27 +02:00
parent 4c4c96e9cf
commit 280d9541da
6 changed files with 60 additions and 4 deletions

View File

@@ -302,4 +302,14 @@ public abstract class AbstractRedisSetIntegrationTests<T> extends AbstractRedisC
}
cursor.close();
}
@ParameterizedRedisTest // GH-2049
void randMemberReturnsSomething() {
Object[] valuesArray = new Object[]{getT(), getT(), getT()};
collection.addAll((List<T>) Arrays.asList(valuesArray));
assertThat(set.randomValue()).isIn(valuesArray);
}
}

View File

@@ -21,6 +21,7 @@ import static org.assertj.core.api.Assumptions.*;
import java.io.IOException;
import java.util.Arrays;
import java.util.Iterator;
import java.util.List;
import java.util.NoSuchElementException;
import java.util.Set;
import java.util.concurrent.TimeUnit;
@@ -856,4 +857,15 @@ public abstract class AbstractRedisZSetTestIntegration<T> extends AbstractRedisC
assertThat(zSet.addIfAbsent(t1, 1)).isTrue();
assertThat(zSet.addIfAbsent(t1, 1)).isFalse();
}
@ParameterizedRedisTest // GH-2049
@EnabledOnCommand("ZRANDMEMBER")
void randMemberReturnsSomething() {
Object[] valuesArray = new Object[]{getT(), getT(), getT()};
collection.addAll((List<T>) Arrays.asList(valuesArray));
assertThat(zSet.randomValue()).isIn(valuesArray);
}
}