1
2
3
4
5 package com.jcabi.dynamo.retry;
6
7 import java.util.ArrayList;
8 import java.util.Arrays;
9 import java.util.Iterator;
10 import java.util.List;
11 import org.hamcrest.MatcherAssert;
12 import org.hamcrest.Matchers;
13 import org.junit.jupiter.api.Test;
14
15
16
17
18
19 final class ReIteratorTest {
20
21 @Test
22 void delegatesHasNextToOrigin() {
23 MatcherAssert.assertThat(
24 "does not delegate hasNext to origin iterator",
25 new ReIterator<>(
26 Arrays.asList("f\u00f6o", "b\u00e4r").iterator()
27 ).hasNext(),
28 Matchers.is(true)
29 );
30 }
31
32 @Test
33 void delegatesNextToOrigin() {
34 MatcherAssert.assertThat(
35 "does not delegate next to origin iterator",
36 new ReIterator<>(
37 Arrays.asList("f\u00f6o", "b\u00e4r").iterator()
38 ).next(),
39 Matchers.equalTo("f\u00f6o")
40 );
41 }
42
43 @Test
44 void delegatesRemoveToOrigin() {
45 final List<String> items = new ArrayList<>(
46 Arrays.asList("\u00fcbung")
47 );
48 final Iterator<String> iter = items.iterator();
49 iter.next();
50 new ReIterator<>(iter).remove();
51 MatcherAssert.assertThat(
52 "does not delegate remove to origin iterator",
53 items,
54 Matchers.empty()
55 );
56 }
57
58 @Test
59 void returnsFalseWhenOriginIsExhausted() {
60 final List<String> items = Arrays.asList("\u00f6nly");
61 final Iterator<String> iter = items.iterator();
62 iter.next();
63 MatcherAssert.assertThat(
64 "does not return false when origin is exhausted",
65 new ReIterator<>(iter).hasNext(),
66 Matchers.is(false)
67 );
68 }
69 }