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:02 UTC

svn commit: r815112 - /commons/proper/collections/trunk/src/test/org/apache/commons/collections/collection/TestCompositeCollection.java

Author: bayard
Date: Tue Sep 15 05:57:01 2009
New Revision: 815112

URL: http://svn.apache.org/viewvc?rev=815112&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:

    ------------------------------------------------------------------------
    r471580 | scolebourne | 2006-11-05 16:22:53 -0800 (Sun, 05 Nov 2006) | 1 line
    
    Generify CompositeCollection
    ------------------------------------------------------------------------

Modified:
    commons/proper/collections/trunk/src/test/org/apache/commons/collections/collection/TestCompositeCollection.java

Modified: commons/proper/collections/trunk/src/test/org/apache/commons/collections/collection/TestCompositeCollection.java
URL: http://svn.apache.org/viewvc/commons/proper/collections/trunk/src/test/org/apache/commons/collections/collection/TestCompositeCollection.java?rev=815112&r1=815111&r2=815112&view=diff
==============================================================================
--- commons/proper/collections/trunk/src/test/org/apache/commons/collections/collection/TestCompositeCollection.java (original)
+++ commons/proper/collections/trunk/src/test/org/apache/commons/collections/collection/TestCompositeCollection.java Tue Sep 15 05:57:01 2009
@@ -16,16 +16,18 @@
  */
 package org.apache.commons.collections.collection;
 
+import java.util.ArrayList;
 import java.util.Arrays;
 import java.util.Collection;
 import java.util.HashSet;
 import java.util.Iterator;
+import java.util.List;
 
 import junit.framework.Test;
 import junit.framework.TestSuite;
 
 /**
- * Extension of {@link AbstractTestCollection} for exercising the 
+ * Extension of {@link AbstractTestCollection} for exercising the
  * {@link CompositeCollection} implementation.
  *
  * @since Commons Collections 3.0
@@ -34,12 +36,12 @@
  * @author Brian McCallister
  * @author Phil Steitz
  */
