You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@commons.apache.org by si...@apache.org on 2012/05/31 17:25:10 UTC

svn commit: r1344774 - in /commons/proper/functor/trunk/src: changes/ test/java/org/apache/commons/functor/generator/

Author: simonetripodi
Date: Thu May 31 15:25:08 2012
New Revision: 1344774

URL: http://svn.apache.org/viewvc?rev=1344774&view=rev
Log:
[FUNCTOR-7] Tests for generators - patch submitted by Bruno P. Kinoshita

Added:
    commons/proper/functor/trunk/src/test/java/org/apache/commons/functor/generator/TestFilteredGenerator.java   (with props)
    commons/proper/functor/trunk/src/test/java/org/apache/commons/functor/generator/TestGenerateUntil.java   (with props)
    commons/proper/functor/trunk/src/test/java/org/apache/commons/functor/generator/TestGenerateWhile.java   (with props)
    commons/proper/functor/trunk/src/test/java/org/apache/commons/functor/generator/TestTransformedGenerator.java   (with props)
    commons/proper/functor/trunk/src/test/java/org/apache/commons/functor/generator/TestUntilGenerate.java   (with props)
    commons/proper/functor/trunk/src/test/java/org/apache/commons/functor/generator/TestWhileGenerate.java   (with props)
Modified:
    commons/proper/functor/trunk/src/changes/changes.xml
    commons/proper/functor/trunk/src/test/java/org/apache/commons/functor/generator/TestIteratorToGeneratorAdapter.java

Modified: commons/proper/functor/trunk/src/changes/changes.xml
URL: http://svn.apache.org/viewvc/commons/proper/functor/trunk/src/changes/changes.xml?rev=1344774&r1=1344773&r2=1344774&view=diff
==============================================================================
--- commons/proper/functor/trunk/src/changes/changes.xml (original)
+++ commons/proper/functor/trunk/src/changes/changes.xml Thu May 31 15:25:08 2012
@@ -23,6 +23,9 @@
   </properties>
   <body>
     <release version="1.0" date="2012-??-??" description="First release.">
+      <action dev="simonetripodi" issue="FUNCTOR-7" due-to="Bruno P. Kinoshita">
+        Tests for generators
+      </action>
       <action dev="simonetripodi" issue="FUNCTOR-5" due-to="Bruno P. Kinoshita">
         Complete the javadoc description of Limit
       </action>

