Fixed - addLastIfExists() and addLastIfExists() methods of RDeque don't work. #3519

pull/3941/head
Nikita Koksharov 4 years ago
parent 0899f527fe
commit 12b49cdabf

@ -15,10 +15,7 @@
*/
package org.redisson;
import java.util.Collections;
import java.util.Iterator;
import java.util.List;
import java.util.NoSuchElementException;
import java.util.*;
import org.redisson.api.RDeque;
import org.redisson.api.RFuture;
@ -64,12 +61,18 @@ public class RedissonDeque<V> extends RedissonQueue<V> implements RDeque<V> {
@Override
public RFuture<Integer> addFirstIfExistsAsync(V... elements) {
return commandExecutor.writeAsync(getName(), codec, RedisCommands.LPUSHX, getName(), encode(elements));
List<Object> args = new ArrayList<>(elements.length + 1);
args.add(getName());
encode(args, Arrays.asList(elements));
return commandExecutor.writeAsync(getName(), codec, RedisCommands.LPUSHX, args.toArray());
}
@Override
public RFuture<Integer> addLastIfExistsAsync(V... elements) {
return commandExecutor.writeAsync(getName(), codec, RedisCommands.RPUSHX, getName(), encode(elements));
List<Object> args = new ArrayList<>(elements.length + 1);
args.add(getName());
encode(args, Arrays.asList(elements));
return commandExecutor.writeAsync(getName(), codec, RedisCommands.RPUSHX, args.toArray());
}
@Override

@ -13,6 +13,18 @@ import static org.assertj.core.api.Assertions.assertThat;
public class RedissonDequeTest extends BaseTest {
@Test
public void testAddIfExists() {
RDeque<Integer> deque1 = redisson.getDeque("deque1");
deque1.add(1);
deque1.add(2);
deque1.add(3);
deque1.addFirstIfExists(4, 5);
assertThat(deque1).containsExactly(5, 4, 1, 2, 3);
}
@Test
public void testMove() {
RDeque<Integer> deque1 = redisson.getDeque("deque1");

Loading…
Cancel
Save