/** Test that the full list iterator contract is correct. */ @Override public void testFullMapIterator() { if (!supportsFullIterator()) { return; } super.testFullMapIterator(); final OrderedMapIterator<K, V> it = makeObject(); final Map<K, V> map = getMap(); assertEquals(true, it.hasNext()); assertEquals(false, it.hasPrevious()); final Set<K> set = new HashSet<K>(); while (it.hasNext()) { // getKey final K key = it.next(); assertSame("it.next() should equals getKey()", key, it.getKey()); assertTrue("Key must be in map", map.containsKey(key)); assertTrue("Key must be unique", set.add(key)); // getValue final V value = it.getValue(); if (!isGetStructuralModify()) { assertSame("Value must be mapped to key", map.get(key), value); } assertTrue("Value must be in map", map.containsValue(value)); assertEquals(true, it.hasPrevious()); verify(); } while (it.hasPrevious()) { // getKey final Object key = it.previous(); assertSame("it.previous() should equals getKey()", key, it.getKey()); assertTrue("Key must be in map", map.containsKey(key)); assertTrue("Key must be unique", set.remove(key)); // getValue final Object value = it.getValue(); if (!isGetStructuralModify()) { assertSame("Value must be mapped to key", map.get(key), value); } assertTrue("Value must be in map", map.containsValue(value)); assertEquals(true, it.hasNext()); verify(); } }
/** Test that the empty list iterator contract is correct. */ @Override public void testEmptyMapIterator() { if (!supportsEmptyIterator()) { return; } super.testEmptyMapIterator(); final OrderedMapIterator<K, V> it = makeEmptyIterator(); assertEquals(false, it.hasPrevious()); try { it.previous(); fail(); } catch (final NoSuchElementException ex) { } }