Tests for LinkedTreeMap with incompatible keys.

This commit is contained in:
Jesse Wilson 2012-09-12 05:06:48 +00:00
parent a6ab854302
commit 01bd0d92e2
2 changed files with 24 additions and 2 deletions

View File

@ -164,7 +164,6 @@ public final class LinkedTreeMap<K, V> extends AbstractMap<K, V> implements Seri
}
}
// TODO(jwilson): don't throw ClassCastExceptions on unknown types
@SuppressWarnings("unchecked") // this method throws ClassCastExceptions!
Node<K, V> findByObject(Object key) {
return key != null ? find((K) key, false) : null;

View File

@ -45,7 +45,30 @@ public final class LinkedTreeMapTest extends TestCase {
assertIterationOrder(map.keySet(), "a", "c");
}
// TODO: test contains with non-string key
public void testPutNullKeyFails() {
LinkedTreeMap<String, String> map = new LinkedTreeMap<String, String>();
try {
map.put(null, "android");
fail();
} catch (NullPointerException expected) {
}
}
public void testContainsNullKeyFails() {
LinkedTreeMap<String, String> map = new LinkedTreeMap<String, String>();
map.put("a", "android");
assertFalse(map.containsKey(null));
}
public void testContainsNonComparableKeyThrows() {
LinkedTreeMap<String, String> map = new LinkedTreeMap<String, String>();
map.put("a", "android");
try {
map.containsKey(new Object());
fail();
} catch (ClassCastException expected) {
}
}
private <T> void assertIterationOrder(Iterable<T> actual, T... expected) {
ArrayList<T> actualList = new ArrayList<T>();