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.assertNotSame;
20 import static org.junit.jupiter.api.Assertions.assertSame;
21 import static org.junit.jupiter.api.Assertions.assertThrows;
22 import static org.junit.jupiter.api.Assertions.assertTrue;
23
24 import java.util.ArrayList;
25 import java.util.Arrays;
26 import java.util.Collections;
27 import java.util.Iterator;
28 import java.util.List;
29
30 import org.apache.commons.collections4.Unmodifiable;
31 import org.junit.jupiter.api.BeforeEach;
32 import org.junit.jupiter.api.Test;
33
34
35
36
37
38
39 public class UnmodifiableIteratorTest<E> extends AbstractIteratorTest<E> {
40
41 protected String[] testArray = { "One", "Two", "Three" };
42 protected List<E> testList;
43
44 @Override
45 public Iterator<E> makeEmptyIterator() {
46 return UnmodifiableIterator.unmodifiableIterator(Collections.<E>emptyList().iterator());
47 }
48
49 @Override
50 public Iterator<E> makeObject() {
51 return UnmodifiableIterator.unmodifiableIterator(testList.iterator());
52 }
53
54 @SuppressWarnings("unchecked")
55 @BeforeEach
56 protected void setUp() throws Exception {
57 testList = new ArrayList<>(Arrays.asList((E[]) testArray));
58 }
59
60 @Override
61 public boolean supportsRemove() {
62 return false;
63 }
64
65 @Test
66 public void testDecorateFactory() {
67 Iterator<E> it = makeObject();
68 assertSame(it, UnmodifiableIterator.unmodifiableIterator(it));
69
70 it = testList.iterator();
71 assertNotSame(it, UnmodifiableIterator.unmodifiableIterator(it));
72
73 assertThrows(NullPointerException.class, () -> UnmodifiableIterator.unmodifiableIterator(null));
74 }
75
76 @Test
77 public void testIterator() {
78 assertTrue(makeEmptyIterator() instanceof Unmodifiable);
79 }
80
81 }