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.HashMap;
25 import java.util.Map;
26
27 import org.apache.commons.collections4.IterableMap;
28 import org.apache.commons.collections4.MapIterator;
29 import org.apache.commons.collections4.Unmodifiable;
30 import org.apache.commons.collections4.bidimap.DualHashBidiMap;
31 import org.junit.jupiter.api.Test;
32
33
34
35
36
37
38
39 public class UnmodifiableMapIteratorTest<K, V> extends AbstractMapIteratorTest<K, V> {
40
41 @Override
42 @SuppressWarnings("unchecked")
43 public Map<K, V> getConfirmedMap() {
44 final Map<K, V> testMap = new HashMap<>();
45 testMap.put((K) "A", (V) "a");
46 testMap.put((K) "B", (V) "b");
47 testMap.put((K) "C", (V) "c");
48 return testMap;
49 }
50
51 @Override
52 @SuppressWarnings("unchecked")
53 public IterableMap<K, V> getMap() {
54 final IterableMap<K, V> testMap = new DualHashBidiMap<>();
55 testMap.put((K) "A", (V) "a");
56 testMap.put((K) "B", (V) "b");
57 testMap.put((K) "C", (V) "c");
58 return testMap;
59 }
60
61 @Override
62 public MapIterator<K, V> makeEmptyIterator() {
63 return UnmodifiableMapIterator.unmodifiableMapIterator(new DualHashBidiMap<K, V>().mapIterator());
64 }
65
66 @Override
67 public MapIterator<K, V> makeObject() {
68 return UnmodifiableMapIterator.unmodifiableMapIterator(getMap().mapIterator());
69 }
70
71 @Override
72 public boolean supportsRemove() {
73 return false;
74 }
75
76 @Override
77 public boolean supportsSetValue() {
78 return false;
79 }
80
81 @Test
82 public void testDecorateFactory() {
83 MapIterator<K, V> it = makeObject();
84 assertSame(it, UnmodifiableMapIterator.unmodifiableMapIterator(it));
85
86 it = getMap().mapIterator();
87 assertNotSame(it, UnmodifiableMapIterator.unmodifiableMapIterator(it));
88
89 assertThrows(NullPointerException.class, () -> UnmodifiableMapIterator.unmodifiableMapIterator(null));
90 }
91
92 @Test
93 public void testMapIterator() {
94 assertTrue(makeEmptyIterator() instanceof Unmodifiable);
95 }
96
97 }