1+ package com .jnape .palatable .lambda .iterators ;
2+
3+ import org .junit .Rule ;
4+ import org .junit .Test ;
5+ import org .junit .rules .ExpectedException ;
6+
7+ import java .util .NoSuchElementException ;
8+
9+ import static java .util .Arrays .asList ;
10+ import static java .util .Collections .emptyIterator ;
11+ import static org .junit .Assert .assertEquals ;
12+ import static org .junit .Assert .assertFalse ;
13+ import static org .junit .Assert .assertTrue ;
14+
15+ public class PrependingIteratorTest {
16+
17+ @ Rule public ExpectedException thrown = ExpectedException .none ();
18+
19+ @ Test
20+ public void empty () {
21+ PrependingIterator <Integer > iterator = new PrependingIterator <>(0 , emptyIterator ());
22+ assertFalse (iterator .hasNext ());
23+
24+ thrown .expect (NoSuchElementException .class );
25+ iterator .next ();
26+ }
27+
28+ @ Test
29+ public void nonEmpty () {
30+ PrependingIterator <Integer > iterator = new PrependingIterator <>(0 , asList (1 , 2 , 3 ).iterator ());
31+
32+ assertTrue (iterator .hasNext ());
33+ assertEquals ((Integer ) 0 , iterator .next ());
34+ assertTrue (iterator .hasNext ());
35+ assertEquals ((Integer ) 1 , iterator .next ());
36+ assertTrue (iterator .hasNext ());
37+ assertEquals ((Integer ) 0 , iterator .next ());
38+ assertTrue (iterator .hasNext ());
39+ assertEquals ((Integer ) 2 , iterator .next ());
40+ assertTrue (iterator .hasNext ());
41+ assertEquals ((Integer ) 0 , iterator .next ());
42+ assertTrue (iterator .hasNext ());
43+ assertEquals ((Integer ) 3 , iterator .next ());
44+ assertFalse (iterator .hasNext ());
45+ }
46+ }
0 commit comments