You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@commons.apache.org by ba...@apache.org on 2009/09/15 07:57:34 UTC

svn commit: r815130 - /commons/proper/collections/trunk/src/test/org/apache/commons/collections/map/TestMultiValueMap.java

Author: bayard
Date: Tue Sep 15 05:57:34 2009
New Revision: 815130

URL: http://svn.apache.org/viewvc?rev=815130&view=rev
Log:
Merging from -r468106:814127 of collections_jdk5_branch - namely where this code was generified; mostly in r738956.

Also see the following revisions:

    ------------------------------------------------------------------------
    r468685 | scolebourne | 2006-10-28 05:30:27 -0700 (Sat, 28 Oct 2006) | 1 line
    
    COLLECTIONS-228 - MultiValueMap put and putAll do not return the correct values
    ------------------------------------------------------------------------

Modified:
    commons/proper/collections/trunk/src/test/org/apache/commons/collections/map/TestMultiValueMap.java

Modified: commons/proper/collections/trunk/src/test/org/apache/commons/collections/map/TestMultiValueMap.java
URL: http://svn.apache.org/viewvc/commons/proper/collections/trunk/src/test/org/apache/commons/collections/map/TestMultiValueMap.java?rev=815130&r1=815129&r2=815130&view=diff
==============================================================================
--- commons/proper/collections/trunk/src/test/org/apache/commons/collections/map/TestMultiValueMap.java (original)
+++ commons/proper/collections/trunk/src/test/org/apache/commons/collections/map/TestMultiValueMap.java Tue Sep 15 05:57:34 2009
@@ -26,6 +26,7 @@
 import java.util.Map;
 
 import junit.framework.Test;
+import junit.framework.TestCase;
 import junit.framework.TestSuite;
 
 import org.apache.commons.collections.IteratorUtils;
@@ -40,7 +41,7 @@
  * @author Stephen Colebourne
  * @since Commons Collections 3.2
  */
