001package org.jadira.bindings.core.utils.lang; 002 003import static org.junit.Assert.assertEquals; 004import static org.junit.Assert.assertFalse; 005import static org.junit.Assert.assertTrue; 006import static org.junit.Assert.fail; 007 008import java.util.Iterator; 009import java.util.NoSuchElementException; 010import java.util.Vector; 011 012import org.junit.BeforeClass; 013import org.junit.Test; 014 015public class IterableEnumerationTest { 016 017 private static final Vector<String> ELEMENTS = new Vector<String>(); 018 019 @BeforeClass 020 public static void setup() { 021 ELEMENTS.add("FOO"); 022 ELEMENTS.add("BAR"); 023 ELEMENTS.add("THE_END"); 024 } 025 026 @Test 027 public void testIterableEnumeration() { 028 029 Iterable<String> testIterable = new IterableEnumeration<String>(ELEMENTS.elements()); 030 Iterator<String> myIter = testIterable.iterator(); 031 032 testValues(myIter); 033 034 testIterable = IterableEnumeration.wrapEnumeration(ELEMENTS.elements()); 035 myIter = testIterable.iterator(); 036 037 testValues(myIter); 038 039 } 040 041 private void testValues(Iterator<String> myIter) { 042 043 assertTrue(myIter.hasNext()); 044 assertEquals("FOO", myIter.next()); 045 assertTrue(myIter.hasNext()); 046 assertEquals("BAR", myIter.next()); 047 assertTrue(myIter.hasNext()); 048 assertEquals("THE_END", myIter.next()); 049 assertFalse(myIter.hasNext()); 050 try { 051 myIter.next(); 052 fail("Should throw NoSuchElementException"); 053 } catch (NoSuchElementException e) { 054 // expected 055 } 056 } 057}