1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18 package org.apache.commons.io;
19
20 import static org.junit.jupiter.api.Assertions.assertEquals;
21 import static org.junit.jupiter.api.Assertions.assertTrue;
22
23 import java.util.Iterator;
24 import java.util.concurrent.atomic.AtomicBoolean;
25 import java.util.concurrent.atomic.AtomicInteger;
26 import java.util.stream.Stream;
27
28 import org.junit.jupiter.api.Test;
29
30
31
32
33 public class StreamIteratorTest {
34
35 @Test
36 public void testForEachRemaining() {
37 final AtomicBoolean closed = new AtomicBoolean();
38 final Iterator<Integer> iter = StreamIterator.iterator(Stream.of(1, 2, 3).onClose(() -> closed.set(true)));
39 final AtomicInteger sum = new AtomicInteger();
40
41 iter.forEachRemaining(sum::addAndGet);
42
43 assertEquals(6, sum.get());
44 assertTrue(closed.get());
45 }
46
47 @Test
48 public void testHasNext() {
49 final AtomicBoolean closed = new AtomicBoolean();
50 final Iterator<Integer> iter = StreamIterator.iterator(Stream.of(1, 2, 3).onClose(() -> closed.set(true)));
51 int sum = 0;
52
53 while (iter.hasNext()) {
54 sum += iter.next();
55 }
56
57 assertEquals(6, sum);
58 assertTrue(closed.get());
59 }
60 }