1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17 package org.apache.commons.collections4.keyvalue;
18
19 import java.util.Map;
20
21 import org.apache.commons.collections4.KeyValue;
22 import org.junit.Test;
23
24 import static org.junit.Assert.*;
25
26
27
28
29
30
31 public class DefaultMapEntryTest<K, V> extends AbstractMapEntryTest<K, V> {
32
33
34
35
36
37
38
39 @Override
40 public Map.Entry<K, V> makeMapEntry() {
41 return new DefaultMapEntry<>(null, null);
42 }
43
44
45
46
47
48
49 @Override
50 public Map.Entry<K, V> makeMapEntry(final K key, final V value) {
51 return new DefaultMapEntry<>(key, value);
52 }
53
54
55
56
57
58
59 @Override
60 @SuppressWarnings("unchecked")
61 @Test
62 public void testConstructors() {
63
64 final Map.Entry<K, V> entry = new DefaultMapEntry<>((K) key, (V) value);
65 assertSame(key, entry.getKey());
66 assertSame(value, entry.getValue());
67
68
69 final KeyValue<K, V> pair = new DefaultKeyValue<>((K) key, (V) value);
70 assertSame(key, pair.getKey());
71 assertSame(value, pair.getValue());
72
73
74 final Map.Entry<K, V> entry2 = new DefaultMapEntry<>(entry);
75 assertSame(key, entry2.getKey());
76 assertSame(value, entry2.getValue());
77
78
79 entry.setValue(null);
80 assertSame(value, entry2.getValue());
81 }
82
83 @Override
84 @SuppressWarnings("unchecked")
85 public void testSelfReferenceHandling() {
86 final Map.Entry<K, V> entry = makeMapEntry();
87
88 try {
89 entry.setValue((V) entry);
90 assertSame(entry, entry.getValue());
91
92 } catch (final Exception e) {
93 fail("This Map.Entry implementation supports value self-reference.");
94 }
95 }
96
97 }