Added: commons/proper/functor/trunk/src/test/java/org/apache/commons/functor/generator/TestFilteredGenerator.java
URL: http://svn.apache.org/viewvc/commons/proper/functor/trunk/src/test/java/org/apache/commons/functor/generator/TestFilteredGenerator.java?rev=1344774&view=auto
==============================================================================
--- commons/proper/functor/trunk/src/test/java/org/apache/commons/functor/generator/TestFilteredGenerator.java (added)
+++ commons/proper/functor/trunk/src/test/java/org/apache/commons/functor/generator/TestFilteredGenerator.java Thu May 31 15:25:08 2012
@@ -0,0 +1,137 @@
+/*
+ * Licensed to the Apache Software Foundation (ASF) under one or more
+ * contributor license agreements.  See the NOTICE file distributed with
+ * this work for additional information regarding copyright ownership.
+ * The ASF licenses this file to You under the Apache License, Version 2.0
+ * (the "License"); you may not use this file except in compliance with
+ * the License.  You may obtain a copy of the License at
+ *
+ *      http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ */
+package org.apache.commons.functor.generator;
+
+import static org.junit.Assert.assertEquals;
+import static org.junit.Assert.assertFalse;
+import static org.junit.Assert.assertTrue;
+import static org.junit.Assert.fail;
+
+import java.util.ArrayList;
+import java.util.Arrays;
+import java.util.List;
+
+import org.apache.commons.functor.UnaryPredicate;
+import org.apache.commons.functor.UnaryProcedure;
+import org.apache.commons.functor.generator.util.IntegerRange;
+import org.junit.After;
+import org.junit.Before;
+import org.junit.Test;
+
+/**
+ * Tests the Filtered Generator class.
+ * @author Bruno P. Kinoshita (brunodepaulak@yahoo.com.br)
+ */
+public class TestFilteredGenerator
+{
+    
+    @Before
+    public void setUp() throws Exception {
+        wrappedGenerator = new IntegerRange(1, 10);
+        filteredGenerator = new FilteredGenerator<Integer>(wrappedGenerator, isEven);
+    }
+    
+    @After
+    public void tearDown() {
+        wrappedGenerator = null;
+        isEven = null;
+        filteredGenerator = null;
+    }
+
+    // Tests
+    // ------------------------------------------------------------------------
+    
+    @Test
+    public void testConstructorProhibitsNull() {
+        try {
+            new FilteredGenerator<Integer>(filteredGenerator, null);
+            fail("ExpectedNullPointerException");
+        } catch(IllegalArgumentException e) {
+            // expected
+        }
+        try {
+            new FilteredGenerator<Integer>(null, isEven);
+            fail("ExpectedNullPointerException");
+        } catch(IllegalArgumentException e) {
+            // expected
+        }
+        try {
+            new FilteredGenerator<Integer>(null, null);
+            fail("ExpectedNullPointerException");
+        } catch(IllegalArgumentException e) {
+            // expected
+        }
+    }
+    
+    @Test
+    public void testEquals() {
+        Generator<Integer> anotherGenerate = new FilteredGenerator<Integer>(new IntegerRange(1, 10), isEven);
+        assertEquals(filteredGenerator, filteredGenerator);
+        assertEquals(filteredGenerator, anotherGenerate);
+        assertTrue(!filteredGenerator.equals((FilteredGenerator<Integer>)null));
+        
+		Generator<Integer> aGenerateWithADifferentPredicate = new FilteredGenerator<Integer>(
+			new IntegerRange(1, 10), new UnaryPredicate<Integer>() {
+				public boolean test(Integer obj) {
+					return obj % 2 == 0;
+				}
+			});
+		
+        assertTrue(!filteredGenerator.equals(aGenerateWithADifferentPredicate));
+        
+        Generator<Integer> aGenerateWithADifferentWrapped = new FilteredGenerator<Integer>(new IntegerRange(1,11), isEven);
+        assertTrue(!filteredGenerator.equals(aGenerateWithADifferentWrapped));
+    }
+    
+    @Test
+    public void testHashcode() {
+        assertEquals(filteredGenerator.hashCode(), filteredGenerator.hashCode());
+        assertEquals(filteredGenerator.hashCode(), new FilteredGenerator<Integer>(wrappedGenerator, isEven).hashCode());
+        assertFalse(filteredGenerator.hashCode() == new FilteredGenerator<Integer>(wrappedGenerator, isEven) {
+            @Override
+            protected Generator<? extends Integer> getWrappedGenerator() {
+                return null;
+            }
+        }.hashCode());
+    }
+    
+    @Test
+    public void testGenerate() {
+    	final List<Integer> evenNumbers = new ArrayList<Integer>();
+    	filteredGenerator.run(new UnaryProcedure<Integer>() {
+    		public void run(Integer obj) {
+    			evenNumbers.add(obj);
+    		}
+		});
+    	assertEquals(4, evenNumbers.size());
+    	
+    	List<Integer> expected = Arrays.asList(2, 4, 6, 8);
+    	assertEquals(expected, evenNumbers);
+    }
+
+    // Attributes
+    // ------------------------------------------------------------------------
+    private Generator<Integer> wrappedGenerator = null;
+    private UnaryPredicate<Integer> isEven = new UnaryPredicate<Integer>()
+    {
+        public boolean test( Integer obj ) {
+            return obj % 2 == 0;
+        }
+    };
+    private Generator<Integer> filteredGenerator = null;
+    
+}

Propchange: commons/proper/functor/trunk/src/test/java/org/apache/commons/functor/generator/TestFilteredGenerator.java
------------------------------------------------------------------------------
    svn:eol-style = native

Propchange: commons/proper/functor/trunk/src/test/java/org/apache/commons/functor/generator/TestFilteredGenerator.java
------------------------------------------------------------------------------
    svn:keywords = Date Author Id Revision HeadURL

Propchange: commons/proper/functor/trunk/src/test/java/org/apache/commons/functor/generator/TestFilteredGenerator.java
------------------------------------------------------------------------------
    svn:mime-type = text/plain

