Support sRem with multiple values

DATAREDIS-99
This commit is contained in:
Jennifer Hickey
2013-08-01 13:35:14 -07:00
parent d4377b4d17
commit 4020f9d97d
21 changed files with 88 additions and 42 deletions

View File

@@ -1426,7 +1426,19 @@ public abstract class AbstractConnectionIntegrationTests {
actual.add(connection.sRem("myset", "baz"));
actual.add(connection.sMembers("myset"));
verifyResults(
Arrays.asList(new Object[] { 1l, 1l, true, false,
Arrays.asList(new Object[] { 1l, 1l, 1l, 0l,
new HashSet<String>(Collections.singletonList("bar")) }));
}
@Test
public void testSRemMultiple() {
actual.add(connection.sAdd("myset", "foo"));
actual.add(connection.sAdd("myset", "bar"));
actual.add(connection.sAdd("myset", "baz"));
actual.add(connection.sRem("myset", "foo", "nope", "baz"));
actual.add(connection.sMembers("myset"));
verifyResults(
Arrays.asList(new Object[] { 1l, 1l, 1l, 2l,
new HashSet<String>(Collections.singletonList("bar")) }));
}

View File

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

View File

@@ -845,13 +845,13 @@ public class DefaultStringRedisConnectionPipelineTxTests extends
@Test
public void testSRemBytes() {
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.testSRemBytes();
}
@Test
public void testSRem() {
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.testSRem();
}

View File

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

View File

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

View File

@@ -446,4 +446,9 @@ public class JedisConnectionPipelineIntegrationTests extends
public void testSAddMultiple() {
super.testSAddMultiple();
}
@Test(expected=UnsupportedOperationException.class)
public void testSRemMultiple() {
super.testSRemMultiple();
}
}

View File

@@ -382,4 +382,9 @@ public class JedisConnectionTransactionIntegrationTests extends
public void testSAddMultiple() {
super.testSAddMultiple();
}
@Test(expected=UnsupportedOperationException.class)
public void testSRemMultiple() {
super.testSRemMultiple();
}
}

View File

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

View File

@@ -186,4 +186,17 @@ public class DefaultSetOperationsTests<K,V> {
expected.add(v2);
assertThat(setOps.members(key), isEqual(expected));
}
@SuppressWarnings("unchecked")
@Test
public void testRemove() {
K key = keyFactory.instance();
V v1 = valueFactory.instance();
V v2 = valueFactory.instance();
V v3 = valueFactory.instance();
V v4 = valueFactory.instance();
setOps.add(key,v1, v2, v3);
assertEquals(Long.valueOf(2), setOps.remove(key, v1, v2, v4));
assertThat(setOps.members(key), isEqual(Collections.singleton(v3)));
}
}