Support zRem with multiple values

DATAREDIS-99
This commit is contained in:
Jennifer Hickey
2013-08-01 18:29:29 -07:00
parent 44460dfdee
commit c318f24c13
21 changed files with 93 additions and 41 deletions

View File

@@ -1696,10 +1696,23 @@ public abstract class AbstractConnectionIntegrationTests {
actual.add(connection.zRem("myset", "James"));
actual.add(connection.zRange("myset", 0l, -1l));
verifyResults(
Arrays.asList(new Object[] { true, true, true,
Arrays.asList(new Object[] { true, true, 1l,
new LinkedHashSet<String>(Arrays.asList(new String[] { "Bob" })) }));
}
@Test
public void testZRemMultiple() {
actual.add(connection.zAdd("myset", 2, "Bob"));
actual.add(connection.zAdd("myset", 1, "James"));
actual.add(connection.zAdd("myset", 0.5, "Joe"));
actual.add(connection.zAdd("myset", 2.5, "Jen"));
actual.add(connection.zRem("myset", "James", "Jen"));
actual.add(connection.zRange("myset", 0l, -1l));
verifyResults(
Arrays.asList(new Object[] { true, true, true, true, 2l,
new LinkedHashSet<String>(Arrays.asList(new String[] { "Joe", "Bob" })) }));
}
@Test
public void testZRemRangeByRank() {
actual.add(connection.zAdd("myset", 2, "Bob"));

View File

@@ -1203,13 +1203,13 @@ public class DefaultStringRedisConnectionPipelineTests extends DefaultStringRedi
@Test
public void testZRemBytes() {
doReturn(Arrays.asList(new Object[] { true })).when(nativeConnection).closePipeline();
doReturn(Arrays.asList(new Object[] { 1l })).when(nativeConnection).closePipeline();
super.testZRemBytes();
}
@Test
public void testZRem() {
doReturn(Arrays.asList(new Object[] { true })).when(nativeConnection).closePipeline();
doReturn(Arrays.asList(new Object[] { 1l })).when(nativeConnection).closePipeline();
super.testZRem();
}

View File

@@ -1171,13 +1171,13 @@ public class DefaultStringRedisConnectionPipelineTxTests extends
@Test
public void testZRemBytes() {
doReturn(Arrays.asList(new Object[] {Arrays.asList(new Object[] { true })})).when(nativeConnection).closePipeline();
doReturn(Arrays.asList(new Object[] {Arrays.asList(new Object[] { 1l })})).when(nativeConnection).closePipeline();
super.testZRemBytes();
}
@Test
public void testZRem() {
doReturn(Arrays.asList(new Object[] {Arrays.asList(new Object[] { true })})).when(nativeConnection).closePipeline();
doReturn(Arrays.asList(new Object[] {Arrays.asList(new Object[] { 1l })})).when(nativeConnection).closePipeline();
super.testZRem();
}

View File

@@ -1440,16 +1440,16 @@ public class DefaultStringRedisConnectionTests {
@Test
public void testZRemBytes() {
doReturn(true).when(nativeConnection).zRem(fooBytes, barBytes);
doReturn(1l).when(nativeConnection).zRem(fooBytes, barBytes);
actual.add(connection.zRem(fooBytes, barBytes));
verifyResults(Arrays.asList(new Object[] { true }));
verifyResults(Arrays.asList(new Object[] { 1l }));
}
@Test
public void testZRem() {
doReturn(true).when(nativeConnection).zRem(fooBytes, barBytes);
doReturn(1l).when(nativeConnection).zRem(fooBytes, barBytes);
actual.add(connection.zRem(foo, bar));
verifyResults(Arrays.asList(new Object[] { true }));
verifyResults(Arrays.asList(new Object[] { 1l }));
}
@Test

View File

@@ -1170,13 +1170,13 @@ public class DefaultStringRedisConnectionTxTests extends DefaultStringRedisConne
@Test
public void testZRemBytes() {
doReturn(Arrays.asList(new Object[] { true })).when(nativeConnection).exec();
doReturn(Arrays.asList(new Object[] { 1l })).when(nativeConnection).exec();
super.testZRemBytes();
}
@Test
public void testZRem() {
doReturn(Arrays.asList(new Object[] { true })).when(nativeConnection).exec();
doReturn(Arrays.asList(new Object[] { 1l })).when(nativeConnection).exec();
super.testZRem();
}

View File

@@ -456,4 +456,9 @@ public class JedisConnectionPipelineIntegrationTests extends
public void testZAddMultiple() {
super.testZAddMultiple();
}
@Test(expected=UnsupportedOperationException.class)
public void testZRemMultiple() {
super.testZRemMultiple();
}
}

View File

@@ -392,4 +392,9 @@ public class JedisConnectionTransactionIntegrationTests extends
public void testZAddMultiple() {
super.testZAddMultiple();
}
@Test(expected=UnsupportedOperationException.class)
public void testZRemMultiple() {
super.testZRemMultiple();
}
}

View File

@@ -590,6 +590,11 @@ public class JRedisConnectionIntegrationTests extends AbstractConnectionIntegrat
super.testZAddMultiple();
}
@Test(expected=UnsupportedOperationException.class)
public void testZRemMultiple() {
super.testZRemMultiple();
}
// Jredis returns null for rPush and lPush
@Test
public void testLLen() {

View File

@@ -176,4 +176,21 @@ public class DefaultZSetOperationsTests<K,V> {
expected.add(value2);
assertThat(zSetOps.range(key, 0, -1), isEqual(expected));
}
@Test
public void testRemove() {
K key = keyFactory.instance();
V value1 = valueFactory.instance();
V value2 = valueFactory.instance();
V value3 = valueFactory.instance();
Set<TypedTuple<V>> values = new HashSet<TypedTuple<V>>();
values.add(new DefaultTypedTuple<V>(value1, 1.7));
values.add(new DefaultTypedTuple<V>(value2, 3.2));
values.add(new DefaultTypedTuple<V>(value3, 0.8));
assertEquals(Long.valueOf(3), zSetOps.add(key, values));
assertEquals(Long.valueOf(2), zSetOps.remove(key, value1, value3));
Set<V> expected = new LinkedHashSet<V>();
expected.add(value2);
assertThat(zSetOps.range(key, 0, -1), isEqual(expected));
}
}