blob: b1fb38e8e8928028639a885e7fac11223e026a7c [file] [log] [blame]
/**
* Licensed to the Apache Software Foundation (ASF) under one or more
* contributor license agreements. See the NOTICE file distributed with
* this work for additional information regarding copyright ownership.
* The ASF licenses this file to You under the Apache License, Version 2.0
* (the "License"); you may not use this file except in compliance with
* the License. You may obtain a copy of the License at
*
* http://www.apache.org/licenses/LICENSE-2.0
*
* Unless required by applicable law or agreed to in writing, software
* distributed under the License is distributed on an "AS IS" BASIS,
* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
* See the License for the specific language governing permissions and
* limitations under the License.
*/
package org.apache.activemq.kaha;
import java.io.IOException;
import java.util.Iterator;
import java.util.LinkedList;
import java.util.List;
import java.util.ListIterator;
import junit.framework.TestCase;
public class ListContainerTest extends TestCase {
protected static final int COUNT = 10;
protected String name = "test";
protected Store store;
protected ListContainer<Object> container;
protected LinkedList<Object> testList;
/*
* Test method for 'org.apache.activemq.kaha.ListContainer.size()'
*/
public void testSize() throws Exception {
container.addAll(testList);
assertEquals(container.size(), testList.size());
}
/*
* Test method for 'org.apache.activemq.kaha.ListContainer.addFirst(Object)'
*/
public void testAddFirst() throws Exception {
container.addAll(testList);
assertEquals(container.size(), testList.size());
String first = "first";
container.addFirst(first);
assertEquals(first, container.get(0));
assertEquals(container.size(), testList.size() + 1);
}
/*
* Test method for 'org.apache.activemq.kaha.ListContainer.addLast(Object)'
*/
public void testAddLast() throws Exception {
container.addAll(testList);
assertEquals(container.size(), testList.size());
String last = "last";
container.addLast(last);
assertEquals(last, container.get(testList.size()));
assertEquals(container.size(), testList.size() + 1);
}
/*
* Test method for 'org.apache.activemq.kaha.ListContainer.removeFirst()'
*/
public void testRemoveFirst() throws Exception {
container.addAll(testList);
assertEquals(container.size(), testList.size());
assertEquals(testList.get(0), container.removeFirst());
assertEquals(container.size(), testList.size() - 1);
for (int i = 1; i < testList.size(); i++) {
assertEquals(testList.get(i), container.get(i - 1));
}
}
/*
* Test method for 'org.apache.activemq.kaha.ListContainer.removeLast()'
*/
public void testRemoveLast() throws Exception {
container.addAll(testList);
assertEquals(container.size(), testList.size());
assertEquals(testList.get(testList.size() - 1), container.removeLast());
assertEquals(container.size(), testList.size() - 1);
for (int i = 0; i < testList.size() - 1; i++) {
assertEquals(testList.get(i), container.get(i));
}
}
/*
* Test method for 'java.util.List.iterator()'
*/
public void testIterator() throws Exception {
container.addAll(testList);
Iterator<Object> j = container.iterator();
for (Iterator<Object> i = testList.iterator(); i.hasNext();) {
assertEquals(i.next(), j.next());
}
for (Iterator<Object> i = container.iterator(); i.hasNext();) {
i.next();
i.remove();
}
assert container.isEmpty();
}
/*
* Test method for 'java.util.List.isEmpty()'
*/
public void testIsEmpty() throws Exception {
assertTrue(container.isEmpty());
}
/*
* Test method for 'java.util.List.contains(Object)'
*/
public void testContains() throws Exception {
container.addAll(testList);
for (Iterator<Object> i = testList.iterator(); i.hasNext();) {
assertTrue(container.contains(i.next()));
}
}
/*
* Test method for 'java.util.List.toArray()'
*/
public void testToArray() throws Exception {
container.addAll(testList);
Object[] a = testList.toArray();
Object[] b = container.toArray();
assertEquals(a.length, b.length);
for (int i = 0; i < a.length; i++) {
assertEquals(a[i], b[i]);
}
}
/*
* Test method for 'java.util.List.remove(Object)'
*/
public void testRemoveObject() throws Exception {
container.addAll(testList);
assertEquals(container.size(), testList.size());
for (int i = 0; i < testList.size(); i++) {
container.remove(testList.get(i));
}
assertTrue(container.isEmpty());
}
/*
* Test method for 'java.util.List.containsAll(Collection<?>)'
*/
public void testContainsAll() throws Exception {
container.addAll(testList);
assertTrue(container.containsAll(testList));
}
/*
* Test method for 'java.util.List.removeAll(Collection<?>)'
*/
public void testRemoveAll() throws Exception {
container.addAll(testList);
assertEquals(testList.size(), container.size());
container.removeAll(testList);
assertTrue(container.isEmpty());
}
/*
* Test method for 'java.util.List.retainAll(Collection<?>)'
*/
public void testRetainAll() throws Exception {
container.addAll(testList);
assertEquals(testList.size(), container.size());
testList.remove(0);
container.retainAll(testList);
assertEquals(testList.size(), container.size());
}
/*
* Test method for 'java.util.List.clear()'
*/
public void testClear() throws Exception {
container.addAll(testList);
assertEquals(testList.size(), container.size());
container.clear();
assertTrue(container.isEmpty());
}
/*
* Test method for 'java.util.List.get(int)'
*/
public void testGet() throws Exception {
container.addAll(testList);
for (int i = 0; i < testList.size(); i++) {
assertEquals(container.get(i), testList.get(i));
}
}
/*
* Test method for 'java.util.List.set(int, E)'
*/
public void testSet() throws Exception {
container.addAll(testList);
}
/*
* Test method for 'java.util.List.add(int, E)'
*/
public void testAddIntE() throws Exception {
container.addAll(testList);
assertTrue(container.equals(testList));
Object testObj = "testObj";
int index = 0;
testList.set(index, testObj);
container.set(index, testObj);
assertTrue(container.equals(testList));
index = testList.size() - 1;
testList.set(index, testObj);
container.set(index, testObj);
assertTrue(container.equals(testList));
}
/*
* Test method for 'java.util.List.remove(int)'
*/
public void testRemoveInt() throws Exception {
container.addAll(testList);
assertTrue(container.equals(testList));
testList.remove(0);
container.remove(0);
assertTrue(container.equals(testList));
int pos = testList.size() - 1;
testList.remove(pos);
container.remove(pos);
assertTrue(container.equals(testList));
}
/*
* Test method for 'java.util.List.indexOf(Object)'
*/
public void testIndexOf() throws Exception {
container.addAll(testList);
assertTrue(container.equals(testList));
for (int i = 0; i < testList.size(); i++) {
Object o = testList.get(i);
assertEquals(i, container.indexOf(o));
}
}
/*
* Test method for 'java.util.List.listIterator()'
*/
public void testListIterator() throws Exception {
container.addAll(testList);
ListIterator<Object> containerIter = container.listIterator();
ListIterator<Object> testIter = testList.listIterator();
assertTrue(testIter.hasNext());
assertTrue(containerIter.hasNext());
while (testIter.hasNext()) {
Object o1 = testIter.next();
Object o2 = containerIter.next();
assertEquals(o1, o2);
testIter.remove();
containerIter.remove();
}
assertTrue(testList.isEmpty());
assertTrue(container.isEmpty());
}
/*
* Test method for 'java.util.List.listIterator(int)'
*/
public void testListIteratorInt() throws Exception {
container.addAll(testList);
int start = testList.size() / 2;
ListIterator<Object> containerIter = container.listIterator(start);
ListIterator<Object> testIter = testList.listIterator(start);
assertTrue(testIter.hasNext());
assertTrue(containerIter.hasNext());
while (testIter.hasNext()) {
Object o1 = testIter.next();
Object o2 = containerIter.next();
assertEquals(o1, o2);
}
}
/*
* Test method for 'java.util.List.subList(int, int)'
*/
public void testSubList() throws Exception {
container.addAll(testList);
int start = testList.size() / 2;
List<Object> l1 = testList.subList(start, testList.size());
List<Object> l2 = container.subList(start, testList.size());
assertEquals(l1.size(), l2.size());
assertEquals(l1, l2);
}
protected Store getStore() throws IOException {
return StoreFactory.open(name, "rw");
}
protected void setUp() throws Exception {
super.setUp();
name = System.getProperty("basedir", ".") + "/target/activemq-data/list-container.db";
StoreFactory.delete(name);
store = getStore();
store.deleteListContainer(name);
container = store.getListContainer(name);
container.load();
testList = new LinkedList<Object>();
for (int i = 0; i < COUNT; i++) {
String value = "value:" + i;
testList.add(value);
}
}
protected void tearDown() throws Exception {
super.tearDown();
if (store != null) {
store.close();
}
assertTrue(StoreFactory.delete(name));
}
}