/*
* File: MultiIteratorTest.java
* Authors: Justin Basilico
* Company: Sandia National Laboratories
* Project: Cognitive Framework Lite
*
* Copyright March 27, 2006, Sandia Corporation. Under the terms of Contract
* DE-AC04-94AL85000, there is a non-exclusive license for use of this work by
* or on behalf of the U.S. Government. Export of this program may require a
* license from the United States Government. See CopyrightHistory.txt for
* complete details.
*
*
*/
package gov.sandia.cognition.collection;
import java.util.NoSuchElementException;
import junit.framework.*;
import java.util.ArrayList;
/**
* This class implements JUnit tests for the following classes:
*
* MultiIterator
*
* @author Justin Basilico
* @since 1.0
*/
public class MultiIteratorTest
extends TestCase
{
public MultiIteratorTest(
String testName)
{
super(testName);
}
public static Test suite()
{
TestSuite suite = new TestSuite(MultiIteratorTest.class);
return suite;
}
/**
* Test of hasNext method, of class gov.sandia.isrc.util.MultiIterator.
*/
public void testHasNext()
{
String a = "a";
String b = "b";
ArrayList<String> list1 = new ArrayList<String>();
ArrayList<String> list2 = new ArrayList<String>();
list1.add(a);
list2.add(b);
ArrayList<ArrayList<String>> listsList =
new ArrayList<ArrayList<String>>();
listsList.add(list1);
listsList.add(list2);
MultiIterator<String> it = new MultiIterator<String>(listsList);
assertTrue(it.hasNext());
it.next();
assertTrue(it.hasNext());
it.next();
assertFalse(it.hasNext());
// Try it with an empty list.
it = new MultiIterator<String>(new ArrayList<ArrayList<String>>());
assertFalse(it.hasNext());
}
/**
* Test of next method, of class gov.sandia.isrc.util.MultiIterator.
*/
public void testNext()
{
String a = "a";
String b = "b";
ArrayList<String> list1 = new ArrayList<String>();
ArrayList<String> list2 = new ArrayList<String>();
list1.add(a);
list2.add(b);
ArrayList<ArrayList<String>> listsList =
new ArrayList<ArrayList<String>>();
listsList.add(list1);
listsList.add(list2);
MultiIterator<String> it = new MultiIterator<String>(listsList);
assertEquals(a, it.next());
assertEquals(b, it.next());
boolean exceptionThrown = false;
try
{
String bad = it.next();
}
catch ( NoSuchElementException nsee )
{
exceptionThrown = true;
}
finally
{
assertTrue(exceptionThrown);
}
// Try it with an empty list.
it = new MultiIterator<String>(new ArrayList<ArrayList<String>>());
exceptionThrown = false;
try
{
String bad = it.next();
}
catch ( NoSuchElementException nsee )
{
exceptionThrown = true;
}
finally
{
assertTrue(exceptionThrown);
}
}
/**
* Test of remove method, of class gov.sandia.isrc.util.MultiIterator.
*/
public void testRemove()
{
String a = "a";
String b = "b";
ArrayList<String> list1 = new ArrayList<String>();
ArrayList<String> list2 = new ArrayList<String>();
list1.add(a);
list2.add(b);
ArrayList<ArrayList<String>> listslist =
new ArrayList<ArrayList<String>>();
listslist.add(list1);
listslist.add(list2);
MultiIterator<String> it = new MultiIterator<String>(listslist);
it.next();
boolean exceptionThrown = false;
try
{
it.remove();
}
catch ( UnsupportedOperationException uoe )
{
exceptionThrown = true;
}
finally
{
assertTrue(exceptionThrown);
}
}
}