LinkedCaseInsensitiveMap delegates to LinkedHashMap instead of extending it

Issue: SPR-15026
This commit is contained in:
Juergen Hoeller
2016-12-23 18:57:50 +01:00
parent d3f97e3092
commit 8147c112f5
3 changed files with 123 additions and 33 deletions

View File

@@ -74,11 +74,28 @@ public class LinkedCaseInsensitiveMapTests {
assertEquals("N", map.getOrDefault(new Object(), "N"));
}
@Test
public void computeIfAbsentWithExistingValue() {
map.put("key", "value1");
map.put("KEY", "value2");
map.put("Key", "value3");
assertEquals("value3", map.computeIfAbsent("key", key -> "value1"));
assertEquals("value3", map.computeIfAbsent("KEY", key -> "value2"));
assertEquals("value3", map.computeIfAbsent("Key", key -> "value3"));
}
@Test
public void computeIfAbsentWithComputedValue() {
assertEquals("value1", map.computeIfAbsent("key", key -> "value1"));
assertEquals("value1", map.computeIfAbsent("KEY", key -> "value2"));
assertEquals("value1", map.computeIfAbsent("Key", key -> "value3"));
}
@Test
@SuppressWarnings("unchecked")
public void mapClone() {
map.put("key", "value1");
LinkedCaseInsensitiveMap<String> copy = (LinkedCaseInsensitiveMap<String>) map.clone();
LinkedCaseInsensitiveMap<String> copy = map.clone();
assertEquals("value1", map.get("key"));
assertEquals("value1", map.get("KEY"));
assertEquals("value1", map.get("Key"));