-public class TestCompositeCollection extends AbstractTestCollection {
-    
+public class TestCompositeCollection<E> extends AbstractTestCollection<E> {
+
     public TestCompositeCollection(String name) {
         super(name);
     }
-    
+
     public static Test suite() {
         return new TestSuite(TestCompositeCollection.class);
     }
@@ -48,7 +50,7 @@
         String[] testCaseName = { TestCompositeCollection.class.getName()};
         junit.textui.TestRunner.main(testCaseName);
     }
- 
+
  //-----------------------------------------------------------------------------
     /**
      * Run stock collection tests without Mutator, so turn off add, remove
@@ -56,145 +58,150 @@
     public boolean isAddSupported() {
         return false;
     }
-    
+
     public boolean isRemoveSupported() {
         return false;
     }
-    
+
     /**
      * Empty collection is empty composite
      */
-    public Collection makeCollection() {
-        return new CompositeCollection();
+    public Collection<E> makeObject() {
+        return new CompositeCollection<E>();
     }
-    
-    public Collection makeConfirmedCollection() {
-        return new HashSet();
-    }
-    
-    public Object[] getFullElements() {
-        return new Object[] {"1", "2", "3", "4"};
+
+    public Collection<E> makeConfirmedCollection() {
+        return new HashSet<E>();
+    }
+
+    @SuppressWarnings("unchecked")
+    public E[] getFullElements() {
+        return (E[]) new Object[] { "1", "2", "3", "4" };
     }
-    
+
     /**
      * Full collection consists of 4 collections, each with one element
      */
-    public Collection makeFullCollection() {
-        CompositeCollection compositeCollection = new CompositeCollection();
-        Object[] elements = getFullElements();
+    public Collection<E> makeFullCollection() {
+        CompositeCollection<E> compositeCollection = new CompositeCollection<E>();
+        E[] elements = getFullElements();
         for (int i = 0; i < elements.length; i++) {
-            Collection summand = new HashSet();
+            Collection<E> summand = new HashSet<E>();
             summand.add(elements[i]);
             compositeCollection.addComposited(summand);
         }
         return compositeCollection;
     }
-    
+
     /**
      * Full collection should look like a collection with 4 elements
      */
-    public Collection makeConfirmedFullCollection() {
-        Collection collection = new HashSet();
+    public Collection<E> makeConfirmedFullCollection() {
+        Collection<E> collection = new HashSet<E>();
         collection.addAll(Arrays.asList(getFullElements()));
         return collection;
     }
-    
+
     /**
      * Override testUnsupportedRemove, since the default impl expects removeAll,
      * retainAll and iterator().remove to throw
      */
-    public void testUnsupportedRemove() {    
+    public void testUnsupportedRemove() {
         resetFull();
         try {
-            collection.remove(null);
+            getCollection().remove(null);
             fail("remove should raise UnsupportedOperationException");
         } catch (UnsupportedOperationException e) {
             // expected
         }
         verify();
     }
-    
+
     //--------------------------------------------------------------------------
-    
-    protected CompositeCollection c;
-    protected Collection one;
-    protected Collection two;
-    
+
+    protected CompositeCollection<E> c;
+    protected Collection<E> one;
+    protected Collection<E> two;
+
     protected void setUpTest() {
-        c = new CompositeCollection();
-        one = new HashSet();
-        two = new HashSet();
+        c = new CompositeCollection<E>();
+        one = new HashSet<E>();
+        two = new HashSet<E>();
     }
-    
+
     protected void setUpMutatorTest() {
         setUpTest();
-        c.setMutator(new CompositeCollection.CollectionMutator() {
-            public boolean add(CompositeCollection composite, 
-            Collection[] collections, Object obj) {
-                for (int i = 0; i < collections.length; i++) {
-                    collections[i].add(obj);
+        c.setMutator(new CompositeCollection.CollectionMutator<E>() {
+            public boolean add(CompositeCollection<E> composite,
+                    List<Collection<E>> collections, E obj) {
+                for (Collection<E> collection : collections) {
+                    collection.add(obj);
                 }
                 return true;
             }
-            
-            public boolean addAll(CompositeCollection composite, 
-            Collection[] collections, Collection coll) {
-                for (int i = 0; i < collections.length; i++) {
-                    collections[i].addAll(coll);
+
+            public boolean addAll(CompositeCollection<E> composite,
+                    List<Collection<E>> collections, Collection<? extends E> coll) {
+                for (Collection<E> collection : collections) {
+                    collection.addAll(coll);
                 }
                 return true;
             }
-            
-            public boolean remove(CompositeCollection composite, 
-            Collection[] collections, Object obj) {
-                for (int i = 0; i < collections.length; i++) {
-                    collections[i].remove(obj);
+
+            public boolean remove(CompositeCollection<E> composite,
+                    List<Collection<E>> collections, Object obj) {
+                for (Collection<E> collection : collections) {
+                    collection.remove(obj);
                 }
                 return true;
             }
         });
     }
-            
+
+    @SuppressWarnings("unchecked")
     public void testSize() {
         setUpTest();
-        HashSet set = new HashSet();
-        set.add("a");
-        set.add("b");
+        HashSet<E> set = new HashSet<E>();
+        set.add((E) "a");
+        set.add((E) "b");
         c.addComposited(set);
         assertEquals(set.size(), c.size());
     }
-    
+
+    @SuppressWarnings("unchecked")
     public void testMultipleCollectionsSize() {
         setUpTest();
-        HashSet set = new HashSet();
-        set.add("a");
-        set.add("b");
+        HashSet<E> set = new HashSet<E>();
+        set.add((E) "a");
+        set.add((E) "b");
         c.addComposited(set);
-        HashSet other = new HashSet();
-        other.add("c");
+        HashSet<E> other = new HashSet<E>();
+        other.add((E) "c");
         c.addComposited(other);
         assertEquals(set.size() + other.size(), c.size());
     }
-    
+
+    @SuppressWarnings("unchecked")
     public void testIsEmpty() {
         setUpTest();
         assertTrue(c.isEmpty());
-        HashSet empty = new HashSet();
+        HashSet<E> empty = new HashSet<E>();
         c.addComposited(empty);
         assertTrue(c.isEmpty());
-        empty.add("a");
+        empty.add((E) "a");
         assertTrue(!c.isEmpty());
     }
-    
-    
+
+
+    @SuppressWarnings("unchecked")
     public void testIterator() {
         setUpTest();
-        one.add("1");
-        two.add("2");
+        one.add((E) "1");
+        two.add((E) "2");
         c.addComposited(one);
         c.addComposited(two);
-        Iterator i = c.iterator();
-        Object next = i.next();
+        Iterator<E> i = c.iterator();
+        E next = i.next();
         assertTrue(c.contains(next));
         assertTrue(one.contains(next));
         next = i.next();
@@ -202,31 +209,34 @@
         assertTrue(!c.contains(next));
         assertTrue(!two.contains(next));
     }
-    
+
+    @SuppressWarnings("unchecked")
     public void testClear() {
         setUpTest();
-        one.add("1");
-        two.add("2");
+        one.add((E) "1");
+        two.add((E) "2");
         c.addComposited(one, two);
         c.clear();
         assertTrue(one.isEmpty());
         assertTrue(two.isEmpty());
         assertTrue(c.isEmpty());
     }
-    
+
+    @SuppressWarnings("unchecked")
     public void testContainsAll() {
         setUpTest();
-        one.add("1");
-        two.add("1");
+        one.add((E) "1");
+        two.add((E) "1");
         c.addComposited(one);
         assertTrue(c.containsAll(two));
     }
-    
+
+    @SuppressWarnings("unchecked")
     public void testRetainAll() {
         setUpTest();
-        one.add("1");
-        one.add("2");
-        two.add("1");
+        one.add((E) "1");
+        one.add((E) "2");
+        two.add((E) "1");
         c.addComposited(one);
         c.retainAll(two);
         assertTrue(!c.contains("2"));
@@ -234,123 +244,132 @@
         assertTrue(c.contains("1"));
         assertTrue(one.contains("1"));
     }
-    
+
+    @SuppressWarnings("unchecked")
     public void testAddAllMutator() {
         setUpTest();
-        c.setMutator(new CompositeCollection.CollectionMutator() {
-            public boolean add(CompositeCollection composite, 
-            Collection[] collections, Object obj) {
-                for (int i = 0; i < collections.length; i++) {
-                    collections[i].add(obj);
+        c.setMutator(new CompositeCollection.CollectionMutator<E>() {
+            public boolean add(CompositeCollection<E> composite,
+                    List<Collection<E>> collections, E obj) {
+                for (Collection<E> collection : collections) {
+                    collection.add(obj);
                 }
                 return true;
             }
-            
-            public boolean addAll(CompositeCollection composite, 
-            Collection[] collections, Collection coll) {
-                for (int i = 0; i < collections.length; i++) {
-                    collections[i].addAll(coll);
+
+            public boolean addAll(CompositeCollection<E> composite,
+                    List<Collection<E>> collections, Collection<? extends E> coll) {
+                for (Collection<E> collection : collections) {
+                    collection.addAll(coll);
                 }
                 return true;
             }
-            
-            public boolean remove(CompositeCollection composite, 
-            Collection[] collections, Object obj) {
+
+            public boolean remove(CompositeCollection<E> composite,
+                    List<Collection<E>> collections, Object obj) {
                 return false;
             }
         });
-        
+
         c.addComposited(one);
-        two.add("foo");
+        two.add((E) "foo");
         c.addAll(two);
         assertTrue(c.contains("foo"));
         assertTrue(one.contains("foo"));
     }
-    
+
+    @SuppressWarnings("unchecked")
     public void testAddMutator() {
         setUpTest();
-        c.setMutator(new CompositeCollection.CollectionMutator() {
-            public boolean add(CompositeCollection composite, 
-            Collection[] collections, Object obj) {
-                for (int i = 0; i < collections.length; i++) {
-                    collections[i].add(obj);
+        c.setMutator(new CompositeCollection.CollectionMutator<E>() {
+            public boolean add(CompositeCollection<E> composite,
+                    List<Collection<E>> collections, E obj) {
+                for (Collection<E> collection : collections) {
+                    collection.add(obj);
                 }
                 return true;
             }
-            
-            public boolean addAll(CompositeCollection composite, 
-            Collection[] collections, Collection coll) {
-                for (int i = 0; i < collections.length; i++) {
-                    collections[i].addAll(coll);
+
+            public boolean addAll(CompositeCollection<E> composite,
+                    List<Collection<E>> collections, Collection<? extends E> coll) {
+                for (Collection<E> collection : collections) {
+                    collection.addAll(coll);
                 }
                 return true;
             }
-            
-            public boolean remove(CompositeCollection composite, 
-            Collection[] collections, Object obj) {
+
+            public boolean remove(CompositeCollection<E> composite,
+                    List<Collection<E>> collections, Object obj) {
                 return false;
             }
         });
-        
+
         c.addComposited(one);
-        c.add("foo");
+        c.add((E) "foo");
         assertTrue(c.contains("foo"));
         assertTrue(one.contains("foo"));
     }
-    
+
+    @SuppressWarnings("unchecked")
     public void testToCollection() {
         setUpTest();
-        one.add("1");
-        two.add("2");
+        one.add((E) "1");
+        two.add((E) "2");
         c.addComposited(one, two);
-        Collection foo = c.toCollection();
+        Collection<E> foo = c.toCollection();
         assertTrue(foo.containsAll(c));
         assertEquals(c.size(), foo.size());
-        one.add("3");
+        one.add((E) "3");
         assertTrue(!foo.containsAll(c));
     }
-    
+
+    @SuppressWarnings("unchecked")
     public void testAddAllToCollection() {
         setUpTest();
-        one.add("1");
-        two.add("2");
+        one.add((E) "1");
+        two.add((E) "2");
         c.addComposited(one, two);
-        Collection toCollection = new HashSet();
+        Collection<E> toCollection = new HashSet<E>();
         toCollection.addAll(c);
         assertTrue(toCollection.containsAll(c));
         assertEquals(c.size(), toCollection.size());
-    }   
-    
+    }
+
+    @SuppressWarnings("unchecked")
     public void testRemove() {
         setUpMutatorTest();
-        one.add("1");
-        two.add("2");
-        two.add("1");
+        one.add((E) "1");
+        two.add((E) "2");
+        two.add((E) "1");
         c.addComposited(one, two);
         c.remove("1");
         assertTrue(!c.contains("1"));
         assertTrue(!one.contains("1"));
         assertTrue(!two.contains("1"));
     }
-    
+
+    @SuppressWarnings("unchecked")
     public void testRemoveAll() {
         setUpMutatorTest();
-        one.add("1");
-        two.add("2");
-        two.add("1");
+        one.add((E) "1");
+        two.add((E) "2");
+        two.add((E) "1");
+        // need separate list to remove, as otherwise one clears itself
+        Collection<E> removing = new ArrayList<E>(one);
         c.addComposited(one, two);
-        c.removeAll(one);
+        c.removeAll(removing);
         assertTrue(!c.contains("1"));
         assertTrue(!one.contains("1"));
         assertTrue(!two.contains("1"));
     }
-    
+
+    @SuppressWarnings("unchecked")
     public void testRemoveComposited() {
         setUpMutatorTest();
-        one.add("1");
-        two.add("2");
-        two.add("1");
-        c.addComposited(one, two);    
+        one.add((E) "1");
+        two.add((E) "2");
+        two.add((E) "1");
+        c.addComposited(one, two);
         c.removeComposited(one);
         assertTrue(c.contains("1"));
         assertEquals(2, c.size());