1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17 package org.apache.commons.collections4.iterators;
18
19 import static org.junit.jupiter.api.Assertions.assertEquals;
20 import static org.junit.jupiter.api.Assertions.assertTrue;
21 import static org.junit.jupiter.api.Assertions.fail;
22
23 import java.util.ArrayList;
24 import java.util.Iterator;
25 import java.util.List;
26
27 import org.apache.commons.collections4.BulkTest;
28 import org.junit.jupiter.api.Test;
29
30
31
32
33 public class IteratorIterableTest extends BulkTest {
34
35 public IteratorIterableTest() {
36 super(IteratorIterableTest.class.getSimpleName());
37 }
38
39 private Iterator<Integer> createIterator() {
40 final List<Integer> list = new ArrayList<>();
41 list.add(Integer.valueOf(0));
42 list.add(Integer.valueOf(1));
43 list.add(Integer.valueOf(2));
44 final Iterator<Integer> iter = list.iterator();
45 return iter;
46 }
47
48 @Test
49 @SuppressWarnings("unused")
50 public void testIterator() {
51 final Iterator<Integer> iter = createIterator();
52 final Iterable<Number> iterable = new IteratorIterable<>(iter);
53
54
55 verifyIteration(iterable);
56
57
58 for (final Number actual : iterable) {
59 fail("should not be able to iterate twice");
60 }
61 }
62
63 @Test
64 public void testMultipleUserIterator() {
65 final Iterator<Integer> iter = createIterator();
66
67 final Iterable<Number> iterable = new IteratorIterable<>(iter, true);
68
69
70 verifyIteration(iterable);
71
72
73 verifyIteration(iterable);
74 }
75
76 private void verifyIteration(final Iterable<Number> iterable) {
77 int expected = 0;
78 for (final Number actual : iterable) {
79 assertEquals(expected, actual.intValue());
80 ++expected;
81 }
82 assertTrue(expected > 0);
83 }
84 }
85