package org.datanucleus.store.query;
import junit.framework.TestCase;
import junit.framework.Assert;
import java.util.List;
import java.util.ArrayList;
import java.util.Iterator;
import java.util.ListIterator;
/**
* Test case for AbstractQueryResult
*/
public class AbstractQueryResultTest extends TestCase
{
List list = new AbstractQueryResultImpl(null);
Integer i10 = new Integer(10);
Integer i20 = new Integer(20);
Integer i30 = new Integer(30);
public AbstractQueryResultTest(String name)
{
super(name);
}
public void setUp()
{
list.add(i10);
list.add(i20);
list.add(i30);
}
public void testSubList()
{
Assert.assertEquals(3, list.size());
Assert.assertEquals(1, list.subList(1, 2).size());
Assert.assertEquals(3, list.subList(0, 3).size());
List sList = list.subList(1, 2);
Object o = sList.get(0);
Assert.assertEquals(i20, o);
try
{
sList.get(1);// must throw exception
Assert.assertTrue(false);// never executed
}
catch (IndexOutOfBoundsException e)
{
}
sList = list.subList(0, 3);
o = sList.get(2);
Assert.assertEquals(i30, o);
}
public void testToArray()
{
Object[] array = list.toArray();
Assert.assertEquals(3, array.length);
Assert.assertEquals(i10, array[0]);
Assert.assertEquals(i20, array[1]);
Assert.assertEquals(i30, array[2]);
}
public void testToArray2()
{
Object[] array = list.toArray(new Object[4]);
Assert.assertEquals(4, array.length);
Assert.assertEquals(i10, array[0]);
Assert.assertEquals(i20, array[1]);
Assert.assertEquals(i30, array[2]);
Assert.assertEquals(null, array[3]);
}
/**
* test implementation
*/
public static class AbstractQueryResultImpl extends AbstractQueryResult
{
private static final long serialVersionUID = 1765660364615061258L;
private ArrayList list = new ArrayList();
public AbstractQueryResultImpl(Query query)
{
super(query);
}
protected void closeResults()
{
}
protected void closingConnection()
{
}
public boolean add(Object o)
{
return list.add(o);
}
public boolean equals(Object o)
{
return this == o;
}
public Object get(int index)
{
return list.get(index);
}
public Iterator iterator()
{
return list.iterator();
}
public ListIterator listIterator()
{
return list.listIterator();
}
public int size()
{
return list.size();
}
}
}