LinkedCaseInsensitiveMap properly overrides HashMap.clone()

Issue: SPR-14509
This commit is contained in:
Juergen Hoeller
2016-07-25 12:08:55 +02:00
parent 249b798059
commit dd65f7acfc
2 changed files with 31 additions and 1 deletions

View File

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