public void testSingleIterator() {
   CompositeIterator it = new CompositeIterator();
   it.add(Arrays.asList(new String[] {"0", "1"}).iterator());
   for (int i = 0; i < 2; i++) {
     assertTrue(it.hasNext());
     assertEquals(String.valueOf(i), it.next());
   }
   assertFalse(it.hasNext());
   try {
     it.next();
     fail();
   } catch (NoSuchElementException e) {
     // expected
   }
 }
 public void testNoIterators() {
   CompositeIterator it = new CompositeIterator();
   assertFalse(it.hasNext());
   try {
     it.next();
     fail();
   } catch (NoSuchElementException e) {
     // expected
   }
 }
 public void testInUse() {
   List list = Arrays.asList(new String[] {"0", "1"});
   CompositeIterator it = new CompositeIterator();
   it.add(list.iterator());
   it.hasNext();
   try {
     it.add(list.iterator());
     fail();
   } catch (IllegalStateException e) {
     // expected
   }
   it = new CompositeIterator();
   it.add(list.iterator());
   it.next();
   try {
     it.add(list.iterator());
     fail();
   } catch (IllegalStateException e) {
     // expected
   }
 }