DATAREDIS-944 - Move off deprecations in Spring Data Commons.

Related ticket: DATACMNS-1496.
This commit is contained in:
Oliver Drotbohm
2019-03-14 14:19:54 +01:00
parent 08acc3aa93
commit 77f6582aee
4 changed files with 164 additions and 205 deletions

View File

@@ -888,7 +888,8 @@ public interface ReactiveStringCommands {
Assert.notNull(key, "Key must not be null!");
return bitCount(Mono.just(BitCountCommand.bitCount(key).within(new Range<>(start, end)))).next()
return bitCount(Mono.just(BitCountCommand.bitCount(key).within(Range.open(start, end)))) //
.next() //
.map(NumericResponse::getOutput);
}

View File

@@ -19,19 +19,15 @@ import java.lang.annotation.Annotation;
import java.util.Collection;
import java.util.Collections;
import org.springframework.beans.DirectFieldAccessor;
import org.springframework.beans.MutablePropertyValues;
import org.springframework.beans.factory.config.BeanDefinition;
import org.springframework.beans.factory.config.ConstructorArgumentValues;
import org.springframework.beans.factory.config.RuntimeBeanReference;
import org.springframework.beans.factory.support.AbstractBeanDefinition;
import org.springframework.beans.factory.support.BeanDefinitionBuilder;
import org.springframework.beans.factory.support.BeanDefinitionRegistry;
import org.springframework.beans.factory.support.GenericBeanDefinition;
import org.springframework.beans.factory.support.RootBeanDefinition;
import org.springframework.core.annotation.AnnotationAttributes;
import org.springframework.data.keyvalue.repository.config.KeyValueRepositoryConfigurationExtension;
import org.springframework.data.redis.core.RedisHash;
import org.springframework.data.redis.core.RedisKeyValueAdapter;
import org.springframework.data.redis.core.RedisKeyValueAdapter.EnableKeyspaceEvents;
import org.springframework.data.redis.core.RedisKeyValueTemplate;
import org.springframework.data.redis.core.convert.MappingConfiguration;
import org.springframework.data.redis.core.convert.MappingRedisConverter;
@@ -82,107 +78,39 @@ public class RedisRepositoryConfigurationExtension extends KeyValueRepositoryCon
return "redisKeyValueTemplate";
}
/*
* (non-Javadoc)
* @see org.springframework.data.keyvalue.repository.config.KeyValueRepositoryConfigurationExtension#registerBeansForRoot(org.springframework.beans.factory.support.BeanDefinitionRegistry, org.springframework.data.repository.config.RepositoryConfigurationSource)
*/
@Override
public void registerBeansForRoot(BeanDefinitionRegistry registry, RepositoryConfigurationSource configurationSource) {
public void registerBeansForRoot(BeanDefinitionRegistry registry, RepositoryConfigurationSource configuration) {
String redisTemplateRef = configurationSource.getAttribute("redisTemplateRef").get();
String redisTemplateRef = configuration.getAttribute("redisTemplateRef").get();
RootBeanDefinition mappingContextDefinition = createRedisMappingContext(configurationSource);
mappingContextDefinition.setSource(configurationSource.getSource());
registerIfNotAlreadyRegistered(mappingContextDefinition, registry, MAPPING_CONTEXT_BEAN_NAME, configurationSource);
// register coustom conversions
RootBeanDefinition customConversions = new RootBeanDefinition(RedisCustomConversions.class);
registerIfNotAlreadyRegistered(customConversions, registry, REDIS_CUSTOM_CONVERSIONS_BEAN_NAME,
configurationSource);
// Register referenceResolver
RootBeanDefinition redisReferenceResolver = createRedisReferenceResolverDefinition(redisTemplateRef);
redisReferenceResolver.setSource(configurationSource.getSource());
registerIfNotAlreadyRegistered(redisReferenceResolver, registry, REDIS_REFERENCE_RESOLVER_BEAN_NAME,
configurationSource);
// Register converter
RootBeanDefinition redisConverterDefinition = createRedisConverterDefinition();
redisConverterDefinition.setSource(configurationSource.getSource());
registerIfNotAlreadyRegistered(redisConverterDefinition, registry, REDIS_CONVERTER_BEAN_NAME, configurationSource);
// register Adapter
RootBeanDefinition redisKeyValueAdapterDefinition = new RootBeanDefinition(RedisKeyValueAdapter.class);
ConstructorArgumentValues constructorArgumentValuesForRedisKeyValueAdapter = new ConstructorArgumentValues();
if (StringUtils.hasText(redisTemplateRef)) {
constructorArgumentValuesForRedisKeyValueAdapter.addIndexedArgumentValue(0,
new RuntimeBeanReference(redisTemplateRef));
if (!StringUtils.hasText(redisTemplateRef)) {
throw new IllegalStateException(
"@EnableRedisRepositories(redisTemplateRef = … ) must be configured to a non empty value!");
}
constructorArgumentValuesForRedisKeyValueAdapter.addIndexedArgumentValue(1,
new RuntimeBeanReference(REDIS_CONVERTER_BEAN_NAME));
registerIfNotAlreadyRegistered(() -> createRedisMappingContext(configuration), registry, MAPPING_CONTEXT_BEAN_NAME,
configuration.getSource());
redisKeyValueAdapterDefinition.setConstructorArgumentValues(constructorArgumentValuesForRedisKeyValueAdapter);
// Register custom conversions
registerIfNotAlreadyRegistered(() -> new RootBeanDefinition(RedisCustomConversions.class), registry,
REDIS_CUSTOM_CONVERSIONS_BEAN_NAME, configuration.getSource());
DirectFieldAccessor fieldAccessor = new DirectFieldAccessor(configurationSource);
AnnotationAttributes attributes = (AnnotationAttributes) fieldAccessor.getPropertyValue("attributes");
// Register referenceResolver
registerIfNotAlreadyRegistered(() -> createRedisReferenceResolverDefinition(redisTemplateRef), registry,
REDIS_REFERENCE_RESOLVER_BEAN_NAME, configuration.getSource());
MutablePropertyValues redisKeyValueAdapterProps = new MutablePropertyValues();
redisKeyValueAdapterProps.add("enableKeyspaceEvents", attributes.getEnum("enableKeyspaceEvents"));
redisKeyValueAdapterProps.add("keyspaceNotificationsConfigParameter",
attributes.getString("keyspaceNotificationsConfigParameter"));
redisKeyValueAdapterDefinition.setPropertyValues(redisKeyValueAdapterProps);
// Register converter
registerIfNotAlreadyRegistered(() -> createRedisConverterDefinition(), registry, REDIS_CONVERTER_BEAN_NAME,
configuration.getSource());
registerIfNotAlreadyRegistered(redisKeyValueAdapterDefinition, registry, REDIS_ADAPTER_BEAN_NAME,
configurationSource);
registerIfNotAlreadyRegistered(() -> createRedisKeyValueAdapter(configuration), registry, REDIS_ADAPTER_BEAN_NAME,
configuration.getSource());
super.registerBeansForRoot(registry, configurationSource);
}
private RootBeanDefinition createRedisReferenceResolverDefinition(String redisTemplateRef) {
RootBeanDefinition beanDef = new RootBeanDefinition();
beanDef.setBeanClassName("org.springframework.data.redis.core.convert.ReferenceResolverImpl");
ConstructorArgumentValues constructorArgs = new ConstructorArgumentValues();
constructorArgs.addIndexedArgumentValue(0, new RuntimeBeanReference(redisTemplateRef));
beanDef.setConstructorArgumentValues(constructorArgs);
return beanDef;
}
private RootBeanDefinition createRedisMappingContext(RepositoryConfigurationSource configurationSource) {
ConstructorArgumentValues mappingContextArgs = new ConstructorArgumentValues();
mappingContextArgs.addIndexedArgumentValue(0, createMappingConfigBeanDef(configurationSource));
RootBeanDefinition mappingContextBeanDef = new RootBeanDefinition(RedisMappingContext.class);
mappingContextBeanDef.setConstructorArgumentValues(mappingContextArgs);
return mappingContextBeanDef;
}
private BeanDefinition createMappingConfigBeanDef(RepositoryConfigurationSource configurationSource) {
DirectFieldAccessor dfa = new DirectFieldAccessor(configurationSource);
AnnotationAttributes aa = (AnnotationAttributes) dfa.getPropertyValue("attributes");
GenericBeanDefinition indexConfiguration = new GenericBeanDefinition();
indexConfiguration.setBeanClass(aa.getClass("indexConfiguration"));
GenericBeanDefinition keyspaceConfig = new GenericBeanDefinition();
keyspaceConfig.setBeanClass(aa.getClass("keyspaceConfiguration"));
ConstructorArgumentValues mappingConfigArgs = new ConstructorArgumentValues();
mappingConfigArgs.addIndexedArgumentValue(0, indexConfiguration);
mappingConfigArgs.addIndexedArgumentValue(1, keyspaceConfig);
GenericBeanDefinition mappingConfigBeanDef = new GenericBeanDefinition();
mappingConfigBeanDef.setBeanClass(MappingConfiguration.class);
mappingConfigBeanDef.setConstructorArgumentValues(mappingConfigArgs);
return mappingConfigBeanDef;
super.registerBeansForRoot(registry, configuration);
}
/*
@@ -193,34 +121,10 @@ public class RedisRepositoryConfigurationExtension extends KeyValueRepositoryCon
protected AbstractBeanDefinition getDefaultKeyValueTemplateBeanDefinition(
RepositoryConfigurationSource configurationSource) {
RootBeanDefinition keyValueTemplateDefinition = new RootBeanDefinition(RedisKeyValueTemplate.class);
ConstructorArgumentValues constructorArgumentValuesForKeyValueTemplate = new ConstructorArgumentValues();
constructorArgumentValuesForKeyValueTemplate.addIndexedArgumentValue(0,
new RuntimeBeanReference(REDIS_ADAPTER_BEAN_NAME));
constructorArgumentValuesForKeyValueTemplate.addIndexedArgumentValue(1,
new RuntimeBeanReference(MAPPING_CONTEXT_BEAN_NAME));
keyValueTemplateDefinition.setConstructorArgumentValues(constructorArgumentValuesForKeyValueTemplate);
return keyValueTemplateDefinition;
}
private RootBeanDefinition createRedisConverterDefinition() {
RootBeanDefinition beanDef = new RootBeanDefinition();
beanDef.setBeanClass(MappingRedisConverter.class);
ConstructorArgumentValues args = new ConstructorArgumentValues();
args.addIndexedArgumentValue(0, new RuntimeBeanReference(MAPPING_CONTEXT_BEAN_NAME));
beanDef.setConstructorArgumentValues(args);
MutablePropertyValues props = new MutablePropertyValues();
props.add("referenceResolver", new RuntimeBeanReference(REDIS_REFERENCE_RESOLVER_BEAN_NAME));
props.add("customConversions", new RuntimeBeanReference(REDIS_CUSTOM_CONVERSIONS_BEAN_NAME));
beanDef.setPropertyValues(props);
return beanDef;
return BeanDefinitionBuilder.rootBeanDefinition(RedisKeyValueTemplate.class) //
.addConstructorArgReference(REDIS_ADAPTER_BEAN_NAME) //
.addConstructorArgReference(MAPPING_CONTEXT_BEAN_NAME) //
.getBeanDefinition();
}
/*
@@ -229,7 +133,57 @@ public class RedisRepositoryConfigurationExtension extends KeyValueRepositoryCon
*/
@Override
protected Collection<Class<? extends Annotation>> getIdentifyingAnnotations() {
return Collections.<Class<? extends Annotation>> singleton(RedisHash.class);
return Collections.singleton(RedisHash.class);
}
private static AbstractBeanDefinition createRedisKeyValueAdapter(RepositoryConfigurationSource configuration) {
return BeanDefinitionBuilder.rootBeanDefinition(RedisKeyValueAdapter.class) //
.addConstructorArgReference(configuration.getRequiredAttribute("redisTemplateRef", String.class)) //
.addConstructorArgReference(REDIS_CONVERTER_BEAN_NAME) //
.addPropertyValue("enableKeyspaceEvents",
configuration.getRequiredAttribute("enableKeyspaceEvents", EnableKeyspaceEvents.class)) //
.addPropertyValue("keyspaceNotificationsConfigParameter",
configuration.getRequiredAttribute("keyspaceNotificationsConfigParameter", String.class)) //
.getBeanDefinition();
}
private static AbstractBeanDefinition createRedisReferenceResolverDefinition(String redisTemplateRef) {
return BeanDefinitionBuilder.rootBeanDefinition("org.springframework.data.redis.core.convert.ReferenceResolverImpl") //
.addConstructorArgReference(redisTemplateRef) //
.getBeanDefinition();
}
private static AbstractBeanDefinition createRedisMappingContext(RepositoryConfigurationSource configurationSource) {
return BeanDefinitionBuilder.rootBeanDefinition(RedisMappingContext.class) //
.addConstructorArgValue(createMappingConfigBeanDef(configurationSource)) //
.getBeanDefinition();
}
private static BeanDefinition createMappingConfigBeanDef(RepositoryConfigurationSource configuration) {
BeanDefinition indexDefinition = BeanDefinitionBuilder
.genericBeanDefinition(configuration.getRequiredAttribute("indexConfiguration", Class.class)) //
.getBeanDefinition();
BeanDefinition keyspaceDefinition = BeanDefinitionBuilder
.genericBeanDefinition(configuration.getRequiredAttribute("keyspaceConfiguration", Class.class)) //
.getBeanDefinition();
return BeanDefinitionBuilder.genericBeanDefinition(MappingConfiguration.class) //
.addConstructorArgValue(indexDefinition) //
.addConstructorArgValue(keyspaceDefinition) //
.getBeanDefinition();
}
private static AbstractBeanDefinition createRedisConverterDefinition() {
return BeanDefinitionBuilder.rootBeanDefinition(MappingRedisConverter.class) //
.addConstructorArgReference(MAPPING_CONTEXT_BEAN_NAME) //
.addPropertyReference("referenceResolver", REDIS_REFERENCE_RESOLVER_BEAN_NAME) //
.addPropertyReference("customConversions", REDIS_CUSTOM_CONVERSIONS_BEAN_NAME) //
.getBeanDefinition();
}
}

View File

@@ -18,6 +18,7 @@ package org.springframework.data.redis.connection.lettuce;
import static org.hamcrest.core.Is.*;
import static org.junit.Assert.*;
import static org.junit.Assume.*;
import static org.springframework.data.domain.Range.Bound.*;
import reactor.test.StepVerifier;
@@ -39,6 +40,12 @@ import org.springframework.data.redis.core.ScanOptions;
*/
public class LettuceReactiveZSetCommandsTests extends LettuceReactiveCommandsTestsBase {
private static final Range<Long> ONE_TO_TWO = Range.closed(1L, 2L);
private static final Range<Double> TWO_TO_THREE_ALL_INCLUSIVE = Range.closed(2D, 3D);
private static final Range<Double> TWO_INCLUSIVE_TO_THREE_EXCLUSIVE = Range.rightOpen(2D, 3D);
private static final Range<Double> TWO_EXCLUSIVE_TO_THREE_INCLUSIVE = Range.leftOpen(2D, 3D);
@Test // DATAREDIS-525
public void zAddShouldAddValuesWithScores() {
assertThat(connection.zSetCommands().zAdd(KEY_1_BBUFFER, 3.5D, VALUE_1_BBUFFER).block(), is(1L));
@@ -90,7 +97,7 @@ public class LettuceReactiveZSetCommandsTests extends LettuceReactiveCommandsTes
nativeCommands.zadd(KEY_1, 2D, VALUE_2);
nativeCommands.zadd(KEY_1, 3D, VALUE_3);
StepVerifier.create(connection.zSetCommands().zRange(KEY_1_BBUFFER, new Range<>(1L, 2L))) //
StepVerifier.create(connection.zSetCommands().zRange(KEY_1_BBUFFER, ONE_TO_TWO)) //
.expectNext(VALUE_2_BBUFFER, VALUE_3_BBUFFER) //
.verifyComplete();
}
@@ -102,7 +109,7 @@ public class LettuceReactiveZSetCommandsTests extends LettuceReactiveCommandsTes
nativeCommands.zadd(KEY_1, 2D, VALUE_2);
nativeCommands.zadd(KEY_1, 3D, VALUE_3);
StepVerifier.create(connection.zSetCommands().zRangeWithScores(KEY_1_BBUFFER, new Range<>(1L, 2L))) //
StepVerifier.create(connection.zSetCommands().zRangeWithScores(KEY_1_BBUFFER, ONE_TO_TWO)) //
.expectNext(new DefaultTuple(VALUE_2_BBUFFER.array(), 2D), new DefaultTuple(VALUE_3_BBUFFER.array(), 3D)) //
.verifyComplete();
}
@@ -114,7 +121,7 @@ public class LettuceReactiveZSetCommandsTests extends LettuceReactiveCommandsTes
nativeCommands.zadd(KEY_1, 2D, VALUE_2);
nativeCommands.zadd(KEY_1, 3D, VALUE_3);
StepVerifier.create(connection.zSetCommands().zRevRange(KEY_1_BBUFFER, new Range<>(1L, 2L))) //
StepVerifier.create(connection.zSetCommands().zRevRange(KEY_1_BBUFFER, ONE_TO_TWO)) //
.expectNext(VALUE_2_BBUFFER, VALUE_1_BBUFFER) //
.verifyComplete();
}
@@ -126,7 +133,7 @@ public class LettuceReactiveZSetCommandsTests extends LettuceReactiveCommandsTes
nativeCommands.zadd(KEY_1, 2D, VALUE_2);
nativeCommands.zadd(KEY_1, 3D, VALUE_3);
StepVerifier.create(connection.zSetCommands().zRevRangeWithScores(KEY_1_BBUFFER, new Range<>(1L, 2L))) //
StepVerifier.create(connection.zSetCommands().zRevRangeWithScores(KEY_1_BBUFFER, ONE_TO_TWO)) //
.expectNext(new DefaultTuple(VALUE_2_BBUFFER.array(), 2D), new DefaultTuple(VALUE_1_BBUFFER.array(), 1D)) //
.verifyComplete();
}
@@ -138,7 +145,7 @@ public class LettuceReactiveZSetCommandsTests extends LettuceReactiveCommandsTes
nativeCommands.zadd(KEY_1, 2D, VALUE_2);
nativeCommands.zadd(KEY_1, 3D, VALUE_3);
StepVerifier.create(connection.zSetCommands().zRangeByScore(KEY_1_BBUFFER, new Range<>(2D, 3D))) //
StepVerifier.create(connection.zSetCommands().zRangeByScore(KEY_1_BBUFFER, Range.closed(2D, 3D))) //
.expectNext(VALUE_2_BBUFFER, VALUE_3_BBUFFER) //
.verifyComplete();
}
@@ -178,7 +185,7 @@ public class LettuceReactiveZSetCommandsTests extends LettuceReactiveCommandsTes
nativeCommands.zadd(KEY_1, 2D, VALUE_2);
nativeCommands.zadd(KEY_1, 3D, VALUE_3);
StepVerifier.create(connection.zSetCommands().zRangeByScore(KEY_1_BBUFFER, new Range<>(2D, 3D, false, true))) //
StepVerifier.create(connection.zSetCommands().zRangeByScore(KEY_1_BBUFFER, TWO_EXCLUSIVE_TO_THREE_INCLUSIVE)) //
.expectNext(VALUE_3_BBUFFER) //
.verifyComplete();
}
@@ -190,7 +197,7 @@ public class LettuceReactiveZSetCommandsTests extends LettuceReactiveCommandsTes
nativeCommands.zadd(KEY_1, 2D, VALUE_2);
nativeCommands.zadd(KEY_1, 3D, VALUE_3);
StepVerifier.create(connection.zSetCommands().zRangeByScore(KEY_1_BBUFFER, new Range<>(2D, 3D, true, false))) //
StepVerifier.create(connection.zSetCommands().zRangeByScore(KEY_1_BBUFFER, TWO_INCLUSIVE_TO_THREE_EXCLUSIVE)) //
.expectNext(VALUE_2_BBUFFER) //
.verifyComplete();
}
@@ -202,7 +209,7 @@ public class LettuceReactiveZSetCommandsTests extends LettuceReactiveCommandsTes
nativeCommands.zadd(KEY_1, 2D, VALUE_2);
nativeCommands.zadd(KEY_1, 3D, VALUE_3);
StepVerifier.create(connection.zSetCommands().zRangeByScoreWithScores(KEY_1_BBUFFER, new Range<>(2D, 3D))) //
StepVerifier.create(connection.zSetCommands().zRangeByScoreWithScores(KEY_1_BBUFFER, TWO_TO_THREE_ALL_INCLUSIVE)) //
.expectNext(new DefaultTuple(VALUE_2_BBUFFER.array(), 2D), new DefaultTuple(VALUE_3_BBUFFER.array(), 3D)) //
.verifyComplete();
}
@@ -215,7 +222,7 @@ public class LettuceReactiveZSetCommandsTests extends LettuceReactiveCommandsTes
nativeCommands.zadd(KEY_1, 3D, VALUE_3);
StepVerifier
.create(connection.zSetCommands().zRangeByScoreWithScores(KEY_1_BBUFFER, new Range<>(2D, 3D, false, true))) //
.create(connection.zSetCommands().zRangeByScoreWithScores(KEY_1_BBUFFER, TWO_EXCLUSIVE_TO_THREE_INCLUSIVE)) //
.expectNext(new DefaultTuple(VALUE_3_BBUFFER.array(), 3D)) //
.verifyComplete();
}
@@ -228,7 +235,7 @@ public class LettuceReactiveZSetCommandsTests extends LettuceReactiveCommandsTes
nativeCommands.zadd(KEY_1, 3D, VALUE_3);
StepVerifier
.create(connection.zSetCommands().zRangeByScoreWithScores(KEY_1_BBUFFER, new Range<>(2D, 3D, true, false))) //
.create(connection.zSetCommands().zRangeByScoreWithScores(KEY_1_BBUFFER, TWO_INCLUSIVE_TO_THREE_EXCLUSIVE)) //
.expectNext(new DefaultTuple(VALUE_2_BBUFFER.array(), 2D)) //
.verifyComplete();
}
@@ -240,7 +247,7 @@ public class LettuceReactiveZSetCommandsTests extends LettuceReactiveCommandsTes
nativeCommands.zadd(KEY_1, 2D, VALUE_2);
nativeCommands.zadd(KEY_1, 3D, VALUE_3);
StepVerifier.create(connection.zSetCommands().zRevRangeByScore(KEY_1_BBUFFER, new Range<>(2D, 3D))) //
StepVerifier.create(connection.zSetCommands().zRevRangeByScore(KEY_1_BBUFFER, TWO_TO_THREE_ALL_INCLUSIVE)) //
.expectNext(VALUE_3_BBUFFER, VALUE_2_BBUFFER) //
.verifyComplete();
}
@@ -252,7 +259,7 @@ public class LettuceReactiveZSetCommandsTests extends LettuceReactiveCommandsTes
nativeCommands.zadd(KEY_1, 2D, VALUE_2);
nativeCommands.zadd(KEY_1, 3D, VALUE_3);
StepVerifier.create(connection.zSetCommands().zRevRangeByScore(KEY_1_BBUFFER, new Range<>(2D, 3D, false, true))) //
StepVerifier.create(connection.zSetCommands().zRevRangeByScore(KEY_1_BBUFFER, TWO_EXCLUSIVE_TO_THREE_INCLUSIVE)) //
.expectNext(VALUE_3_BBUFFER) //
.verifyComplete();
}
@@ -264,7 +271,7 @@ public class LettuceReactiveZSetCommandsTests extends LettuceReactiveCommandsTes
nativeCommands.zadd(KEY_1, 2D, VALUE_2);
nativeCommands.zadd(KEY_1, 3D, VALUE_3);
StepVerifier.create(connection.zSetCommands().zRevRangeByScore(KEY_1_BBUFFER, new Range<>(2D, 3D, true, false))) //
StepVerifier.create(connection.zSetCommands().zRevRangeByScore(KEY_1_BBUFFER, TWO_INCLUSIVE_TO_THREE_EXCLUSIVE)) //
.expectNext(VALUE_2_BBUFFER) //
.verifyComplete();
}
@@ -276,7 +283,7 @@ public class LettuceReactiveZSetCommandsTests extends LettuceReactiveCommandsTes
nativeCommands.zadd(KEY_1, 2D, VALUE_2);
nativeCommands.zadd(KEY_1, 3D, VALUE_3);
StepVerifier.create(connection.zSetCommands().zRevRangeByScoreWithScores(KEY_1_BBUFFER, new Range<>(2D, 3D))) //
StepVerifier.create(connection.zSetCommands().zRevRangeByScoreWithScores(KEY_1_BBUFFER, TWO_TO_THREE_ALL_INCLUSIVE)) //
.expectNext(new DefaultTuple(VALUE_3_BBUFFER.array(), 3D), new DefaultTuple(VALUE_2_BBUFFER.array(), 2D)) //
.verifyComplete();
}
@@ -289,7 +296,7 @@ public class LettuceReactiveZSetCommandsTests extends LettuceReactiveCommandsTes
nativeCommands.zadd(KEY_1, 3D, VALUE_3);
StepVerifier
.create(connection.zSetCommands().zRevRangeByScoreWithScores(KEY_1_BBUFFER, new Range<>(2D, 3D, false, true))) //
.create(connection.zSetCommands().zRevRangeByScoreWithScores(KEY_1_BBUFFER, TWO_EXCLUSIVE_TO_THREE_INCLUSIVE)) //
.expectNext(new DefaultTuple(VALUE_3_BBUFFER.array(), 3D)) //
.verifyComplete();
}
@@ -302,7 +309,7 @@ public class LettuceReactiveZSetCommandsTests extends LettuceReactiveCommandsTes
nativeCommands.zadd(KEY_1, 3D, VALUE_3);
StepVerifier
.create(connection.zSetCommands().zRevRangeByScoreWithScores(KEY_1_BBUFFER, new Range<>(2D, 3D, true, false))) //
.create(connection.zSetCommands().zRevRangeByScoreWithScores(KEY_1_BBUFFER, TWO_INCLUSIVE_TO_THREE_EXCLUSIVE)) //
.expectNext(new DefaultTuple(VALUE_2_BBUFFER.array(), 2D)) //
.verifyComplete();
}
@@ -330,7 +337,7 @@ public class LettuceReactiveZSetCommandsTests extends LettuceReactiveCommandsTes
nativeCommands.zadd(KEY_1, 2D, VALUE_2);
nativeCommands.zadd(KEY_1, 3D, VALUE_3);
assertThat(connection.zSetCommands().zCount(KEY_1_BBUFFER, new Range<>(2D, 3D)).block(), is(2L));
assertThat(connection.zSetCommands().zCount(KEY_1_BBUFFER, TWO_TO_THREE_ALL_INCLUSIVE).block(), is(2L));
}
@Test // DATAREDIS-525
@@ -340,7 +347,7 @@ public class LettuceReactiveZSetCommandsTests extends LettuceReactiveCommandsTes
nativeCommands.zadd(KEY_1, 2D, VALUE_2);
nativeCommands.zadd(KEY_1, 3D, VALUE_3);
assertThat(connection.zSetCommands().zCount(KEY_1_BBUFFER, new Range<>(2D, 3D, false, true)).block(), is(1L));
assertThat(connection.zSetCommands().zCount(KEY_1_BBUFFER, TWO_EXCLUSIVE_TO_THREE_INCLUSIVE).block(), is(1L));
}
@Test // DATAREDIS-525
@@ -350,7 +357,7 @@ public class LettuceReactiveZSetCommandsTests extends LettuceReactiveCommandsTes
nativeCommands.zadd(KEY_1, 2D, VALUE_2);
nativeCommands.zadd(KEY_1, 3D, VALUE_3);
assertThat(connection.zSetCommands().zCount(KEY_1_BBUFFER, new Range<>(2D, 3D, true, false)).block(), is(1L));
assertThat(connection.zSetCommands().zCount(KEY_1_BBUFFER, TWO_INCLUSIVE_TO_THREE_EXCLUSIVE).block(), is(1L));
}
@Test // DATAREDIS-525
@@ -360,8 +367,7 @@ public class LettuceReactiveZSetCommandsTests extends LettuceReactiveCommandsTes
nativeCommands.zadd(KEY_1, 2D, VALUE_2);
nativeCommands.zadd(KEY_1, 3D, VALUE_3);
assertThat(connection.zSetCommands().zCount(KEY_1_BBUFFER, new Range<>(Double.NEGATIVE_INFINITY, 2D)).block(),
is(2L));
assertThat(connection.zSetCommands().zCount(KEY_1_BBUFFER, Range.leftUnbounded(inclusive(2D))).block(), is(2L));
}
@Test // DATAREDIS-525
@@ -371,8 +377,7 @@ public class LettuceReactiveZSetCommandsTests extends LettuceReactiveCommandsTes
nativeCommands.zadd(KEY_1, 2D, VALUE_2);
nativeCommands.zadd(KEY_1, 3D, VALUE_3);
assertThat(connection.zSetCommands().zCount(KEY_1_BBUFFER, new Range<>(2D, Double.POSITIVE_INFINITY)).block(),
is(2L));
assertThat(connection.zSetCommands().zCount(KEY_1_BBUFFER, Range.rightUnbounded(inclusive(2D))).block(), is(2L));
}
@Test // DATAREDIS-525
@@ -400,7 +405,7 @@ public class LettuceReactiveZSetCommandsTests extends LettuceReactiveCommandsTes
nativeCommands.zadd(KEY_1, 2D, VALUE_2);
nativeCommands.zadd(KEY_1, 3D, VALUE_3);
assertThat(connection.zSetCommands().zRemRangeByRank(KEY_1_BBUFFER, new Range<>(1L, 2L)).block(), is(2L));
assertThat(connection.zSetCommands().zRemRangeByRank(KEY_1_BBUFFER, ONE_TO_TWO).block(), is(2L));
}
@Test // DATAREDIS-525
@@ -410,7 +415,7 @@ public class LettuceReactiveZSetCommandsTests extends LettuceReactiveCommandsTes
nativeCommands.zadd(KEY_1, 2D, VALUE_2);
nativeCommands.zadd(KEY_1, 3D, VALUE_3);
assertThat(connection.zSetCommands().zRemRangeByScore(KEY_1_BBUFFER, new Range<>(1D, 2D)).block(), is(2L));
assertThat(connection.zSetCommands().zRemRangeByScore(KEY_1_BBUFFER, Range.closed(1D, 2D)).block(), is(2L));
}
@Test // DATAREDIS-525
@@ -420,8 +425,7 @@ public class LettuceReactiveZSetCommandsTests extends LettuceReactiveCommandsTes
nativeCommands.zadd(KEY_1, 2D, VALUE_2);
nativeCommands.zadd(KEY_1, 3D, VALUE_3);
assertThat(
connection.zSetCommands().zRemRangeByScore(KEY_1_BBUFFER, new Range<>(Double.NEGATIVE_INFINITY, 2D)).block(),
assertThat(connection.zSetCommands().zRemRangeByScore(KEY_1_BBUFFER, Range.leftUnbounded(inclusive(2D))).block(),
is(2L));
}
@@ -432,8 +436,7 @@ public class LettuceReactiveZSetCommandsTests extends LettuceReactiveCommandsTes
nativeCommands.zadd(KEY_1, 2D, VALUE_2);
nativeCommands.zadd(KEY_1, 3D, VALUE_3);
assertThat(
connection.zSetCommands().zRemRangeByScore(KEY_1_BBUFFER, new Range<>(2D, Double.POSITIVE_INFINITY)).block(),
assertThat(connection.zSetCommands().zRemRangeByScore(KEY_1_BBUFFER, Range.rightUnbounded(inclusive(2D))).block(),
is(2L));
}
@@ -444,7 +447,7 @@ public class LettuceReactiveZSetCommandsTests extends LettuceReactiveCommandsTes
nativeCommands.zadd(KEY_1, 2D, VALUE_2);
nativeCommands.zadd(KEY_1, 3D, VALUE_3);
assertThat(connection.zSetCommands().zRemRangeByScore(KEY_1_BBUFFER, new Range<>(2D, 3D, false, true)).block(),
assertThat(connection.zSetCommands().zRemRangeByScore(KEY_1_BBUFFER, TWO_EXCLUSIVE_TO_THREE_INCLUSIVE).block(),
is(1L));
}
@@ -455,7 +458,7 @@ public class LettuceReactiveZSetCommandsTests extends LettuceReactiveCommandsTes
nativeCommands.zadd(KEY_1, 2D, VALUE_2);
nativeCommands.zadd(KEY_1, 3D, VALUE_3);
assertThat(connection.zSetCommands().zRemRangeByScore(KEY_1_BBUFFER, new Range<>(2D, 3D, true, false)).block(),
assertThat(connection.zSetCommands().zRemRangeByScore(KEY_1_BBUFFER, TWO_INCLUSIVE_TO_THREE_EXCLUSIVE).block(),
is(1L));
}
@@ -504,17 +507,16 @@ public class LettuceReactiveZSetCommandsTests extends LettuceReactiveCommandsTes
nativeCommands.zadd(KEY_1, 0D, "f");
nativeCommands.zadd(KEY_1, 0D, "g");
assertThat(connection.zSetCommands().zRangeByLex(KEY_1_BBUFFER, new Range<>("", "c")).collectList().block(),
Range<String> emptyToC = Range.closed("", "c");
assertThat(connection.zSetCommands().zRangeByLex(KEY_1_BBUFFER, emptyToC).collectList().block(),
IsIterableContainingInOrder.contains(ByteBuffer.wrap("a".getBytes()), ByteBuffer.wrap("b".getBytes()),
ByteBuffer.wrap("c".getBytes())));
assertThat(
connection.zSetCommands().zRangeByLex(KEY_1_BBUFFER, new Range<>("", "c", true, false)).collectList().block(),
assertThat(connection.zSetCommands().zRangeByLex(KEY_1_BBUFFER, Range.rightOpen("", "c")).collectList().block(),
IsIterableContainingInOrder.contains(ByteBuffer.wrap("a".getBytes()), ByteBuffer.wrap("b".getBytes())));
assertThat(
connection.zSetCommands().zRangeByLex(KEY_1_BBUFFER, new Range<>("aaa", "g", true, false)).collectList()
.block(),
assertThat(connection.zSetCommands().zRangeByLex(KEY_1_BBUFFER, Range.rightOpen("aaa", "g")).collectList().block(),
IsIterableContainingInOrder.contains(ByteBuffer.wrap("b".getBytes()), ByteBuffer.wrap("c".getBytes()),
ByteBuffer.wrap("d".getBytes()), ByteBuffer.wrap("e".getBytes()), ByteBuffer.wrap("f".getBytes())));
}
@@ -530,18 +532,15 @@ public class LettuceReactiveZSetCommandsTests extends LettuceReactiveCommandsTes
nativeCommands.zadd(KEY_1, 0D, "f");
nativeCommands.zadd(KEY_1, 0D, "g");
assertThat(connection.zSetCommands().zRevRangeByLex(KEY_1_BBUFFER, new Range<>("", "c")).collectList().block(),
assertThat(connection.zSetCommands().zRevRangeByLex(KEY_1_BBUFFER, Range.closed("", "c")).collectList().block(),
IsIterableContainingInOrder.contains(ByteBuffer.wrap("c".getBytes()), ByteBuffer.wrap("b".getBytes()),
ByteBuffer.wrap("a".getBytes())));
assertThat(
connection.zSetCommands().zRevRangeByLex(KEY_1_BBUFFER, new Range<>("", "c", true, false)).collectList()
.block(),
assertThat(connection.zSetCommands().zRevRangeByLex(KEY_1_BBUFFER, Range.rightOpen("", "c")).collectList().block(),
IsIterableContainingInOrder.contains(ByteBuffer.wrap("b".getBytes()), ByteBuffer.wrap("a".getBytes())));
assertThat(
connection.zSetCommands().zRevRangeByLex(KEY_1_BBUFFER, new Range<>("aaa", "g", true, false)).collectList()
.block(),
connection.zSetCommands().zRevRangeByLex(KEY_1_BBUFFER, Range.rightOpen("aaa", "g")).collectList().block(),
IsIterableContainingInOrder.contains(ByteBuffer.wrap("f".getBytes()), ByteBuffer.wrap("e".getBytes()),
ByteBuffer.wrap("d".getBytes()), ByteBuffer.wrap("c".getBytes()), ByteBuffer.wrap("b".getBytes())));
}

View File

@@ -53,6 +53,12 @@ import org.springframework.data.redis.serializer.StringRedisSerializer;
@SuppressWarnings("unchecked")
public class DefaultReactiveZSetOperationsIntegrationTests<K, V> {
private static final Range<Long> ZERO_RANGE = Range.just(0L);
private static final Range<Long> ZERO_TO_FIVE = Range.closed(0L, 5L);
private static final Range<Double> ZERO_TO_HUNDRED_DOUBLE = Range.closed(0d, 100d);
private static final Range<Double> NINE_TO_ELEVEN_DOUBLE = Range.closed(9d, 11d);
private final ReactiveRedisTemplate<K, V> redisTemplate;
private final ReactiveZSetOperations<K, V> zSetOperations;
@@ -188,7 +194,7 @@ public class DefaultReactiveZSetOperationsIntegrationTests<K, V> {
StepVerifier.create(zSetOperations.add(key, value1, 42.1)).expectNext(true).verifyComplete();
StepVerifier.create(zSetOperations.add(key, value2, 10)).expectNext(true).verifyComplete();
StepVerifier.create(zSetOperations.range(key, new Range<>(0L, 0L))) //
StepVerifier.create(zSetOperations.range(key, ZERO_RANGE)) //
.expectNext(value2) //
.verifyComplete();
@@ -206,7 +212,7 @@ public class DefaultReactiveZSetOperationsIntegrationTests<K, V> {
StepVerifier.create(zSetOperations.add(key, value1, 42.1)).expectNext(true).verifyComplete();
StepVerifier.create(zSetOperations.add(key, value2, 10)).expectNext(true).verifyComplete();
StepVerifier.create(zSetOperations.rangeWithScores(key, new Range<>(0L, 0L))) //
StepVerifier.create(zSetOperations.rangeWithScores(key, ZERO_RANGE)) //
.expectNext(new DefaultTypedTuple<>(value2, 10d)) //
.verifyComplete();
}
@@ -223,7 +229,7 @@ public class DefaultReactiveZSetOperationsIntegrationTests<K, V> {
StepVerifier.create(zSetOperations.add(key, value1, 42.1)).expectNext(true).verifyComplete();
StepVerifier.create(zSetOperations.add(key, value2, 10)).expectNext(true).verifyComplete();
StepVerifier.create(zSetOperations.rangeByScore(key, new Range<>(9d, 11d))) //
StepVerifier.create(zSetOperations.rangeByScore(key, NINE_TO_ELEVEN_DOUBLE)) //
.expectNext(value2) //
.verifyComplete();
}
@@ -240,7 +246,7 @@ public class DefaultReactiveZSetOperationsIntegrationTests<K, V> {
StepVerifier.create(zSetOperations.add(key, value1, 42.1)).expectNext(true).verifyComplete();
StepVerifier.create(zSetOperations.add(key, value2, 10)).expectNext(true).verifyComplete();
StepVerifier.create(zSetOperations.rangeByScoreWithScores(key, new Range<>(9d, 11d))) //
StepVerifier.create(zSetOperations.rangeByScoreWithScores(key, NINE_TO_ELEVEN_DOUBLE)) //
.expectNext(new DefaultTypedTuple<>(value2, 10d)) //
.verifyComplete();
}
@@ -257,9 +263,8 @@ public class DefaultReactiveZSetOperationsIntegrationTests<K, V> {
StepVerifier.create(zSetOperations.add(key, value1, 42.1)).expectNext(true).verifyComplete();
StepVerifier.create(zSetOperations.add(key, value2, 10)).expectNext(true).verifyComplete();
StepVerifier
.create(zSetOperations.rangeByScore(key, new Range<>(0d, 100d), //
Limit.limit().offset(1).count(10))) //
StepVerifier.create(zSetOperations.rangeByScore(key, ZERO_TO_HUNDRED_DOUBLE, //
Limit.limit().offset(1).count(10))) //
.expectNext(value1) //
.verifyComplete();
}
@@ -276,9 +281,8 @@ public class DefaultReactiveZSetOperationsIntegrationTests<K, V> {
StepVerifier.create(zSetOperations.add(key, value1, 42.1)).expectNext(true).verifyComplete();
StepVerifier.create(zSetOperations.add(key, value2, 10)).expectNext(true).verifyComplete();
StepVerifier
.create(zSetOperations.rangeByScoreWithScores(key, new Range<>(0d, 100d), //
Limit.limit().offset(1).count(10))) //
StepVerifier.create(zSetOperations.rangeByScoreWithScores(key, ZERO_TO_HUNDRED_DOUBLE, //
Limit.limit().offset(1).count(10))) //
.expectNext(new DefaultTypedTuple<>(value1, 42.1)) //
.verifyComplete();
}
@@ -295,7 +299,7 @@ public class DefaultReactiveZSetOperationsIntegrationTests<K, V> {
StepVerifier.create(zSetOperations.add(key, value1, 42.1)).expectNext(true).verifyComplete();
StepVerifier.create(zSetOperations.add(key, value2, 10)).expectNext(true).verifyComplete();
StepVerifier.create(zSetOperations.reverseRange(key, new Range<>(0L, 0L))) //
StepVerifier.create(zSetOperations.reverseRange(key, ZERO_RANGE)) //
.expectNext(value1) //
.verifyComplete();
@@ -313,7 +317,7 @@ public class DefaultReactiveZSetOperationsIntegrationTests<K, V> {
StepVerifier.create(zSetOperations.add(key, value1, 42.1)).expectNext(true).verifyComplete();
StepVerifier.create(zSetOperations.add(key, value2, 10)).expectNext(true).verifyComplete();
StepVerifier.create(zSetOperations.reverseRangeWithScores(key, new Range<>(0L, 0L))) //
StepVerifier.create(zSetOperations.reverseRangeWithScores(key, ZERO_RANGE)) //
.expectNext(new DefaultTypedTuple<>(value1, 42.1)) //
.verifyComplete();
}
@@ -330,7 +334,7 @@ public class DefaultReactiveZSetOperationsIntegrationTests<K, V> {
StepVerifier.create(zSetOperations.add(key, value1, 42.1)).expectNext(true).verifyComplete();
StepVerifier.create(zSetOperations.add(key, value2, 10)).expectNext(true).verifyComplete();
StepVerifier.create(zSetOperations.reverseRangeByScore(key, new Range<>(9d, 11d))) //
StepVerifier.create(zSetOperations.reverseRangeByScore(key, NINE_TO_ELEVEN_DOUBLE)) //
.expectNext(value2) //
.verifyComplete();
}
@@ -347,7 +351,7 @@ public class DefaultReactiveZSetOperationsIntegrationTests<K, V> {
StepVerifier.create(zSetOperations.add(key, value1, 42.1)).expectNext(true).verifyComplete();
StepVerifier.create(zSetOperations.add(key, value2, 10)).expectNext(true).verifyComplete();
StepVerifier.create(zSetOperations.reverseRangeByScoreWithScores(key, new Range<>(9d, 11d))) //
StepVerifier.create(zSetOperations.reverseRangeByScoreWithScores(key, NINE_TO_ELEVEN_DOUBLE)) //
.expectNext(new DefaultTypedTuple<>(value2, 10d)) //
.verifyComplete();
}
@@ -364,9 +368,8 @@ public class DefaultReactiveZSetOperationsIntegrationTests<K, V> {
StepVerifier.create(zSetOperations.add(key, value1, 42.1)).expectNext(true).verifyComplete();
StepVerifier.create(zSetOperations.add(key, value2, 10)).expectNext(true).verifyComplete();
StepVerifier
.create(zSetOperations.reverseRangeByScore(key, new Range<>(0d, 100d), //
Limit.limit().offset(1).count(10))) //
StepVerifier.create(zSetOperations.reverseRangeByScore(key, ZERO_TO_HUNDRED_DOUBLE, //
Limit.limit().offset(1).count(10))) //
.expectNext(value2) //
.verifyComplete();
}
@@ -383,9 +386,8 @@ public class DefaultReactiveZSetOperationsIntegrationTests<K, V> {
StepVerifier.create(zSetOperations.add(key, value1, 42.1)).expectNext(true).verifyComplete();
StepVerifier.create(zSetOperations.add(key, value2, 10)).expectNext(true).verifyComplete();
StepVerifier
.create(zSetOperations.reverseRangeByScoreWithScores(key, new Range<>(0d, 100d), //
Limit.limit().offset(1).count(10))) //
StepVerifier.create(zSetOperations.reverseRangeByScoreWithScores(key, ZERO_TO_HUNDRED_DOUBLE, //
Limit.limit().offset(1).count(10))) //
.expectNext(new DefaultTypedTuple<>(value2, 10d)) //
.verifyComplete();
}
@@ -423,9 +425,8 @@ public class DefaultReactiveZSetOperationsIntegrationTests<K, V> {
StepVerifier.create(zSetOperations.add(key, value1, 42.1)).expectNext(true).verifyComplete();
StepVerifier.create(zSetOperations.add(key, value2, 10)).expectNext(true).verifyComplete();
StepVerifier.create(zSetOperations.count(key, new Range<>(0d, 100d))).expectNext(2L).expectComplete()
.verify();
StepVerifier.create(zSetOperations.count(key, new Range<>(0d, 10d))).expectNext(1L).verifyComplete();
StepVerifier.create(zSetOperations.count(key, ZERO_TO_HUNDRED_DOUBLE)).expectNext(2L).expectComplete().verify();
StepVerifier.create(zSetOperations.count(key, Range.closed(0d, 10d))).expectNext(1L).verifyComplete();
}
@Test // DATAREDIS-602
@@ -467,8 +468,8 @@ public class DefaultReactiveZSetOperationsIntegrationTests<K, V> {
StepVerifier.create(zSetOperations.add(key, value1, 42.1)).expectNext(true).verifyComplete();
StepVerifier.create(zSetOperations.add(key, value2, 10)).expectNext(true).verifyComplete();
StepVerifier.create(zSetOperations.removeRange(key, new Range<>(0L, 0L))).expectNext(1L).verifyComplete();
StepVerifier.create(zSetOperations.range(key, new Range<>(0L, 5L))).expectNext(value1).verifyComplete();
StepVerifier.create(zSetOperations.removeRange(key, ZERO_RANGE)).expectNext(1L).verifyComplete();
StepVerifier.create(zSetOperations.range(key, ZERO_TO_FIVE)).expectNext(value1).verifyComplete();
}
@Test // DATAREDIS-602
@@ -483,9 +484,9 @@ public class DefaultReactiveZSetOperationsIntegrationTests<K, V> {
StepVerifier.create(zSetOperations.add(key, value1, 42.1)).expectNext(true).verifyComplete();
StepVerifier.create(zSetOperations.add(key, value2, 10)).expectNext(true).verifyComplete();
StepVerifier.create(zSetOperations.removeRangeByScore(key, new Range<>(9d, 11d))).expectNext(1L).expectComplete()
StepVerifier.create(zSetOperations.removeRangeByScore(key, NINE_TO_ELEVEN_DOUBLE)).expectNext(1L).expectComplete()
.verify();
StepVerifier.create(zSetOperations.range(key, new Range<>(0L, 5L))) //
StepVerifier.create(zSetOperations.range(key, ZERO_TO_FIVE)) //
.expectNext(value1) //
.verifyComplete();
}
@@ -508,7 +509,7 @@ public class DefaultReactiveZSetOperationsIntegrationTests<K, V> {
StepVerifier.create(zSetOperations.add(otherKey, shared, 11)).expectNext(true).verifyComplete();
StepVerifier.create(zSetOperations.unionAndStore(key, otherKey, destKey)).expectNext(3L).verifyComplete();
StepVerifier.create(zSetOperations.range(destKey, new Range<>(0L, 100L))).expectNextCount(3).verifyComplete();
StepVerifier.create(zSetOperations.range(destKey, Range.closed(0L, 100L))).expectNextCount(3).verifyComplete();
}
@Test // DATAREDIS-746
@@ -558,7 +559,7 @@ public class DefaultReactiveZSetOperationsIntegrationTests<K, V> {
StepVerifier.create(zSetOperations.intersectAndStore(key, otherKey, destKey)).expectNext(1L).expectComplete()
.verify();
StepVerifier.create(zSetOperations.range(destKey, new Range<>(0L, 5L))) //
StepVerifier.create(zSetOperations.range(destKey, ZERO_TO_FIVE)) //
.expectNextCount(1) //
.verifyComplete();
}
@@ -608,7 +609,7 @@ public class DefaultReactiveZSetOperationsIntegrationTests<K, V> {
StepVerifier.create(zSetOperations.add(key, a, 10)).expectNext(true).verifyComplete();
StepVerifier.create(zSetOperations.add(key, b, 11)).expectNext(true).verifyComplete();
StepVerifier.create(zSetOperations.rangeByLex(key, new Range<>("a", "a"))) //
StepVerifier.create(zSetOperations.rangeByLex(key, Range.just("a"))) //
.expectNext(a) //
.verifyComplete();
@@ -626,11 +627,13 @@ public class DefaultReactiveZSetOperationsIntegrationTests<K, V> {
StepVerifier.create(zSetOperations.add(key, a, 10)).expectNext(true).verifyComplete();
StepVerifier.create(zSetOperations.add(key, b, 11)).expectNext(true).verifyComplete();
StepVerifier.create(zSetOperations.rangeByLex(key, new Range<>("a", "z"), Limit.limit().offset(0).count(10))) //
Range<String> aToZ = Range.closed("a", "z");
StepVerifier.create(zSetOperations.rangeByLex(key, aToZ, Limit.limit().offset(0).count(10))) //
.expectNext(a, b) //
.verifyComplete();
StepVerifier.create(zSetOperations.rangeByLex(key, new Range<>("a", "z"), Limit.limit().offset(1).count(10))) //
StepVerifier.create(zSetOperations.rangeByLex(key, aToZ, Limit.limit().offset(1).count(10))) //
.expectNext(b) //
.verifyComplete();
}
@@ -647,7 +650,7 @@ public class DefaultReactiveZSetOperationsIntegrationTests<K, V> {
StepVerifier.create(zSetOperations.add(key, a, 10)).expectNext(true).verifyComplete();
StepVerifier.create(zSetOperations.add(key, b, 11)).expectNext(true).verifyComplete();
StepVerifier.create(zSetOperations.reverseRangeByLex(key, new Range<>("a", "a"))) //
StepVerifier.create(zSetOperations.reverseRangeByLex(key, Range.just("a"))) //
.expectNext(a) //
.verifyComplete();
}
@@ -664,11 +667,13 @@ public class DefaultReactiveZSetOperationsIntegrationTests<K, V> {
StepVerifier.create(zSetOperations.add(key, a, 10)).expectNext(true).verifyComplete();
StepVerifier.create(zSetOperations.add(key, b, 11)).expectNext(true).verifyComplete();
StepVerifier.create(zSetOperations.reverseRangeByLex(key, new Range<>("a", "z"), Limit.limit().offset(0).count(10))) //
Range<String> aToZ = Range.closed("a", "z");
StepVerifier.create(zSetOperations.reverseRangeByLex(key, aToZ, Limit.limit().offset(0).count(10))) //
.expectNext(b, a) //
.verifyComplete();
StepVerifier.create(zSetOperations.reverseRangeByLex(key, new Range<>("a", "z"), Limit.limit().offset(1).count(10))) //
StepVerifier.create(zSetOperations.reverseRangeByLex(key, aToZ, Limit.limit().offset(1).count(10))) //
.expectNext(a) //
.verifyComplete();
}