This is an automated email from the ASF dual-hosted git repository.

ggregory pushed a commit to branch master
in repository https://gitbox.apache.org/repos/asf/commons-collections.git


The following commit(s) were added to refs/heads/master by this push:
     new 954c29f  Add a test case in AbstractMultiValuedMapTest for 
AbstractMultiValuedMapTest.MultiValuedMapIterator (#108)
954c29f is described below

commit 954c29f969beb1953343337130da4286bd92402e
Author: dota17 <50514813+dot...@users.noreply.github.com>
AuthorDate: Fri Nov 1 23:42:00 2019 +0800

    Add a test case in AbstractMultiValuedMapTest for 
AbstractMultiValuedMapTest.MultiValuedMapIterator (#108)
---
 .../multimap/AbstractMultiValuedMapTest.java       | 61 ++++++++++++++++++++++
 .../multimap/HashSetValuedHashMapTest.java         |  5 ++
 2 files changed, 66 insertions(+)

diff --git 
a/src/test/java/org/apache/commons/collections4/multimap/AbstractMultiValuedMapTest.java
 
b/src/test/java/org/apache/commons/collections4/multimap/AbstractMultiValuedMapTest.java
index b821e79..ea851cc 100644
--- 
a/src/test/java/org/apache/commons/collections4/multimap/AbstractMultiValuedMapTest.java
+++ 
b/src/test/java/org/apache/commons/collections4/multimap/AbstractMultiValuedMapTest.java
@@ -104,6 +104,17 @@ public abstract class AbstractMultiValuedMapTest<K, V> 
extends AbstractObjectTes
         return true;
     }
 
+    /**
+     * Returns true if the maps produced by {@link #makeObject()} and
+     * {@link #makeFullMap()} supports set value.
+     * <p>
+     * Default implementation returns false. Override if your collection class
+     * supports set value.
+     */
+    public boolean isHashSetValue() {
+        return false;
+    }
+
     @Override
     public boolean isTestSerialization() {
         return true;
@@ -778,6 +789,56 @@ public abstract class AbstractMultiValuedMapTest<K, V> 
extends AbstractObjectTes
         }
     }
 
+    public void testMultiValuedMapIterator() {
+        final MultiValuedMap<K, V> map = makeFullMap();
+        final MapIterator<K, V> it = map.mapIterator();
+
+        try {
+            it.getKey();
+            fail();
+        } catch (final IllegalStateException ise) {
+        }
+        try {
+            it.getValue();
+            fail();
+        } catch (final IllegalStateException ise) {
+        }
+        if (isAddSupported()) {
+            try {
+                it.setValue((V) "V");
+                fail();
+            } catch (final IllegalStateException ise) {
+            }
+        }
+
+        if (!isHashSetValue() && isAddSupported()) {
+            assertTrue(it.hasNext() );
+            assertEquals("one", it.next());
+            assertEquals("one", it.getKey());
+            assertEquals("uno", it.getValue());
+            assertEquals("one", it.next());
+            assertEquals("one", it.getKey());
+            assertEquals("un", it.getValue());
+            assertEquals("two", it.next());
+            assertEquals("two", it.getKey());
+            assertEquals("dos", it.getValue());
+            assertEquals("two", it.next());
+            assertEquals("two", it.getKey());
+            assertEquals("deux", it.getValue());
+            assertEquals("three", it.next());
+            assertEquals("three", it.getKey());
+            assertEquals("tres", it.getValue());
+            assertEquals("three", it.next());
+            assertEquals("three", it.getKey());
+            assertEquals("trois", it.getValue());
+            try {
+                it.setValue((V) "threetrois");
+                fail();
+            } catch (final UnsupportedOperationException e) {
+            }
+        }
+    }
+
     // -----------------------------------------------------------------------
     // Manual serialization testing as this class cannot easily
     // extend the AbstractTestMap
diff --git 
a/src/test/java/org/apache/commons/collections4/multimap/HashSetValuedHashMapTest.java
 
b/src/test/java/org/apache/commons/collections4/multimap/HashSetValuedHashMapTest.java
index 8a33998..846488e 100644
--- 
a/src/test/java/org/apache/commons/collections4/multimap/HashSetValuedHashMapTest.java
+++ 
b/src/test/java/org/apache/commons/collections4/multimap/HashSetValuedHashMapTest.java
@@ -53,6 +53,11 @@ public class HashSetValuedHashMapTest<K, V> extends 
AbstractMultiValuedMapTest<K
         return new HashSetValuedHashMap<>();
     }
 
+    @Override
+    public boolean isHashSetValue() {
+        return true;
+    }
+
     // -----------------------------------------------------------------------
     @SuppressWarnings("unchecked")
     public void testSetValuedMapAdd() {

Reply via email to