DATAREDIS-729 - Polishing.

Reorder methods so lexCount(…) comes after count(…). Tweak Javadoc wording. Simplify tests.

Original pull request: #569.
This commit is contained in:
Mark Paluch
2020-10-14 09:46:58 +02:00
parent bd1332ec5c
commit 1964ed15c6
21 changed files with 411 additions and 412 deletions

View File

@@ -1791,6 +1791,34 @@ public abstract class AbstractConnectionIntegrationTests {
verifyResults(Arrays.asList(new Object[] { true, true, true, 2l }));
}
@Test // DATAREDIS-729
@IfProfileValue(name = "redisVersion", value = "2.9.0+")
@WithRedisDriver({ RedisDriver.JEDIS, RedisDriver.LETTUCE })
public void zLexCountTest() {
actual.add(connection.zAdd("myzset", 0, "a"));
actual.add(connection.zAdd("myzset", 0, "b"));
actual.add(connection.zAdd("myzset", 0, "c"));
actual.add(connection.zAdd("myzset", 0, "d"));
actual.add(connection.zAdd("myzset", 0, "e"));
actual.add(connection.zAdd("myzset", 0, "f"));
actual.add(connection.zAdd("myzset", 0, "g"));
actual.add(connection.zLexCount("myzset", Range.unbounded()));
actual.add(connection.zLexCount("myzset", Range.range().lt("c")));
actual.add(connection.zLexCount("myzset", Range.range().lte("c")));
actual.add(connection.zLexCount("myzset", Range.range().gte("aaa").lt("g")));
actual.add(connection.zLexCount("myzset", Range.range().gte("e")));
List<Object> results = getResults();
assertThat((Long) results.get(7)).isEqualTo(7);
assertThat((Long) results.get(8)).isEqualTo(2);
assertThat((Long) results.get(9)).isEqualTo(3);
assertThat((Long) results.get(10)).isEqualTo(5);
assertThat((Long) results.get(11)).isEqualTo(3);
}
@Test
public void testZIncrBy() {
actual.add(connection.zAdd("myset", 2, "Bob"));
@@ -2454,43 +2482,6 @@ public abstract class AbstractConnectionIntegrationTests {
assertThat((Set<String>) results.get(13)).contains("c", "b").doesNotContain("a", "d", "e", "f", "g");
}
@Test // DATAREDIS-729
@IfProfileValue(name = "redisVersion", value = "2.9.0+")
@WithRedisDriver({ RedisDriver.JEDIS, RedisDriver.LETTUCE })
public void zLexCountTest() {
actual.add(connection.zAdd("myzset", 0, "a"));
actual.add(connection.zAdd("myzset", 0, "b"));
actual.add(connection.zAdd("myzset", 0, "c"));
actual.add(connection.zAdd("myzset", 0, "d"));
actual.add(connection.zAdd("myzset", 0, "e"));
actual.add(connection.zAdd("myzset", 0, "f"));
actual.add(connection.zAdd("myzset", 0, "g"));
actual.add(connection.zLexCount("myzset", Range.unbounded()));
actual.add(connection.zLexCount("myzset", Range.range().lt("c")));
actual.add(connection.zLexCount("myzset", Range.range().lte("c")));
actual.add(connection.zLexCount("myzset", Range.range().gte("aaa").lt("g")));
actual.add(connection.zLexCount("myzset", Range.range().gte("e")));
List<Object> results = getResults();
Long count = (Long) results.get(7);
assertThat(count).isEqualTo(7);
count = (Long) results.get(8);
assertThat(count).isEqualTo(2);
count = (Long) results.get(9);
assertThat(count).isEqualTo(3);
count = (Long) results.get(10);
assertThat(count).isEqualTo(5);
count = (Long) results.get(11);
assertThat(count).isEqualTo(3);
}
@Test(expected = IllegalArgumentException.class) // DATAREDIS-316, DATAREDIS-692
@WithRedisDriver({ RedisDriver.JEDIS, RedisDriver.LETTUCE })
public void setWithExpirationAndNullOpionShouldThrowException() {

View File

@@ -430,6 +430,26 @@ public class DefaultReactiveZSetOperationsIntegrationTests<K, V> {
zSetOperations.count(key, Range.closed(0d, 10d)).as(StepVerifier::create).expectNext(1L).verifyComplete();
}
@Test // DATAREDIS-729
public void lexCount() {
assumeTrue(serializer instanceof StringRedisSerializer);
K key = keyFactory.instance();
zSetOperations.add(key, (V) "a", 0).as(StepVerifier::create).expectNext(true).verifyComplete();
zSetOperations.add(key, (V) "b", 0).as(StepVerifier::create).expectNext(true).verifyComplete();
zSetOperations.add(key, (V) "c", 0).as(StepVerifier::create).expectNext(true).verifyComplete();
zSetOperations.add(key, (V) "d", 0).as(StepVerifier::create).expectNext(true).verifyComplete();
zSetOperations.add(key, (V) "e", 0).as(StepVerifier::create).expectNext(true).verifyComplete();
zSetOperations.add(key, (V) "f", 0).as(StepVerifier::create).expectNext(true).verifyComplete();
zSetOperations.add(key, (V) "g", 0).as(StepVerifier::create).expectNext(true).verifyComplete();
zSetOperations.lexCount(key, Range.unbounded()).as(StepVerifier::create).expectNext(7L).verifyComplete();
zSetOperations.lexCount(key, Range.leftOpen("b", "f")).as(StepVerifier::create).expectNext(4L).verifyComplete();
zSetOperations.lexCount(key, Range.rightOpen("b", "f")).as(StepVerifier::create).expectNext(4L).verifyComplete();
}
@Test // DATAREDIS-602
public void size() {
@@ -695,31 +715,4 @@ public class DefaultReactiveZSetOperationsIntegrationTests<K, V> {
.verifyComplete();
}
@Test // DATAREDIS-729
public void lexCount() {
assumeTrue(serializer instanceof StringRedisSerializer);
K key = keyFactory.instance();
zSetOperations.add(key, (V) "a", 0).as(StepVerifier::create).expectNext(true).verifyComplete();
zSetOperations.add(key, (V) "b", 0).as(StepVerifier::create).expectNext(true).verifyComplete();
zSetOperations.add(key, (V) "c", 0).as(StepVerifier::create).expectNext(true).verifyComplete();
zSetOperations.add(key, (V) "d", 0).as(StepVerifier::create).expectNext(true).verifyComplete();
zSetOperations.add(key, (V) "e", 0).as(StepVerifier::create).expectNext(true).verifyComplete();
zSetOperations.add(key, (V) "f", 0).as(StepVerifier::create).expectNext(true).verifyComplete();
zSetOperations.add(key, (V) "g", 0).as(StepVerifier::create).expectNext(true).verifyComplete();
zSetOperations.lexCount(key, Range.unbounded()).as(StepVerifier::create)
.expectNext(7L)
.verifyComplete();
zSetOperations.lexCount(key, Range.leftOpen("b", "f")).as(StepVerifier::create)
.expectNext(4L)
.verifyComplete();
zSetOperations.lexCount(key, Range.rightOpen("b", "f")).as(StepVerifier::create)
.expectNext(4L)
.verifyComplete();
}
}

View File

@@ -117,6 +117,42 @@ public class DefaultZSetOperationsTests<K, V> {
assertThat(zSetOps.count(key1, 2.7, 5.7)).isEqualTo(Long.valueOf(1));
}
@Test // DATAREDIS-729
public void testLexCountUnbounded() {
assumeThat(valueFactory).isOfAnyClassIn(DoubleObjectFactory.class, DoubleAsStringObjectFactory.class,
LongAsStringObjectFactory.class, LongObjectFactory.class);
K key = keyFactory.instance();
V value1 = valueFactory.instance();
V value2 = valueFactory.instance();
V value3 = valueFactory.instance();
zSetOps.add(key, value1, 0);
zSetOps.add(key, value2, 0);
zSetOps.add(key, value3, 0);
assertThat(zSetOps.lexCount(key, RedisZSetCommands.Range.unbounded())).isEqualTo(3);
}
@Test // DATAREDIS-729
public void testLexCountBounded() {
assumeThat(valueFactory).isOfAnyClassIn(DoubleObjectFactory.class, DoubleAsStringObjectFactory.class,
LongAsStringObjectFactory.class, LongObjectFactory.class);
K key = keyFactory.instance();
V value1 = valueFactory.instance();
V value2 = valueFactory.instance();
V value3 = valueFactory.instance();
zSetOps.add(key, value1, 0);
zSetOps.add(key, value2, 0);
zSetOps.add(key, value3, 0);
assertThat(zSetOps.lexCount(key, RedisZSetCommands.Range.range().gt(value1))).isEqualTo(2);
}
@Test
public void testIncrementScore() {
@@ -461,39 +497,4 @@ public class DefaultZSetOperationsTests<K, V> {
assertThat(zSetOps.score(key1, value1)).isCloseTo(6.0, offset(0.1));
}
@Test // DATAREDIS-729
public void testLexCountUnbounded() {
assumeThat(valueFactory).isOfAnyClassIn(DoubleObjectFactory.class, DoubleAsStringObjectFactory.class,
LongAsStringObjectFactory.class, LongObjectFactory.class);
K key = keyFactory.instance();
V value1 = valueFactory.instance();
V value2 = valueFactory.instance();
V value3 = valueFactory.instance();
zSetOps.add(key, value1, 0);
zSetOps.add(key, value2, 0);
zSetOps.add(key, value3, 0);
assertThat(zSetOps.lexCount(key, RedisZSetCommands.Range.unbounded())).isEqualTo(3);
}
@Test // DATAREDIS-729
public void testLexCountBounded() {
assumeThat(valueFactory).isOfAnyClassIn(DoubleObjectFactory.class, DoubleAsStringObjectFactory.class,
LongAsStringObjectFactory.class, LongObjectFactory.class);
K key = keyFactory.instance();
V value1 = valueFactory.instance();
V value2 = valueFactory.instance();
V value3 = valueFactory.instance();
zSetOps.add(key, value1, 0);
zSetOps.add(key, value2, 0);
zSetOps.add(key, value3, 0);
assertThat(zSetOps.lexCount(key, RedisZSetCommands.Range.range().gt(value1))).isEqualTo(2);
}
}

View File

@@ -190,6 +190,40 @@ public abstract class AbstractRedisZSetTest<T> extends AbstractRedisCollectionTe
assertThat(zSet.rank(getT())).isNull();
}
@Test // DATAREDIS-729
public void testLexCountUnbounded() {
assumeThat(factory).isOfAnyClassIn(DoubleObjectFactory.class, DoubleAsStringObjectFactory.class,
LongAsStringObjectFactory.class, LongObjectFactory.class);
T t1 = getT();
T t2 = getT();
T t3 = getT();
zSet.add(t1, 1);
zSet.add(t2, 1);
zSet.add(t3, 1);
assertThat(zSet.lexCount(RedisZSetCommands.Range.unbounded())).isEqualTo(Long.valueOf(3));
}
@Test // DATAREDIS-729
public void testLexCountBounded() {
assumeThat(factory).isOfAnyClassIn(DoubleObjectFactory.class, DoubleAsStringObjectFactory.class,
LongAsStringObjectFactory.class, LongObjectFactory.class);
T t1 = getT();
T t2 = getT();
T t3 = getT();
zSet.add(t1, 1);
zSet.add(t2, 1);
zSet.add(t3, 1);
assertThat(zSet.lexCount(RedisZSetCommands.Range.range().gt(t1))).isEqualTo(Long.valueOf(2));
}
@Test
public void testScore() {
T t1 = getT();
@@ -392,7 +426,7 @@ public abstract class AbstractRedisZSetTest<T> extends AbstractRedisCollectionTe
@Test // DATAREDIS-407
public void testRangeByLexBoundedWithLimit() {
assumeThat(factory).isOfAnyClassIn(DoubleObjectFactory.class, DoubleAsStringObjectFactory.class,
assumeThat(factory).isOfAnyClassIn(DoubleObjectFactory.class,
LongAsStringObjectFactory.class, LongObjectFactory.class);
T t1 = getT();
@@ -661,38 +695,4 @@ public abstract class AbstractRedisZSetTest<T> extends AbstractRedisCollectionTe
cursor.close();
}
@Test // DATAREDIS-729
public void testLexCountUnbounded() {
assumeThat(factory).isOfAnyClassIn(DoubleObjectFactory.class, DoubleAsStringObjectFactory.class,
LongAsStringObjectFactory.class, LongObjectFactory.class);
T t1 = getT();
T t2 = getT();
T t3 = getT();
zSet.add(t1, 1);
zSet.add(t2, 1);
zSet.add(t3, 1);
assertThat(zSet.lexCount(RedisZSetCommands.Range.unbounded())).isEqualTo(Long.valueOf(3));
}
@Test // DATAREDIS-729
public void testLexCountBounded() {
assumeThat(factory).isOfAnyClassIn(DoubleObjectFactory.class, DoubleAsStringObjectFactory.class,
LongAsStringObjectFactory.class, LongObjectFactory.class);
T t1 = getT();
T t2 = getT();
T t3 = getT();
zSet.add(t1, 1);
zSet.add(t2, 1);
zSet.add(t3, 1);
assertThat(zSet.lexCount(RedisZSetCommands.Range.range().gt(t1))).isEqualTo(Long.valueOf(2));
}
}