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 private Iterator<Integer> createIterator() {
36 final List<Integer> list = new ArrayList<>();
37 list.add(Integer.valueOf(0));
38 list.add(Integer.valueOf(1));
39 list.add(Integer.valueOf(2));
40 return list.iterator();
41 }
42
43 @Test
44 @SuppressWarnings("unused")
45 public void testIterator() {
46 final Iterator<Integer> iter = createIterator();
47 final Iterable<Number> iterable = new IteratorIterable<>(iter);
48
49
50 verifyIteration(iterable);
51
52
53 for (final Number actual : iterable) {
54 fail("should not be able to iterate twice");
55 }
56 }
57
58 @Test
59 public void testMultipleUserIterator() {
60 final Iterator<Integer> iter = createIterator();
61
62 final Iterable<Number> iterable = new IteratorIterable<>(iter, true);
63
64
65 verifyIteration(iterable);
66
67
68 verifyIteration(iterable);
69 }
70
71 private void verifyIteration(final Iterable<Number> iterable) {
72 int expected = 0;
73 for (final Number actual : iterable) {
74 assertEquals(expected, actual.intValue());
75 ++expected;
76 }
77 assertTrue(expected > 0);
78 }
79 }
80