Added: commons/proper/functor/trunk/src/test/java/org/apache/commons/functor/generator/TestGenerateUntil.java
URL: http://svn.apache.org/viewvc/commons/proper/functor/trunk/src/test/java/org/apache/commons/functor/generator/TestGenerateUntil.java?rev=1344774&view=auto
==============================================================================
--- commons/proper/functor/trunk/src/test/java/org/apache/commons/functor/generator/TestGenerateUntil.java (added)
+++ commons/proper/functor/trunk/src/test/java/org/apache/commons/functor/generator/TestGenerateUntil.java Thu May 31 15:25:08 2012
@@ -0,0 +1,119 @@
+/*
+ * Licensed to the Apache Software Foundation (ASF) under one or more
+ * contributor license agreements.  See the NOTICE file distributed with
+ * this work for additional information regarding copyright ownership.
+ * The ASF licenses this file to You under the Apache License, Version 2.0
+ * (the "License"); you may not use this file except in compliance with
+ * the License.  You may obtain a copy of the License at
+ *
+ *      http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ */
+package org.apache.commons.functor.generator;
+
+import static org.junit.Assert.assertEquals;
+import static org.junit.Assert.assertFalse;
+import static org.junit.Assert.assertTrue;
+import static org.junit.Assert.fail;
+
+import org.apache.commons.functor.UnaryPredicate;
+import org.apache.commons.functor.generator.util.IntegerRange;
+import org.junit.After;
+import org.junit.Before;
+import org.junit.Test;
+
+/**
+ * Tests the Generate Until class.
+ * @author Bruno P. Kinoshita (brunodepaulak@yahoo.com.br)
+ */
+public class TestGenerateUntil
+{
+    
+    @Before
+    public void setUp() throws Exception {
+        wrappedGenerator = new IntegerRange(1, 10);
+        generateUntil = new GenerateUntil<Integer>(wrappedGenerator, isMoreThanFive);
+    }
+    
+    @After
+    public void tearDown() {
+        wrappedGenerator = null;
+        isMoreThanFive = null;
+        generateUntil = null;
+    }
+
+    // Tests
+    // ------------------------------------------------------------------------
+    
+    @Test
+    public void testConstructorProhibitsNull() {
+        try {
+            new GenerateUntil<Integer>(generateUntil, null);
+            fail("ExpectedNullPointerException");
+        } catch(IllegalArgumentException e) {
+            // expected
+        }
+        try {
+            new GenerateUntil<Integer>(null, isMoreThanFive);
+            fail("ExpectedNullPointerException");
+        } catch(IllegalArgumentException e) {
+            // expected
+        }
+        try {
+            new GenerateUntil<Integer>(null, null);
+            fail("ExpectedNullPointerException");
+        } catch(IllegalArgumentException e) {
+            // expected
+        }
+    }
+    
+    @Test
+    public void testEquals() {
+        Generator<Integer> anotherGenerate = new GenerateUntil<Integer>(new IntegerRange(1, 10), isMoreThanFive);
+        assertEquals(generateUntil, generateUntil);
+        assertEquals(generateUntil, anotherGenerate);
+        assertTrue(!generateUntil.equals((GenerateUntil<Integer>)null));
+        
+		Generator<Integer> aGenerateWithADifferentPredicate = new GenerateUntil<Integer>(
+				new IntegerRange(1, 10), 
+				new UnaryPredicate<Integer>() {
+				public boolean test(Integer obj) {
+					return obj > FIVE;
+				}
+			});
+        assertTrue(!generateUntil.equals(aGenerateWithADifferentPredicate));
+        
+        Generator<Integer> aGenerateWithADifferentWrapped = new GenerateUntil<Integer>(new IntegerRange(1,2), isMoreThanFive);
+        assertTrue(!generateUntil.equals(aGenerateWithADifferentWrapped));
+    }
+    
+    @Test
+    public void testHashcode() {
+        assertEquals(generateUntil.hashCode(), generateUntil.hashCode());
+        assertEquals(generateUntil.hashCode(), new GenerateUntil<Integer>(wrappedGenerator, isMoreThanFive).hashCode());
+        assertFalse(generateUntil.hashCode() == new GenerateUntil<Integer>(wrappedGenerator, isMoreThanFive) {
+            @Override
+            protected Generator<? extends Integer> getWrappedGenerator()
+            {
+                return null;
+            }
+        }.hashCode());
+    }
+
+    // Attributes
+    // ------------------------------------------------------------------------
+    private static final Integer FIVE = new Integer(5);
+    
+    private Generator<Integer> wrappedGenerator = null;
+    private UnaryPredicate<Integer> isMoreThanFive = new UnaryPredicate<Integer>() {
+        public boolean test( Integer obj ) {
+            return obj > FIVE;
+        }
+    };
+    private Generator<Integer> generateUntil = null;
+}

Propchange: commons/proper/functor/trunk/src/test/java/org/apache/commons/functor/generator/TestGenerateUntil.java
------------------------------------------------------------------------------
    svn:eol-style = native

Propchange: commons/proper/functor/trunk/src/test/java/org/apache/commons/functor/generator/TestGenerateUntil.java
------------------------------------------------------------------------------
    svn:keywords = Date Author Id Revision HeadURL

Propchange: commons/proper/functor/trunk/src/test/java/org/apache/commons/functor/generator/TestGenerateUntil.java
------------------------------------------------------------------------------
    svn:mime-type = text/plain

