Skip to content

Commit e679152

Browse files
anuraggoyal1KevinGilmore
authored andcommitted
[BAEL-2471] Guide to Apache Commons MultiValuedMap (eugenp#6155)
* [BAEL-2471] Guide to Apache Commons MultiValuedMap * Update MultiValuedMapUnitTest.java * added empty lines
1 parent 4845bd8 commit e679152

File tree

1 file changed

+204
-0
lines changed

1 file changed

+204
-0
lines changed
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,204 @@
1+
package com.baeldung.java.map;
2+
3+
import static org.assertj.core.api.Assertions.assertThat;
4+
import static org.junit.Assert.assertTrue;
5+
import static org.junit.jupiter.api.Assertions.assertEquals;
6+
import static org.junit.jupiter.api.Assertions.assertFalse;
7+
8+
import java.util.Arrays;
9+
import java.util.Collection;
10+
import java.util.Map;
11+
import java.util.Map.Entry;
12+
13+
import org.apache.commons.collections4.MultiMapUtils;
14+
import org.apache.commons.collections4.MultiValuedMap;
15+
import org.apache.commons.collections4.multimap.ArrayListValuedHashMap;
16+
import org.apache.commons.collections4.multimap.HashSetValuedHashMap;
17+
import org.junit.Test;
18+
19+
public class MultiValuedMapUnitTest {
20+
21+
@Test
22+
public void givenMultiValuesMap_whenPuttingMultipleValuesUsingPutMethod_thenReturningAllValues() {
23+
MultiValuedMap<String, String> map = new ArrayListValuedHashMap<>();
24+
25+
map.put("key", "value1");
26+
map.put("key", "value2");
27+
map.put("key", "value2");
28+
29+
assertThat((Collection<String>) map.get("key")).containsExactly("value1", "value2", "value2");
30+
}
31+
32+
@Test
33+
public void givenMultiValuesMap_whenPuttingMultipleValuesUsingPutAllMethod_thenReturningAllValues() {
34+
MultiValuedMap<String, String> map = new ArrayListValuedHashMap<>();
35+
36+
map.putAll("key", Arrays.asList("value1", "value2", "value2"));
37+
38+
assertThat((Collection<String>) map.get("key")).containsExactly("value1", "value2", "value2");
39+
}
40+
41+
@Test
42+
public void givenMultiValuesMap_whenGettingValueUsingGetMethod_thenReturningValue() {
43+
MultiValuedMap<String, String> map = new ArrayListValuedHashMap<>();
44+
map.put("key", "value");
45+
46+
assertThat((Collection<String>) map.get("key")).containsExactly("value");
47+
}
48+
49+
@Test
50+
public void givenMultiValuesMap_whenUsingEntriesMethod_thenReturningMappings() {
51+
MultiValuedMap<String, String> map = new ArrayListValuedHashMap<>();
52+
map.put("key", "value1");
53+
map.put("key", "value2");
54+
55+
Collection<Entry<String, String>> entries = (Collection<Entry<String, String>>) map.entries();
56+
57+
for(Map.Entry<String,String> entry : entries) {
58+
assertThat(entry.getKey()).contains("key");
59+
assertTrue(entry.getValue().equals("value1") || entry.getValue().equals("value2") );
60+
}
61+
}
62+
63+
@Test
64+
public void givenMultiValuesMap_whenUsingKeysMethod_thenReturningAllKeys() {
65+
MultiValuedMap<String, String> map = new ArrayListValuedHashMap<>();
66+
map.put("key", "value");
67+
map.put("key1", "value1");
68+
map.put("key2", "value2");
69+
70+
assertThat(((Collection<String>) map.keys())).contains("key", "key1", "key2");
71+
}
72+
73+
@Test
74+
public void givenMultiValuesMap_whenUsingKeySetMethod_thenReturningAllKeys() {
75+
MultiValuedMap<String, String> map = new ArrayListValuedHashMap<>();
76+
map.put("key", "value");
77+
map.put("key1", "value1");
78+
map.put("key2", "value2");
79+
80+
assertThat((Collection<String>) map.keySet()).contains("key", "key1", "key2");
81+
}
82+
83+
@Test
84+
public void givenMultiValuesMap_whenUsingValuesMethod_thenReturningAllValues() {
85+
MultiValuedMap<String, String> map = new ArrayListValuedHashMap<>();
86+
map.put("key", "value");
87+
map.put("key1", "value1");
88+
map.put("key2", "value2");
89+
90+
assertThat(((Collection<String>) map.values())).contains("value", "value1", "value2");
91+
}
92+
93+
@Test
94+
public void givenMultiValuesMap_whenUsingRemoveMethod_thenReturningUpdatedMap() {
95+
MultiValuedMap<String, String> map = new ArrayListValuedHashMap<>();
96+
map.put("key", "value");
97+
map.put("key1", "value1");
98+
map.put("key2", "value2");
99+
assertThat(((Collection<String>) map.values())).contains("value", "value1", "value2");
100+
101+
map.remove("key");
102+
103+
assertThat(((Collection<String>) map.values())).contains("value1", "value2");
104+
}
105+
106+
@Test
107+
public void givenMultiValuesMap_whenUsingRemoveMappingMethod_thenReturningUpdatedMapAfterMappingRemoved() {
108+
MultiValuedMap<String, String> map = new ArrayListValuedHashMap<>();
109+
map.put("key", "value");
110+
map.put("key1", "value1");
111+
map.put("key2", "value2");
112+
assertThat(((Collection<String>) map.values())).contains("value", "value1", "value2");
113+
114+
map.removeMapping("key", "value");
115+
116+
assertThat(((Collection<String>) map.values())).contains("value1", "value2");
117+
}
118+
119+
@Test
120+
public void givenMultiValuesMap_whenUsingClearMethod_thenReturningEmptyMap() {
121+
MultiValuedMap<String, String> map = new ArrayListValuedHashMap<>();
122+
map.put("key", "value");
123+
map.put("key1", "value1");
124+
map.put("key2", "value2");
125+
assertThat(((Collection<String>) map.values())).contains("value", "value1", "value2");
126+
127+
map.clear();
128+
129+
assertTrue(map.isEmpty());
130+
}
131+
132+
@Test
133+
public void givenMultiValuesMap_whenUsingContainsKeyMethod_thenReturningTrue() {
134+
MultiValuedMap<String, String> map = new ArrayListValuedHashMap<>();
135+
map.put("key", "value");
136+
map.put("key1", "value1");
137+
map.put("key2", "value2");
138+
139+
assertTrue(map.containsKey("key"));
140+
}
141+
142+
@Test
143+
public void givenMultiValuesMap_whenUsingContainsValueMethod_thenReturningTrue() {
144+
MultiValuedMap<String, String> map = new ArrayListValuedHashMap<>();
145+
map.put("key", "value");
146+
map.put("key1", "value1");
147+
map.put("key2", "value2");
148+
149+
assertTrue(map.containsValue("value"));
150+
}
151+
152+
@Test
153+
public void givenMultiValuesMap_whenUsingIsEmptyMethod_thenReturningFalse() {
154+
MultiValuedMap<String, String> map = new ArrayListValuedHashMap<>();
155+
map.put("key", "value");
156+
map.put("key1", "value1");
157+
map.put("key2", "value2");
158+
159+
assertFalse(map.isEmpty());
160+
}
161+
162+
@Test
163+
public void givenMultiValuesMap_whenUsingSizeMethod_thenReturningElementCount() {
164+
MultiValuedMap<String, String> map = new ArrayListValuedHashMap<>();
165+
map.put("key", "value");
166+
map.put("key1", "value1");
167+
map.put("key2", "value2");
168+
169+
assertEquals(3, map.size());
170+
}
171+
172+
@Test
173+
public void givenArrayListValuedHashMap_whenPuttingDoubleValues_thenReturningAllValues() {
174+
MultiValuedMap<String, String> map = new ArrayListValuedHashMap<>();
175+
176+
map.put("key", "value1");
177+
map.put("key", "value2");
178+
map.put("key", "value2");
179+
180+
assertThat((Collection<String>) map.get("key")).containsExactly("value1", "value2", "value2");
181+
}
182+
183+
@Test
184+
public void givenHashSetValuedHashMap_whenPuttingTwiceTheSame_thenReturningOneValue() {
185+
MultiValuedMap<String, String> map = new HashSetValuedHashMap<>();
186+
187+
map.put("key1", "value1");
188+
map.put("key1", "value1");
189+
190+
assertThat((Collection<String>) map.get("key1")).containsExactly("value1");
191+
}
192+
193+
@Test(expected = UnsupportedOperationException.class)
194+
public void givenUnmodifiableMultiValuedMap_whenInserting_thenThrowingException() {
195+
MultiValuedMap<String, String> map = new ArrayListValuedHashMap<>();
196+
map.put("key", "value1");
197+
map.put("key", "value2");
198+
MultiValuedMap<String, String> immutableMap = MultiMapUtils.unmodifiableMultiValuedMap(map);
199+
200+
immutableMap.put("key", "value3");
201+
}
202+
203+
204+
}

0 commit comments

Comments
 (0)