Skip to content

Commit 2b2ab05

Browse files
committed
add failing test for filtered map expectations
1 parent ff4127e commit 2b2ab05

1 file changed

Lines changed: 156 additions & 0 deletions

File tree

Lines changed: 156 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,156 @@
1+
package com.bugsnag.util;
2+
3+
import org.junit.Before;
4+
import org.junit.Test;
5+
6+
import java.util.Collection;
7+
import java.util.Collections;
8+
import java.util.HashMap;
9+
import java.util.Map;
10+
import java.util.Set;
11+
12+
import static org.junit.Assert.assertEquals;
13+
import static org.junit.Assert.assertFalse;
14+
import static org.junit.Assert.assertTrue;
15+
16+
public class FilteredMapTest {
17+
18+
private static final String KEY_UNFILTERED = "unfiltered";
19+
private static final String KEY_FILTERED = "auth";
20+
private static final String KEY_NESTED = "nested";
21+
private static final String VAL_UNFILTERED = "Foo";
22+
private static final String VAL_FILTERED = "Bar";
23+
private static final String PLACEHOLDER_FILTERED = "[FILTERED]";
24+
25+
private Map<String, Object> filteredMap;
26+
27+
@Before
28+
public void setUp() throws Exception {
29+
HashMap<String, Object> map = new HashMap<String, Object>();
30+
map.put(KEY_UNFILTERED, VAL_UNFILTERED);
31+
map.put(KEY_FILTERED, VAL_FILTERED);
32+
33+
HashMap<String, Object> nestedMap = new HashMap<String, Object>();
34+
nestedMap.put(KEY_UNFILTERED, VAL_UNFILTERED);
35+
nestedMap.put(KEY_FILTERED, VAL_FILTERED);
36+
map.put(KEY_NESTED, nestedMap);
37+
38+
this.filteredMap = new FilteredMap(map, Collections.singleton(KEY_FILTERED));
39+
}
40+
41+
@Test
42+
public void testSize() {
43+
assertEquals(3, filteredMap.size());
44+
}
45+
46+
@Test
47+
public void testIsEmpty() throws Exception {
48+
assertFalse(filteredMap.isEmpty());
49+
Map<String, Object> map = Collections.emptyMap();
50+
FilteredMap emptyMap = new FilteredMap(map, Collections.<String>emptyList());
51+
assertTrue(emptyMap.isEmpty());
52+
}
53+
54+
@Test
55+
public void testClear() throws Exception {
56+
assertEquals(3, filteredMap.size());
57+
filteredMap.clear();
58+
assertTrue(filteredMap.isEmpty());
59+
}
60+
61+
@Test
62+
public void testContainsKey() throws Exception {
63+
assertTrue(filteredMap.containsKey(KEY_FILTERED));
64+
assertTrue(filteredMap.containsKey(KEY_UNFILTERED));
65+
assertTrue(filteredMap.containsKey(KEY_NESTED));
66+
assertFalse(filteredMap.containsKey("fake"));
67+
}
68+
69+
@Test
70+
public void testRemove() throws Exception {
71+
HashMap<String, Object> map = new HashMap<String, Object>();
72+
map.put(KEY_UNFILTERED, VAL_UNFILTERED);
73+
map.put(KEY_FILTERED, VAL_FILTERED);
74+
75+
HashMap<String, Object> emptyMap = new HashMap<String, Object>();
76+
Map<String, Object> removeMap = new FilteredMap(emptyMap, Collections.singleton(KEY_FILTERED));
77+
removeMap.putAll(map);
78+
79+
assertEquals(2, removeMap.size());
80+
removeMap.remove(KEY_FILTERED);
81+
assertEquals(1, removeMap.size());
82+
removeMap.remove(KEY_UNFILTERED);
83+
assertEquals(0, removeMap.size());
84+
}
85+
86+
@Test
87+
public void testGet() throws Exception {
88+
assertEquals(PLACEHOLDER_FILTERED, filteredMap.get(KEY_FILTERED));
89+
assertEquals(VAL_UNFILTERED, filteredMap.get(KEY_UNFILTERED));
90+
91+
Object actual = filteredMap.get(KEY_NESTED);
92+
assertTrue(actual instanceof FilteredMap);
93+
94+
Map<String, Object> nestedMap = (Map<String, Object>) actual;
95+
assertEquals(VAL_UNFILTERED, nestedMap.get(KEY_UNFILTERED));
96+
assertEquals(PLACEHOLDER_FILTERED, nestedMap.get(KEY_FILTERED));
97+
}
98+
99+
@Test
100+
public void testKeySet() throws Exception {
101+
Set<String> keySet = filteredMap.keySet();
102+
assertEquals(3, keySet.size());
103+
assertTrue(keySet.contains(KEY_FILTERED));
104+
assertTrue(keySet.contains(KEY_UNFILTERED));
105+
assertTrue(keySet.contains(KEY_NESTED));
106+
}
107+
108+
@Test
109+
public void testValues() throws Exception {
110+
Collection<Object> values = filteredMap.values();
111+
assertEquals(3, values.size());
112+
assertTrue(values.contains(VAL_UNFILTERED));
113+
assertTrue(values.contains(PLACEHOLDER_FILTERED));
114+
assertTrue(values.contains(KEY_NESTED));
115+
116+
values.remove(VAL_FILTERED);
117+
values.remove(VAL_UNFILTERED);
118+
119+
Object nestedObj = values.toArray(new Object[1])[0];
120+
assertTrue(nestedObj instanceof FilteredMap);
121+
Map<String, Object> nestedMap = (Map<String, Object>) nestedObj;
122+
values = nestedMap.values();
123+
124+
assertEquals(2, values.size());
125+
assertTrue(values.contains(VAL_UNFILTERED));
126+
assertTrue(values.contains(PLACEHOLDER_FILTERED));
127+
}
128+
129+
@Test
130+
public void testEntrySet() throws Exception {
131+
Set<Map.Entry<String, Object>> entries = filteredMap.entrySet();
132+
assertEquals(3, entries.size());
133+
134+
int expectedCount = 0;
135+
136+
for (Map.Entry<String, Object> entry : entries) {
137+
String key = entry.getKey();
138+
139+
if (key.equals(KEY_FILTERED)) {
140+
expectedCount++;
141+
assertEquals(PLACEHOLDER_FILTERED, entry.getValue());
142+
143+
} else if (key.equals(KEY_UNFILTERED)) {
144+
expectedCount++;
145+
assertEquals(VAL_UNFILTERED, entry.getValue());
146+
147+
} else if (key.equals(KEY_NESTED)) {
148+
expectedCount++;
149+
Object value = entry.getValue();
150+
assertTrue(value instanceof FilteredMap);
151+
}
152+
}
153+
assertEquals(3, expectedCount);
154+
}
155+
156+
}

0 commit comments

Comments
 (0)