Added: commons/proper/functor/trunk/src/test/java/org/apache/commons/functor/generator/TestGenerateWhile.java
URL: http://svn.apache.org/viewvc/commons/proper/functor/trunk/src/test/java/org/apache/commons/functor/generator/TestGenerateWhile.java?rev=1344774&view=auto
==============================================================================
--- commons/proper/functor/trunk/src/test/java/org/apache/commons/functor/generator/TestGenerateWhile.java (added)
+++ commons/proper/functor/trunk/src/test/java/org/apache/commons/functor/generator/TestGenerateWhile.java Thu May 31 15:25:08 2012
@@ -0,0 +1,120 @@
+/*
+ * Licensed to the Apache Software Foundation (ASF) under one or more
+ * contributor license agreements.  See the NOTICE file distributed with
+ * this work for additional information regarding copyright ownership.
+ * The ASF licenses this file to You under the Apache License, Version 2.0
+ * (the "License"); you may not use this file except in compliance with
+ * the License.  You may obtain a copy of the License at
+ *
+ *      http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ */
+package org.apache.commons.functor.generator;
+
+import static org.junit.Assert.assertEquals;
+import static org.junit.Assert.assertFalse;
+import static org.junit.Assert.assertTrue;
+import static org.junit.Assert.fail;
+
+import org.apache.commons.functor.UnaryPredicate;
+import org.apache.commons.functor.generator.util.IntegerRange;
+import org.junit.After;
+import org.junit.Before;
+import org.junit.Test;
+
+/**
+ * Tests the Generate While class.
+ * @author Bruno P. Kinoshita (brunodepaulak@yahoo.com.br)
+ */
+public class TestGenerateWhile
+{
+    
+    @Before
+    public void setUp() throws Exception {
+        wrappedGenerator = new IntegerRange(1, 10);
+        generateWhile = new GenerateWhile<Integer>(wrappedGenerator, isLessThanFive);
+    }
+    
+    @After
+    public void tearDown() {
+        wrappedGenerator = null;
+        isLessThanFive = null;
+        generateWhile = null;
+    }
+
+    // Tests
+    // ------------------------------------------------------------------------
+    
+    @Test
+    public void testConstructorProhibitsNull() {
+        try {
+            new GenerateWhile<Integer>(generateWhile, null);
+            fail("ExpectedNullPointerException");
+        } catch(IllegalArgumentException e) {
+            // expected
+        }
+        try {
+            new GenerateWhile<Integer>(null, isLessThanFive);
+            fail("ExpectedNullPointerException");
+        } catch(IllegalArgumentException e) {
+            // expected
+        }
+        try {
+            new GenerateWhile<Integer>(null, null);
+            fail("ExpectedNullPointerException");
+        } catch(IllegalArgumentException e) {
+            // expected
+        }
+    }
+    
+    @Test
+    public void testEquals() {
+        Generator<Integer> anotherGenerate = new GenerateWhile<Integer>(new IntegerRange(1, 10), isLessThanFive);
+        assertEquals(generateWhile, generateWhile);
+        assertEquals(generateWhile, anotherGenerate);
+        assertTrue(!generateWhile.equals((GenerateWhile<Integer>)null));
+        
+		Generator<Integer> aGenerateWithADifferentPredicate = new GenerateWhile<Integer>(
+			new IntegerRange(1, 10), new UnaryPredicate<Integer>() {
+				public boolean test(Integer obj) {
+					return obj < FIVE;
+				}
+			});
+		
+        assertTrue(!generateWhile.equals(aGenerateWithADifferentPredicate));
+        
+        Generator<Integer> aGenerateWithADifferentWrapped = new GenerateWhile<Integer>(new IntegerRange(1,11), isLessThanFive);
+        assertTrue(!generateWhile.equals(aGenerateWithADifferentWrapped));
+    }
+    
+    @Test
+    public void testHashcode() {
+        assertEquals(generateWhile.hashCode(), generateWhile.hashCode());
+        assertEquals(generateWhile.hashCode(), new GenerateWhile<Integer>(wrappedGenerator, isLessThanFive).hashCode());
+        assertFalse(generateWhile.hashCode() == new GenerateWhile<Integer>(wrappedGenerator, isLessThanFive) {
+            @Override
+            protected Generator<? extends Integer> getWrappedGenerator() {
+                return null;
+            }
+        }.hashCode());
+    }
+
+    // Attributes
+    // ------------------------------------------------------------------------
+    private static final Integer FIVE = new Integer(5);
+	
+    private Generator<Integer> wrappedGenerator = null;
+    private UnaryPredicate<Integer> isLessThanFive = new UnaryPredicate<Integer>()
+    {
+        public boolean test( Integer obj ) {
+            return obj < FIVE;
+        }
+    };
+    private Generator<Integer> generateWhile = null;
+    
+}

Propchange: commons/proper/functor/trunk/src/test/java/org/apache/commons/functor/generator/TestGenerateWhile.java
------------------------------------------------------------------------------
    svn:eol-style = native

Propchange: commons/proper/functor/trunk/src/test/java/org/apache/commons/functor/generator/TestGenerateWhile.java
------------------------------------------------------------------------------
    svn:keywords = Date Author Id Revision HeadURL

Propchange: commons/proper/functor/trunk/src/test/java/org/apache/commons/functor/generator/TestGenerateWhile.java
------------------------------------------------------------------------------
    svn:mime-type = text/plain

