Index: trunk/test/unit/org/openstreetmap/josm/tools/MultiMapTest.java
===================================================================
--- trunk/test/unit/org/openstreetmap/josm/tools/MultiMapTest.java	(revision 9711)
+++ trunk/test/unit/org/openstreetmap/josm/tools/MultiMapTest.java	(revision 9712)
@@ -2,7 +2,12 @@
 package org.openstreetmap.josm.tools;
 
-import org.junit.Test;
+import static org.junit.Assert.assertEquals;
+import static org.junit.Assert.assertTrue;
+
+import java.util.Arrays;
+import java.util.HashSet;
 
 import nl.jqno.equalsverifier.EqualsVerifier;
+import org.junit.Test;
 
 /**
@@ -18,3 +23,40 @@
         EqualsVerifier.forClass(MultiMap.class).usingGetClass().verify();
     }
+
+    /**
+     * Various test of {@link MultiMap}.
+     */
+    @Test
+    public void testMultiMap() {
+        final MultiMap<String, String> map = new MultiMap<>();
+        assertTrue(map.isEmpty());
+        map.put("foo", "bar");
+        map.put("foo", "baz");
+        map.putVoid("alpha");
+        assertEquals(2, map.size());
+        assertEquals(new HashSet<>(Arrays.asList("foo", "alpha")), map.keySet());
+        assertEquals(new HashSet<>(Arrays.asList("bar", "baz")), map.get("foo"));
+        assertEquals(new HashSet<>(), map.get("alpha"));
+        assertEquals(null, map.get("beta"));
+        assertEquals(new HashSet<>(), map.getValues("alpha"));
+        assertEquals(new HashSet<>(), map.getValues("beta"));
+        assertEquals("(foo->{bar,baz},alpha->{})", map.toString());
+        assertEquals("[[bar, baz], []]", map.values().toString());
+        map.put("foo", "baz2");
+        map.put("foo", "baz");
+        assertEquals(new HashSet<>(Arrays.asList("bar", "baz", "baz2")), map.get("foo"));
+        map.remove("foo", "baz");
+        assertEquals(new HashSet<>(Arrays.asList("bar", "baz2")), map.get("foo"));
+        map.remove("foo");
+        assertEquals(null, map.get("foo"));
+        assertEquals("(alpha->{})", map.toString());
+        map.remove("alpha");
+        assertTrue(map.isEmpty());
+        map.remove("omega", null);
+        assertTrue(map.isEmpty());
+        map.clear();
+        assertTrue(map.isEmpty());
+        map.putAll("foo", Arrays.asList("bar", "baz"));
+        assertEquals(new HashSet<>(Arrays.asList("bar", "baz")), map.get("foo"));
+    }
 }