-public class TestMultiValueMap extends AbstractTestObject {
+public class TestMultiValueMap<K, V> extends AbstractTestObject {
 
     public TestMultiValueMap(String testName) {
         super(testName);
@@ -56,25 +57,28 @@
     }
 
     public void testNoMappingReturnsNull() {
-        final MultiValueMap map = createTestMap();
+        final MultiValueMap<K, V> map = createTestMap();
         assertNull(map.get("whatever"));
     }
 
+    @SuppressWarnings("unchecked")
     public void testValueCollectionType() {
-        final MultiValueMap map = createTestMap(LinkedList.class);
+        final MultiValueMap<K, V> map = createTestMap(LinkedList.class);
         assertTrue(map.get("one") instanceof LinkedList);
     }
 
+    @SuppressWarnings("unchecked")
     public void testMultipleValues() {
-        final MultiValueMap map = createTestMap(HashSet.class);
-        final HashSet expected = new HashSet();
-        expected.add("uno");
-        expected.add("un");
+        final MultiValueMap<K, V> map = createTestMap(HashSet.class);
+        final HashSet<V> expected = new HashSet<V>();
+        expected.add((V) "uno");
+        expected.add((V) "un");
         assertEquals(expected, map.get("one"));
     }
 
+    @SuppressWarnings("unchecked")
     public void testContainsValue() {
-        final MultiValueMap map = createTestMap(HashSet.class);
+        final MultiValueMap<K, V> map = createTestMap(HashSet.class);
         assertTrue(map.containsValue("uno"));
         assertTrue(map.containsValue("un"));
         assertTrue(map.containsValue("dos"));
@@ -84,56 +88,60 @@
         assertFalse(map.containsValue("quatro"));
     }
 
+    @SuppressWarnings("unchecked")
     public void testKeyContainsValue() {
-        final MultiValueMap map = createTestMap(HashSet.class);
-        assertTrue(map.containsValue("one", "uno"));
-        assertTrue(map.containsValue("one", "un"));
-        assertTrue(map.containsValue("two", "dos"));
-        assertTrue(map.containsValue("two", "deux"));
-        assertTrue(map.containsValue("three", "tres"));
-        assertTrue(map.containsValue("three", "trois"));
-        assertFalse(map.containsValue("four", "quatro"));
+        final MultiValueMap<K, V> map = createTestMap(HashSet.class);
+        assertTrue(map.containsValue((K) "one", "uno"));
+        assertTrue(map.containsValue((K) "one", "un"));
+        assertTrue(map.containsValue((K) "two", "dos"));
+        assertTrue(map.containsValue((K) "two", "deux"));
+        assertTrue(map.containsValue((K) "three", "tres"));
+        assertTrue(map.containsValue((K) "three", "trois"));
+        assertFalse(map.containsValue((K) "four", "quatro"));
     }
 
+    @SuppressWarnings("unchecked")
     public void testValues() {
-        final MultiValueMap map = createTestMap(HashSet.class);
-        final HashSet expected = new HashSet();
-        expected.add("uno");
-        expected.add("dos");
-        expected.add("tres");
-        expected.add("un");
-        expected.add("deux");
-        expected.add("trois");
-        final Collection c = map.values();
+        final MultiValueMap<K, V> map = createTestMap(HashSet.class);
+        final HashSet<V> expected = new HashSet<V>();
+        expected.add((V) "uno");
+        expected.add((V) "dos");
+        expected.add((V) "tres");
+        expected.add((V) "un");
+        expected.add((V) "deux");
+        expected.add((V) "trois");
+        final Collection<Object> c = map.values();
         assertEquals(6, c.size());
-        assertEquals(expected, new HashSet(c));
+        assertEquals(expected, new HashSet<Object>(c));
     }
 
-    private MultiValueMap createTestMap() {
+    @SuppressWarnings("unchecked")
+    private MultiValueMap<K, V> createTestMap() {
         return createTestMap(ArrayList.class);
     }
 
-    private MultiValueMap createTestMap(Class collectionClass) {
-        final MultiValueMap map = MultiValueMap.decorate(new HashMap(), collectionClass);
-        map.put("one", "uno");
-        map.put("one", "un");
-        map.put("two", "dos");
-        map.put("two", "deux");
-        map.put("three", "tres");
-        map.put("three", "trois");
+    @SuppressWarnings("unchecked")
+    private <C extends Collection<V>> MultiValueMap<K, V> createTestMap(Class<C> collectionClass) {
+        final MultiValueMap<K, V> map = MultiValueMap.decorate(new HashMap<K, C>(), collectionClass);
+        map.put((K) "one", (V) "uno");
+        map.put((K) "one", (V) "un");
+        map.put((K) "two", (V) "dos");
+        map.put((K) "two", (V) "deux");
+        map.put((K) "three", (V) "tres");
+        map.put((K) "three", (V) "trois");
         return map;
     }
 
     public void testKeyedIterator() {
-        final MultiValueMap map = createTestMap();
-        final ArrayList actual = new ArrayList(IteratorUtils.toList(map.iterator("one")));
-        final ArrayList expected = new ArrayList(Arrays.asList(new String[]{"uno", "un"}));
+        final MultiValueMap<K, V> map = createTestMap();
+        final ArrayList<Object> actual = new ArrayList<Object>(IteratorUtils.toList(map.iterator("one")));
+        final ArrayList<Object> expected = new ArrayList<Object>(Arrays.asList(new String[]{ "uno", "un" }));
         assertEquals(expected, actual);
     }
 
     public void testRemoveAllViaIterator() {
-        final MultiValueMap map = createTestMap();
-        for(Iterator i = map.values().iterator(); i.hasNext();) {
+        final MultiValueMap<K, V> map = createTestMap();
+        for (Iterator<?> i = map.values().iterator(); i.hasNext();) {
             i.next();
             i.remove();
         }
@@ -142,8 +150,8 @@
     }
 
     public void testRemoveAllViaKeyedIterator() {
-        final MultiValueMap map = createTestMap();
-        for(Iterator i = map.iterator("one"); i.hasNext();) {
+        final MultiValueMap<K, V> map = createTestMap();
+        for (Iterator<?> i = map.iterator("one"); i.hasNext();) {
             i.next();
             i.remove();
         }
@@ -156,71 +164,76 @@
     }
 
     //-----------------------------------------------------------------------
+    @SuppressWarnings("unchecked")
     public void testMapEquals() {
-        MultiValueMap one = new MultiValueMap();
+        MultiValueMap<K, V> one = new MultiValueMap<K, V>();
         Integer value = new Integer(1);
-        one.put("One", value);
+        one.put((K) "One", value);
         one.remove("One", value);
-        
-        MultiValueMap two = new MultiValueMap();
+
+        MultiValueMap<K, V> two = new MultiValueMap<K, V>();
         assertEquals(two, one);
     }
 
     //-----------------------------------------------------------------------
+    @SuppressWarnings("unchecked")
     public void testGetCollection() {
-        MultiValueMap map = new MultiValueMap();
-        map.put("A", "AA");
+        MultiValueMap<K, V> map = new MultiValueMap<K, V>();
+        map.put((K) "A", "AA");
         assertSame(map.get("A"), map.getCollection("A"));
     }
-    
+
+    @SuppressWarnings("unchecked")
     public void testTotalSize() {
-        MultiValueMap map = new MultiValueMap();
+        MultiValueMap<K, V> map = new MultiValueMap<K, V>();
         assertEquals(0, map.totalSize());
-        map.put("A", "AA");
+        map.put((K) "A", "AA");
         assertEquals(1, map.totalSize());
-        map.put("B", "BA");
+        map.put((K) "B", "BA");
         assertEquals(2, map.totalSize());
-        map.put("B", "BB");
+        map.put((K) "B", "BB");
         assertEquals(3, map.totalSize());
-        map.put("B", "BC");
+        map.put((K) "B", "BC");
         assertEquals(4, map.totalSize());
         map.remove("A");
         assertEquals(3, map.totalSize());
         map.remove("B", "BC");
         assertEquals(2, map.totalSize());
     }
-    
+
+    @SuppressWarnings("unchecked")
     public void testSize() {
-        MultiValueMap map = new MultiValueMap();
+        MultiValueMap<K, V> map = new MultiValueMap<K, V>();
         assertEquals(0, map.size());
-        map.put("A", "AA");
+        map.put((K) "A", "AA");
         assertEquals(1, map.size());
-        map.put("B", "BA");
+        map.put((K) "B", "BA");
         assertEquals(2, map.size());
-        map.put("B", "BB");
+        map.put((K) "B", "BB");
         assertEquals(2, map.size());
-        map.put("B", "BC");
+        map.put((K) "B", "BC");
         assertEquals(2, map.size());
         map.remove("A");
         assertEquals(1, map.size());
         map.remove("B", "BC");
         assertEquals(1, map.size());
     }
-    
+
+    @SuppressWarnings("unchecked")
     public void testSize_Key() {
-        MultiValueMap map = new MultiValueMap();
+        MultiValueMap<K, V> map = new MultiValueMap<K, V>();
         assertEquals(0, map.size("A"));
         assertEquals(0, map.size("B"));
-        map.put("A", "AA");
+        map.put((K) "A", "AA");
         assertEquals(1, map.size("A"));
         assertEquals(0, map.size("B"));
-        map.put("B", "BA");
+        map.put((K) "B", "BA");
         assertEquals(1, map.size("A"));
         assertEquals(1, map.size("B"));
-        map.put("B", "BB");
+        map.put((K) "B", "BB");
         assertEquals(1, map.size("A"));
         assertEquals(2, map.size("B"));
-        map.put("B", "BC");
+        map.put((K) "B", "BC");
         assertEquals(1, map.size("A"));
         assertEquals(3, map.size("B"));
         map.remove("A");
@@ -230,53 +243,58 @@
         assertEquals(0, map.size("A"));
         assertEquals(2, map.size("B"));
     }
-    
+
+    @SuppressWarnings("unchecked")
     public void testIterator_Key() {
-        MultiValueMap map = new MultiValueMap();
+        MultiValueMap<K, V> map = new MultiValueMap<K, V>();
         assertEquals(false, map.iterator("A").hasNext());
-        map.put("A", "AA");
-        Iterator it = map.iterator("A");
+        map.put((K) "A", "AA");
+        Iterator<?> it = map.iterator("A");
         assertEquals(true, it.hasNext());
         it.next();
         assertEquals(false, it.hasNext());
     }
-    
+
+    @SuppressWarnings("unchecked")
     public void testContainsValue_Key() {
-        MultiValueMap map = new MultiValueMap();
+        MultiValueMap<K, V> map = new MultiValueMap<K, V>();
         assertEquals(false, map.containsValue("A", "AA"));
         assertEquals(false, map.containsValue("B", "BB"));
-        map.put("A", "AA");
+        map.put((K) "A", "AA");
         assertEquals(true, map.containsValue("A", "AA"));
         assertEquals(false, map.containsValue("A", "AB"));
     }
 
+    @SuppressWarnings("unchecked")
     public void testPutWithList() {
-        MultiValueMap test = MultiValueMap.decorate(new HashMap(), ArrayList.class);
-        assertEquals("a", test.put("A", "a"));
-        assertEquals("b", test.put("A", "b"));
+        MultiValueMap<K, V> test = MultiValueMap.decorate(new HashMap<K, Collection>(), ArrayList.class);
+        assertEquals("a", test.put((K) "A", "a"));
+        assertEquals("b", test.put((K) "A", "b"));
         assertEquals(1, test.size());
         assertEquals(2, test.size("A"));
         assertEquals(2, test.totalSize());
     }
 
+    @SuppressWarnings("unchecked")
     public void testPutWithSet() {
-        MultiValueMap test = MultiValueMap.decorate(new HashMap(), HashSet.class);
-        assertEquals("a", test.put("A", "a"));
-        assertEquals("b", test.put("A", "b"));
-        assertEquals(null, test.put("A", "a"));
+        MultiValueMap<K, V> test = MultiValueMap.decorate(new HashMap<K, HashSet>(), HashSet.class);
+        assertEquals("a", test.put((K) "A", "a"));
+        assertEquals("b", test.put((K) "A", "b"));
+        assertEquals(null, test.put((K) "A", "a"));
         assertEquals(1, test.size());
         assertEquals(2, test.size("A"));
         assertEquals(2, test.totalSize());
     }
 
+    @SuppressWarnings("unchecked")
     public void testPutAll_Map1() {
-        MultiMap original = new MultiValueMap();
-        original.put("key", "object1");
-        original.put("key", "object2");
-
-        MultiValueMap test = new MultiValueMap();
-        test.put("keyA", "objectA");
-        test.put("key", "object0");
+        MultiMap<K, V> original = new MultiValueMap<K, V>();
+        original.put((K) "key", "object1");
+        original.put((K) "key", "object2");
+
+        MultiValueMap<K, V> test = new MultiValueMap<K, V>();
+        test.put((K) "keyA", "objectA");
+        test.put((K) "key", "object0");
         test.putAll(original);
 
         assertEquals(2, test.size());
@@ -289,14 +307,15 @@
         assertEquals(true, test.containsValue("object2"));
     }
 
+    @SuppressWarnings("unchecked")
     public void testPutAll_Map2() {
-        Map original = new HashMap();
-        original.put("keyX", "object1");
-        original.put("keyY", "object2");
-
-        MultiValueMap test = new MultiValueMap();
-        test.put("keyA", "objectA");
-        test.put("keyX", "object0");
+        Map<K, V> original = new HashMap<K, V>();
+        original.put((K) "keyX", (V) "object1");
+        original.put((K) "keyY", (V) "object2");
+
+        MultiValueMap<K, V> test = new MultiValueMap<K, V>();
+        test.put((K) "keyA", "objectA");
+        test.put((K) "keyX", "object0");
         test.putAll(original);
 
         assertEquals(3, test.size());
@@ -310,30 +329,31 @@
         assertEquals(true, test.containsValue("object2"));
     }
 
+    @SuppressWarnings("unchecked")
     public void testPutAll_KeyCollection() {
-        MultiValueMap map = new MultiValueMap();
-        Collection coll = Arrays.asList(new Object[] {"X", "Y", "Z"});
-        
-        assertEquals(true, map.putAll("A", coll));
+        MultiValueMap<K, V> map = new MultiValueMap<K, V>();
+        Collection<V> coll = (Collection<V>) Arrays.asList(new Object[] { "X", "Y", "Z" });
+
+        assertEquals(true, map.putAll((K) "A", coll));
         assertEquals(3, map.size("A"));
         assertEquals(true, map.containsValue("A", "X"));
         assertEquals(true, map.containsValue("A", "Y"));
         assertEquals(true, map.containsValue("A", "Z"));
-        
-        assertEquals(false, map.putAll("A", null));
+
+        assertEquals(false, map.putAll((K) "A", null));
         assertEquals(3, map.size("A"));
         assertEquals(true, map.containsValue("A", "X"));
         assertEquals(true, map.containsValue("A", "Y"));
         assertEquals(true, map.containsValue("A", "Z"));
-        
-        assertEquals(false, map.putAll("A", new ArrayList()));
+
+        assertEquals(false, map.putAll((K) "A", new ArrayList<V>()));
         assertEquals(3, map.size("A"));
         assertEquals(true, map.containsValue("A", "X"));
         assertEquals(true, map.containsValue("A", "Y"));
         assertEquals(true, map.containsValue("A", "Z"));
-        
-        coll = Arrays.asList(new Object[] {"M"});
-        assertEquals(true, map.putAll("A", coll));
+
+        coll = (Collection<V>) Arrays.asList(new Object[] { "M" });
+        assertEquals(true, map.putAll((K) "A", coll));
         assertEquals(4, map.size("A"));
         assertEquals(true, map.containsValue("A", "X"));
         assertEquals(true, map.containsValue("A", "Y"));
@@ -341,17 +361,18 @@
         assertEquals(true, map.containsValue("A", "M"));
     }
 
+    @SuppressWarnings("unchecked")
     public void testRemove_KeyItem() {
-        MultiValueMap map = new MultiValueMap();
-        map.put("A", "AA");
-        map.put("A", "AB");
-        map.put("A", "AC");
+        MultiValueMap<K, V> map = new MultiValueMap<K, V>();
+        map.put((K) "A", "AA");
+        map.put((K) "A", "AB");
+        map.put((K) "A", "AC");
         assertEquals(null, map.remove("C", "CA"));
         assertEquals(null, map.remove("A", "AD"));
         assertEquals("AC", map.remove("A", "AC"));
         assertEquals("AB", map.remove("A", "AB"));
         assertEquals("AA", map.remove("A", "AA"));
-        assertEquals(new MultiValueMap(), map);
+        assertEquals(new MultiValueMap<K, V>(), map);
     }
 
     //-----------------------------------------------------------------------