Modified: commons/proper/functor/trunk/src/test/java/org/apache/commons/functor/generator/TestIteratorToGeneratorAdapter.java
URL: http://svn.apache.org/viewvc/commons/proper/functor/trunk/src/test/java/org/apache/commons/functor/generator/TestIteratorToGeneratorAdapter.java?rev=1344774&r1=1344773&r2=1344774&view=diff
==============================================================================
--- commons/proper/functor/trunk/src/test/java/org/apache/commons/functor/generator/TestIteratorToGeneratorAdapter.java (original)
+++ commons/proper/functor/trunk/src/test/java/org/apache/commons/functor/generator/TestIteratorToGeneratorAdapter.java Thu May 31 15:25:08 2012
@@ -31,6 +31,7 @@ import org.junit.Before;
 import org.junit.Test;
 
 /**
+ * Tests the Iterator to Generator Adapter class.
  * @version $Revision$ $Date$
  * @author Rodney Waldhoff
  */

Added: commons/proper/functor/trunk/src/test/java/org/apache/commons/functor/generator/TestTransformedGenerator.java
URL: http://svn.apache.org/viewvc/commons/proper/functor/trunk/src/test/java/org/apache/commons/functor/generator/TestTransformedGenerator.java?rev=1344774&view=auto
==============================================================================
--- commons/proper/functor/trunk/src/test/java/org/apache/commons/functor/generator/TestTransformedGenerator.java (added)
+++ commons/proper/functor/trunk/src/test/java/org/apache/commons/functor/generator/TestTransformedGenerator.java Thu May 31 15:25:08 2012
@@ -0,0 +1,133 @@
+/*
+ * Licensed to the Apache Software Foundation (ASF) under one or more
+ * contributor license agreements.  See the NOTICE file distributed with
+ * this work for additional information regarding copyright ownership.
+ * The ASF licenses this file to You under the Apache License, Version 2.0
+ * (the "License"); you may not use this file except in compliance with
+ * the License.  You may obtain a copy of the License at
+ *
+ *      http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ */
+package org.apache.commons.functor.generator;
+
+import static org.junit.Assert.assertEquals;
+import static org.junit.Assert.assertTrue;
+import static org.junit.Assert.fail;
+
+import java.util.ArrayList;
+import java.util.Arrays;
+import java.util.List;
+
+import org.apache.commons.functor.UnaryFunction;
+import org.apache.commons.functor.UnaryProcedure;
+import org.apache.commons.functor.generator.util.IntegerRange;
+import org.junit.After;
+import org.junit.Before;
+import org.junit.Test;
+
+/**
+ * Tests the Transformed Generator class.
+ * @author Bruno P. Kinoshita (brunodepaulak@yahoo.com.br)
+ */
+public class TestTransformedGenerator
+{
+
+    @Before
+    public void setUp() throws Exception {
+        wrappedGenerator = new IntegerRange(1, 10);
+        sumsTwoGenerator = new TransformedGenerator<Integer, Integer>(wrappedGenerator, sumsTwo);
+    }
+    
+    @After
+    public void tearDown() {
+        wrappedGenerator = null;
+        sumsTwo = null;
+        sumsTwoGenerator = null;
+    }
+
+    // Tests
+    // ------------------------------------------------------------------------
+    
+    @Test
+    public void testConstructorProhibitsNull() {
+        try {
+            new TransformedGenerator<Integer, Integer>(null, sumsTwo);
+            fail("ExpectedNullPointerException");
+        } catch(IllegalArgumentException e) {
+            // expected
+        }
+        try {
+            new TransformedGenerator<Integer, Integer>(wrappedGenerator, null);
+            fail("ExpectedNullPointerException");
+        } catch(IllegalArgumentException e) {
+            // expected
+        }
+        try {
+            new TransformedGenerator<Integer, Integer>(null, null);
+            fail("ExpectedNullPointerException");
+        } catch(IllegalArgumentException e) {
+            // expected
+        }
+    }
+    
+    @Test
+    public void testEquals() {
+        TransformedGenerator<Integer, Integer> anotherTransformedGenerator = 
+                        new TransformedGenerator<Integer, Integer>(wrappedGenerator, sumsTwo);
+        assertEquals(sumsTwoGenerator, sumsTwoGenerator);
+        assertEquals(sumsTwoGenerator, anotherTransformedGenerator);
+        assertTrue(!sumsTwoGenerator.equals((TransformedGenerator<Integer, Integer>)null));
+
+        TransformedGenerator<Integer, Integer> aGenerateWithADifferentFunction =
+            new TransformedGenerator<Integer, Integer>(wrappedGenerator, new UnaryFunction<Integer, Integer>() {
+                public Integer evaluate( Integer obj ) {
+                    return obj;
+                }
+            });
+        assertTrue( !sumsTwoGenerator.equals(aGenerateWithADifferentFunction));
+        
+        TransformedGenerator<Integer, Integer> aTransformedGeneratorWithADifferentWrapped = 
+        		new TransformedGenerator<Integer, Integer>(new IntegerRange(1,2), sumsTwo);
+        assertTrue(!sumsTwoGenerator.equals(aTransformedGeneratorWithADifferentWrapped));
+    }
+    
+    @Test
+    public void testHashcode() {
+        assertEquals(sumsTwoGenerator.hashCode(), sumsTwoGenerator.hashCode());
+        assertEquals(sumsTwoGenerator.hashCode(), new TransformedGenerator<Integer, Integer>(wrappedGenerator, sumsTwo).hashCode());
+    }
+    
+    @Test
+    public void testGenerate() {
+        final List<Integer> doubledValues = new ArrayList<Integer>();
+        sumsTwoGenerator.run(new UnaryProcedure<Integer>() {
+            public void run( Integer obj ) {
+                doubledValues.add(obj);
+            }
+        });
+        
+        final List<Integer> expected = Arrays.asList(3, 4, 5, 6, 7, 8, 9, 10 , 11);
+        
+        assertEquals(9, doubledValues.size());
+        assertEquals(expected, doubledValues);
+    }
+
+    // Attributes
+    // ------------------------------------------------------------------------
+    private static final Integer TWO = new Integer(2);
+    
+    private Generator<Integer> wrappedGenerator = null;
+    private UnaryFunction<Integer, Integer> sumsTwo = new UnaryFunction<Integer, Integer>() {
+        public Integer evaluate( Integer obj ) {
+            return obj += TWO;
+        }
+    };
+    private TransformedGenerator<Integer, Integer> sumsTwoGenerator = null;
+    
+}

