DATAKV-12
+ add integration tests + fix minor connection bug
This commit is contained in:
@@ -670,7 +670,7 @@ public class JedisConnection implements RedisConnection {
|
||||
transaction.rpop(key);
|
||||
return null;
|
||||
}
|
||||
return jedis.lpop(key);
|
||||
return jedis.rpop(key);
|
||||
} catch (Exception ex) {
|
||||
throw convertJedisAccessException(ex);
|
||||
}
|
||||
|
||||
@@ -16,6 +16,7 @@
|
||||
package org.springframework.data.keyvalue.redis.util;
|
||||
|
||||
import java.util.Collection;
|
||||
import java.util.Collections;
|
||||
import java.util.Iterator;
|
||||
import java.util.List;
|
||||
import java.util.ListIterator;
|
||||
@@ -45,7 +46,7 @@ public class DefaultRedisList<E> extends AbstractRedisCollection<E> implements R
|
||||
|
||||
private volatile long defaultWait = 0;
|
||||
|
||||
private class DefaultRedisListIterator<E> extends RedisIterator<E> {
|
||||
private class DefaultRedisListIterator extends RedisIterator<E> {
|
||||
|
||||
public DefaultRedisListIterator(Iterator<E> delegate) {
|
||||
super(delegate);
|
||||
@@ -122,7 +123,7 @@ public class DefaultRedisList<E> extends AbstractRedisCollection<E> implements R
|
||||
|
||||
@Override
|
||||
public Iterator<E> iterator() {
|
||||
return content().iterator();
|
||||
return new DefaultRedisListIterator(content().iterator());
|
||||
}
|
||||
|
||||
@Override
|
||||
@@ -308,7 +309,9 @@ public class DefaultRedisList<E> extends AbstractRedisCollection<E> implements R
|
||||
|
||||
@Override
|
||||
public Iterator<E> descendingIterator() {
|
||||
throw new UnsupportedOperationException();
|
||||
List<E> content = content();
|
||||
Collections.reverse(content);
|
||||
return new DefaultRedisListIterator(content.iterator());
|
||||
}
|
||||
|
||||
@Override
|
||||
@@ -359,7 +362,7 @@ public class DefaultRedisList<E> extends AbstractRedisCollection<E> implements R
|
||||
|
||||
@Override
|
||||
public E pop() {
|
||||
E e = pollFirst();
|
||||
E e = poll();
|
||||
if (e == null) {
|
||||
throw new NoSuchElementException();
|
||||
}
|
||||
|
||||
@@ -16,8 +16,11 @@
|
||||
package org.springframework.data.keyvalue.redis.util;
|
||||
|
||||
import static org.junit.Assert.*;
|
||||
import static org.junit.matchers.JUnitMatchers.*;
|
||||
|
||||
import java.util.ArrayList;
|
||||
import java.util.Arrays;
|
||||
import java.util.Iterator;
|
||||
import java.util.List;
|
||||
import java.util.NoSuchElementException;
|
||||
|
||||
@@ -151,11 +154,11 @@ public abstract class AbstractRedisListTests<T> extends AbstractRedisCollectionT
|
||||
public void testIndexOfObject() {
|
||||
T t1 = getT();
|
||||
T t2 = getT();
|
||||
|
||||
|
||||
assertEquals(-1, list.indexOf(t1));
|
||||
list.add(t1);
|
||||
assertEquals(0, list.indexOf(t1));
|
||||
|
||||
|
||||
assertEquals(-1, list.indexOf(t2));
|
||||
list.add(t2);
|
||||
assertEquals(1, list.indexOf(t1));
|
||||
@@ -200,6 +203,11 @@ public abstract class AbstractRedisListTests<T> extends AbstractRedisCollectionT
|
||||
}
|
||||
}
|
||||
|
||||
@Test
|
||||
public void testPop() {
|
||||
testPoll();
|
||||
}
|
||||
|
||||
@Test
|
||||
public void testPoll() {
|
||||
assertNull(list.poll());
|
||||
@@ -282,4 +290,209 @@ public abstract class AbstractRedisListTests<T> extends AbstractRedisCollectionT
|
||||
assertEquals(1, cappedList.size());
|
||||
assertEquals(first, cappedList.get(0));
|
||||
}
|
||||
|
||||
@Test
|
||||
public void testAddFirst() {
|
||||
T t1 = getT();
|
||||
T t2 = getT();
|
||||
T t3 = getT();
|
||||
|
||||
list.addFirst(t1);
|
||||
list.addFirst(t2);
|
||||
list.addFirst(t3);
|
||||
|
||||
Iterator<T> iterator = list.iterator();
|
||||
assertEquals(t3, iterator.next());
|
||||
assertEquals(t2, iterator.next());
|
||||
assertEquals(t1, iterator.next());
|
||||
}
|
||||
|
||||
@Test
|
||||
public void testAddLast() {
|
||||
testAdd();
|
||||
}
|
||||
|
||||
@Test
|
||||
public void testDescendingIterator() {
|
||||
T t1 = getT();
|
||||
T t2 = getT();
|
||||
T t3 = getT();
|
||||
|
||||
list.add(t1);
|
||||
list.add(t2);
|
||||
list.add(t3);
|
||||
|
||||
Iterator<T> iterator = list.descendingIterator();
|
||||
assertEquals(t3, iterator.next());
|
||||
assertEquals(t2, iterator.next());
|
||||
assertEquals(t1, iterator.next());
|
||||
|
||||
}
|
||||
|
||||
@Test
|
||||
public void testDrainToCollectionWithMaxElements() {
|
||||
T t1 = getT();
|
||||
T t2 = getT();
|
||||
T t3 = getT();
|
||||
|
||||
list.add(t1);
|
||||
list.add(t2);
|
||||
list.add(t3);
|
||||
|
||||
List<T> c = new ArrayList<T>();
|
||||
|
||||
list.drainTo(c, 2);
|
||||
assertEquals(1, list.size());
|
||||
assertThat(list, hasItem(t3));
|
||||
assertEquals(2, c.size());
|
||||
assertThat(c, hasItems(t1, t2));
|
||||
}
|
||||
|
||||
@Test
|
||||
public void testDrainToCollection() {
|
||||
T t1 = getT();
|
||||
T t2 = getT();
|
||||
T t3 = getT();
|
||||
|
||||
list.add(t1);
|
||||
list.add(t2);
|
||||
list.add(t3);
|
||||
|
||||
List<T> c = new ArrayList<T>();
|
||||
|
||||
list.drainTo(c);
|
||||
assertTrue(list.isEmpty());
|
||||
assertEquals(3, c.size());
|
||||
assertThat(c, hasItems(t1, t2, t3));
|
||||
}
|
||||
|
||||
@Test
|
||||
public void testGetFirst() {
|
||||
T t1 = getT();
|
||||
T t2 = getT();
|
||||
|
||||
list.add(t1);
|
||||
list.add(t2);
|
||||
|
||||
assertEquals(t1, list.getFirst());
|
||||
}
|
||||
|
||||
@Test
|
||||
public void testLast() {
|
||||
testAdd();
|
||||
}
|
||||
|
||||
@Test
|
||||
public void testOfferFirst() {
|
||||
testAddFirst();
|
||||
}
|
||||
|
||||
@Test
|
||||
public void testOfferLast() {
|
||||
testAddLast();
|
||||
}
|
||||
|
||||
@Test
|
||||
public void testPeekFirst() {
|
||||
testPeek();
|
||||
}
|
||||
|
||||
@Test
|
||||
public void testPeekLast() {
|
||||
T t1 = getT();
|
||||
T t2 = getT();
|
||||
|
||||
list.add(t1);
|
||||
list.add(t2);
|
||||
|
||||
assertEquals(t2, list.peekLast());
|
||||
assertEquals(2, list.size());
|
||||
}
|
||||
|
||||
@Test
|
||||
public void testPollFirst() {
|
||||
testPoll();
|
||||
}
|
||||
|
||||
@Test
|
||||
public void testPollLast() {
|
||||
T t1 = getT();
|
||||
T t2 = getT();
|
||||
|
||||
list.add(t1);
|
||||
list.add(t2);
|
||||
|
||||
T last = list.pollLast();
|
||||
assertEquals(t2, last);
|
||||
assertEquals(1, list.size());
|
||||
assertThat(list, hasItem(t1));
|
||||
}
|
||||
|
||||
@Test
|
||||
public void testPut() {
|
||||
testOffer();
|
||||
}
|
||||
|
||||
@Test
|
||||
public void testPutFirst() {
|
||||
testAdd();
|
||||
}
|
||||
|
||||
@Test
|
||||
public void testPutLast() {
|
||||
testPut();
|
||||
}
|
||||
|
||||
@Test
|
||||
public void testRemainingCapacity() {
|
||||
assertEquals(Integer.MAX_VALUE, list.remainingCapacity());
|
||||
}
|
||||
|
||||
@Test
|
||||
public void testRemoveFirst() {
|
||||
testPop();
|
||||
}
|
||||
|
||||
@Test
|
||||
public void testRemoveFirstOccurrence() {
|
||||
testRemove();
|
||||
}
|
||||
|
||||
@Test
|
||||
public void testRemoveLast() {
|
||||
testPollLast();
|
||||
}
|
||||
|
||||
@Test
|
||||
public void testRmoveLastOccurrence() {
|
||||
T t1 = getT();
|
||||
T t2 = getT();
|
||||
|
||||
list.add(t1);
|
||||
list.add(t2);
|
||||
list.add(t1);
|
||||
list.add(t2);
|
||||
|
||||
list.removeLastOccurrence(t2);
|
||||
assertEquals(3, list.size());
|
||||
Iterator<T> iterator = list.iterator();
|
||||
assertEquals(t1, iterator.next());
|
||||
assertEquals(t2, iterator.next());
|
||||
assertEquals(t1, iterator.next());
|
||||
}
|
||||
|
||||
@Test
|
||||
public void testTake() {
|
||||
testPoll();
|
||||
}
|
||||
|
||||
@Test
|
||||
public void testTakeFirst() {
|
||||
testTake();
|
||||
}
|
||||
|
||||
@Test
|
||||
public void testTakeLast() {
|
||||
testPollLast();
|
||||
}
|
||||
}
|
||||
Reference in New Issue
Block a user