Propchange: commons/proper/functor/trunk/src/test/java/org/apache/commons/functor/generator/TestTransformedGenerator.java
------------------------------------------------------------------------------
    svn:eol-style = native

Propchange: commons/proper/functor/trunk/src/test/java/org/apache/commons/functor/generator/TestTransformedGenerator.java
------------------------------------------------------------------------------
    svn:keywords = Date Author Id Revision HeadURL

Propchange: commons/proper/functor/trunk/src/test/java/org/apache/commons/functor/generator/TestTransformedGenerator.java
------------------------------------------------------------------------------
    svn:mime-type = text/plain

Added: commons/proper/functor/trunk/src/test/java/org/apache/commons/functor/generator/TestUntilGenerate.java
URL: http://svn.apache.org/viewvc/commons/proper/functor/trunk/src/test/java/org/apache/commons/functor/generator/TestUntilGenerate.java?rev=1344774&view=auto
==============================================================================
--- commons/proper/functor/trunk/src/test/java/org/apache/commons/functor/generator/TestUntilGenerate.java (added)
+++ commons/proper/functor/trunk/src/test/java/org/apache/commons/functor/generator/TestUntilGenerate.java Thu May 31 15:25:08 2012
@@ -0,0 +1,137 @@
+/*
+ * Licensed to the Apache Software Foundation (ASF) under one or more
+ * contributor license agreements.  See the NOTICE file distributed with
+ * this work for additional information regarding copyright ownership.
+ * The ASF licenses this file to You under the Apache License, Version 2.0
+ * (the "License"); you may not use this file except in compliance with
+ * the License.  You may obtain a copy of the License at
+ *
+ *      http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ */
+package org.apache.commons.functor.generator;
+
+import static org.junit.Assert.assertEquals;
+import static org.junit.Assert.assertFalse;
+import static org.junit.Assert.assertTrue;
+import static org.junit.Assert.fail;
+
+import java.util.ArrayList;
+import java.util.Arrays;
+import java.util.List;
+
+import org.apache.commons.functor.UnaryPredicate;
+import org.apache.commons.functor.UnaryProcedure;
+import org.apache.commons.functor.generator.util.IntegerRange;
+import org.junit.After;
+import org.junit.Before;
+import org.junit.Test;
+
+/**
+ * Tests the Until Generate class.
+ * @author Bruno P. Kinoshita (brunodepaulak@yahoo.com.br)
+ */
+public class TestUntilGenerate
+{
+    
+    @Before
+    public void setUp() throws Exception {
+        wrappedGenerator = new IntegerRange(1, 10);
+        untilGenerate = new UntilGenerate<Integer>(isLessThanFive, wrappedGenerator);
+    }
+    
+    @After
+    public void tearDown() {
+        wrappedGenerator = null;
+        isLessThanFive = null;
+        untilGenerate = null;
+    }
+
+    // Tests
+    // ------------------------------------------------------------------------
+    
+    @Test
+    public void testConstructorProhibitsNull() {
+        try {
+            new UntilGenerate<Integer>(null, untilGenerate);
+            fail("ExpectedNullPointerException");
+        } catch(IllegalArgumentException e) {
+            // expected
+        }
+        try {
+            new UntilGenerate<Integer>(isLessThanFive, null);
+            fail("ExpectedNullPointerException");
+        } catch(IllegalArgumentException e) {
+            // expected
+        }
+        try {
+            new UntilGenerate<Integer>(null, null);
+            fail("ExpectedNullPointerException");
+        } catch(IllegalArgumentException e) {
+            // expected
+        }
+    }
+    
+    @Test
+    public void testEquals() {
+        Generator<Integer> anotherGenerate = new UntilGenerate<Integer>(isLessThanFive, new IntegerRange(1, 10));
+        assertEquals(untilGenerate, untilGenerate);
+        assertEquals(untilGenerate, anotherGenerate);
+        assertTrue(!untilGenerate.equals((UntilGenerate<Integer>)null));
+        
+		Generator<Integer> aGenerateWithADifferentPredicate = new UntilGenerate<Integer>(
+			new UnaryPredicate<Integer>() {
+				public boolean test(Integer obj) {
+					return obj < FIVE;
+				}
+			}, new IntegerRange(1, 10));
+        assertTrue(!untilGenerate.equals(aGenerateWithADifferentPredicate));
+        
+        Generator<Integer> aGenerateWithADifferentWrapped = new UntilGenerate<Integer>(isLessThanFive, new IntegerRange(1,2));
+        assertTrue(!untilGenerate.equals(aGenerateWithADifferentWrapped));
+    }
+    
+    @Test
+    public void testHashcode() {
+        assertEquals(untilGenerate.hashCode(), untilGenerate.hashCode());
+        assertEquals(untilGenerate.hashCode(), new UntilGenerate<Integer>(isLessThanFive, wrappedGenerator).hashCode());
+        assertFalse(untilGenerate.hashCode() == new UntilGenerate<Integer>(isLessThanFive, wrappedGenerator) {
+            @Override
+            protected Generator<? extends Integer> getWrappedGenerator()
+            {
+                return null;
+            }
+        }.hashCode());
+    }
+    
+    @Test
+    public void testGenerate() {
+        final List<Integer> numbersGreaterThanFive = new ArrayList<Integer>();
+        untilGenerate.run(new UnaryProcedure<Integer>() {
+            public void run( Integer obj ) {
+                numbersGreaterThanFive.add(obj);
+            }
+        });
+        assertEquals(5, numbersGreaterThanFive.size());
+        
+        final List<Integer> expected = Arrays.asList(5, 6, 7, 8, 9);
+        assertEquals(expected, numbersGreaterThanFive);
+    }
+
+    // Attributes
+    // ------------------------------------------------------------------------
+    private static final Integer FIVE = new Integer(5);
+    
+    private Generator<Integer> wrappedGenerator = null;
+    private UnaryPredicate<Integer> isLessThanFive = new UnaryPredicate<Integer>() {
+        public boolean test( Integer obj ) {
+            return obj < FIVE;
+        }
+    };
+    private Generator<Integer> untilGenerate = null;
+}

Propchange: commons/proper/functor/trunk/src/test/java/org/apache/commons/functor/generator/TestUntilGenerate.java
------------------------------------------------------------------------------
    svn:eol-style = native

Propchange: commons/proper/functor/trunk/src/test/java/org/apache/commons/functor/generator/TestUntilGenerate.java
------------------------------------------------------------------------------
    svn:keywords = Date Author Id Revision HeadURL

Propchange: commons/proper/functor/trunk/src/test/java/org/apache/commons/functor/generator/TestUntilGenerate.java
------------------------------------------------------------------------------
    svn:mime-type = text/plain

Added: commons/proper/functor/trunk/src/test/java/org/apache/commons/functor/generator/TestWhileGenerate.java
URL: http://svn.apache.org/viewvc/commons/proper/functor/trunk/src/test/java/org/apache/commons/functor/generator/TestWhileGenerate.java?rev=1344774&view=auto
==============================================================================
--- commons/proper/functor/trunk/src/test/java/org/apache/commons/functor/generator/TestWhileGenerate.java (added)
+++ commons/proper/functor/trunk/src/test/java/org/apache/commons/functor/generator/TestWhileGenerate.java Thu May 31 15:25:08 2012
@@ -0,0 +1,135 @@
+/*
+ * Licensed to the Apache Software Foundation (ASF) under one or more
+ * contributor license agreements.  See the NOTICE file distributed with
+ * this work for additional information regarding copyright ownership.
+ * The ASF licenses this file to You under the Apache License, Version 2.0
+ * (the "License"); you may not use this file except in compliance with
+ * the License.  You may obtain a copy of the License at
+ *
+ *      http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ */
+package org.apache.commons.functor.generator;
+
+import static org.junit.Assert.assertEquals;
+import static org.junit.Assert.assertFalse;
+import static org.junit.Assert.assertTrue;
+import static org.junit.Assert.fail;
+
+import java.util.ArrayList;
+import java.util.Arrays;
+import java.util.List;
+
+import org.apache.commons.functor.UnaryPredicate;
+import org.apache.commons.functor.UnaryProcedure;
+import org.apache.commons.functor.generator.util.IntegerRange;
+import org.junit.After;
+import org.junit.Before;
+import org.junit.Test;
+
+/**
+ * Tests the While Generate class.
+ * @author Bruno P. Kinoshita (brunodepaulak@yahoo.com.br)
+ */
+public class TestWhileGenerate {
+	
+    @Before
+    public void setUp() throws Exception {
+        wrappedGenerator = new IntegerRange(1, 10);
+        whileGenerate = new WhileGenerate<Integer>(isLessThanFive, wrappedGenerator);
+    }
+    
+    @After
+    public void tearDown() {
+        wrappedGenerator = null;
+        isLessThanFive = null;
+        whileGenerate = null;
+    }
+    
+    // Tests
+    // ------------------------------------------------------------------------
+    
+    @Test
+    public void testConstructorProhibitsNull() {
+        try {
+            new WhileGenerate<Integer>(null, whileGenerate);
+            fail("ExpectedNullPointerException");
+        } catch(IllegalArgumentException e) {
+            // expected
+        }
+        try {
+            new WhileGenerate<Integer>(isLessThanFive, null);
+            fail("ExpectedNullPointerException");
+        } catch(IllegalArgumentException e) {
+            // expected
+        }
+        try {
+            new WhileGenerate<Integer>(null, null);
+            fail("ExpectedNullPointerException");
+        } catch(IllegalArgumentException e) {
+            // expected
+        }
+    }
+    
+    @Test
+    public void testEquals() {
+        Generator<Integer> anotherGenerate = new WhileGenerate<Integer>(isLessThanFive, new IntegerRange(1, 10));
+        assertEquals(whileGenerate, whileGenerate);
+        assertEquals(whileGenerate, anotherGenerate);
+        assertTrue(!whileGenerate.equals((WhileGenerate<Integer>)null));
+        
+		Generator<Integer> aGenerateWithADifferentPredicate = new WhileGenerate<Integer>(
+			new UnaryPredicate<Integer>() {
+				public boolean test(Integer obj) {
+					return obj < FIVE;
+				}
+			}, new IntegerRange(1, 10));
+        assertTrue(!whileGenerate.equals(aGenerateWithADifferentPredicate));
+        
+        Generator<Integer> aGenerateWithADifferentWrapped = new WhileGenerate<Integer>(isLessThanFive, new IntegerRange(1,11));
+        assertTrue(!whileGenerate.equals(aGenerateWithADifferentWrapped));
+    }
+    
+    @Test
+    public void testHashcode() {
+        assertEquals(whileGenerate.hashCode(), whileGenerate.hashCode());
+        assertEquals(whileGenerate.hashCode(), new WhileGenerate<Integer>(isLessThanFive, wrappedGenerator).hashCode());
+        assertFalse(whileGenerate.hashCode() == new WhileGenerate<Integer>(isLessThanFive, wrappedGenerator) {
+            @Override
+            protected Generator<? extends Integer> getWrappedGenerator() {
+                return null;
+            }
+        }.hashCode());
+    }
+    
+    @Test
+    public void testGenerate() {
+        final List<Integer> numbersMinorThanFive = new ArrayList<Integer>();
+        whileGenerate.run(new UnaryProcedure<Integer>() {
+            public void run( Integer obj ) {
+                numbersMinorThanFive.add(obj);
+            }
+        });
+        assertEquals(4, numbersMinorThanFive.size());
+
+        List<Integer> expected = Arrays.asList(1, 2, 3, 4);
+        assertEquals(expected, numbersMinorThanFive);
+    }
+
+    // Attributes
+    // ------------------------------------------------------------------------
+	private static final Integer FIVE = new Integer(5);
+	
+    private Generator<Integer> wrappedGenerator = null;
+    private UnaryPredicate<Integer> isLessThanFive = new UnaryPredicate<Integer>() {
+        public boolean test( Integer obj ) {
+            return obj < FIVE;
+        }
+    };
+    private Generator<Integer> whileGenerate = null;
+}

Propchange: commons/proper/functor/trunk/src/test/java/org/apache/commons/functor/generator/TestWhileGenerate.java
------------------------------------------------------------------------------
    svn:eol-style = native

Propchange: commons/proper/functor/trunk/src/test/java/org/apache/commons/functor/generator/TestWhileGenerate.java
------------------------------------------------------------------------------
    svn:keywords = Date Author Id Revision HeadURL

Propchange: commons/proper/functor/trunk/src/test/java/org/apache/commons/functor/generator/TestWhileGenerate.java
------------------------------------------------------------------------------
    svn:mime-type = text/plain