Author: kinow Date: Mon Jul 23 18:20:48 2012 New Revision: 1364742 URL: http://svn.apache.org/viewvc?rev=1364742&view=rev Log: [FUNCTOR-12] Tests for functor core collections.
Modified: commons/proper/functor/trunk/src/test/java/org/apache/commons/functor/core/collection/TestFilteredIterable.java commons/proper/functor/trunk/src/test/java/org/apache/commons/functor/core/collection/TestFilteredIterator.java commons/proper/functor/trunk/src/test/java/org/apache/commons/functor/core/collection/TestTransformedIterator.java Modified: commons/proper/functor/trunk/src/test/java/org/apache/commons/functor/core/collection/TestFilteredIterable.java URL: http://svn.apache.org/viewvc/commons/proper/functor/trunk/src/test/java/org/apache/commons/functor/core/collection/TestFilteredIterable.java?rev=1364742&r1=1364741&r2=1364742&view=diff ============================================================================== --- commons/proper/functor/trunk/src/test/java/org/apache/commons/functor/core/collection/TestFilteredIterable.java (original) +++ commons/proper/functor/trunk/src/test/java/org/apache/commons/functor/core/collection/TestFilteredIterable.java Mon Jul 23 18:20:48 2012 @@ -20,7 +20,6 @@ import static org.junit.Assert.assertEqu import static org.junit.Assert.assertFalse; import static org.junit.Assert.assertNull; import static org.junit.Assert.assertTrue; -import static org.junit.Assert.fail; import java.math.BigInteger; import java.util.ArrayList; @@ -90,11 +89,14 @@ public class TestFilteredIterable extend public void testSomePass() { Iterator<Integer> expected = evens.iterator(); - for (Integer i : FilteredIterable.of(list).retain(isEven)) { + FilteredIterable<Integer> filter = FilteredIterable.of(list); + + for (Integer i : filter.retain(isEven)) { assertTrue(expected.hasNext()); assertEquals(expected.next(), i); } assertFalse(expected.hasNext()); + assertEquals(filter,filter.retain(isEven)); } @Test @@ -120,7 +122,11 @@ public class TestFilteredIterable extend @Test public void testEmptyFilteredIterable() { - assertFalse(FilteredIterable.empty().iterator().hasNext()); + FilteredIterable<Integer> emptyFilter = FilteredIterable.empty(); + assertFalse(emptyFilter.iterator().hasNext()); + assertEquals(emptyFilter,emptyFilter.retain(isEven)); + assertEquals(emptyFilter,emptyFilter.retain(Integer.class)); + assertEquals(emptyFilter,emptyFilter.retain(Integer.class,Number.class)); } @Test @@ -143,53 +149,33 @@ public class TestFilteredIterable extend assertFalse(testing.hasNext()); } - @Test + @Test(expected=NoSuchElementException.class) public void testNextAfterEndOfList() { Iterator<Integer> testing = FilteredIterable.of(list).retain(isEven).iterator(); Iterator<Integer> expected = evens.iterator(); while (expected.hasNext()) { assertEquals(expected.next(), testing.next()); } - try { - testing.next(); - fail("Expected NoSuchElementException"); - } catch (NoSuchElementException e) { - // expected - } + testing.next(); } - @Test + @Test(expected=NoSuchElementException.class) public void testNextOnEmptyList() { - try { - FilteredIterable.empty().iterator().next(); - fail("Expected NoSuchElementException"); - } catch (NoSuchElementException e) { - // expected - } + FilteredIterable.empty().iterator().next(); } - @Test + @Test(expected=IllegalStateException.class) public void testRemoveBeforeNext() { Iterator<Integer> testing = FilteredIterable.of(list).retain(isEven).iterator(); - try { - testing.remove(); - fail("Expected IllegalStateException"); - } catch (IllegalStateException e) { - // expected - } + testing.remove(); } - @Test + @Test(expected=IllegalStateException.class) public void testRemoveAfterNext() { Iterator<Integer> testing = FilteredIterable.of(list).retain(isEven).iterator(); testing.next(); testing.remove(); - try { - testing.remove(); - fail("Expected IllegalStateException"); - } catch (IllegalStateException e) { - // expected - } + testing.remove(); } @Test @@ -228,6 +214,12 @@ public class TestFilteredIterable extend } @Test + public void testFilterWithFilteredIterableReturnsItself() { + FilteredIterable<Integer> filter = FilteredIterable.of(list); + assertEquals(filter,FilteredIterable.of(filter)); + } + + @Test public void testRetainOneType() { Iterable<Object> objects = Arrays.asList((Object) "foo", "bar", "baz", 2L, BigInteger.ZERO); Iterable<String> strings = FilteredIterable.of(objects).retain(String.class); @@ -271,33 +263,18 @@ public class TestFilteredIterable extend assertFalse(iterator.hasNext()); } - @Test + @Test(expected=NullPointerException.class) public void testRetainNullType() { - try { - FilteredIterable.of(Collections.singleton("foo")).retain((Class<?>) null); - fail("Expected NullPointerException"); - } catch (NullPointerException e) { - // okay - } + FilteredIterable.of(Collections.singleton("foo")).retain((Class<?>) null); } - @Test + @Test(expected=NullPointerException.class) public void testRetainNullTypes() { - try { - FilteredIterable.of(Collections.singleton("foo")).retain((Class<?>[]) null); - fail("Expected NullPointerException"); - } catch (NullPointerException e) { - // okay - } + FilteredIterable.of(Collections.singleton("foo")).retain((Class<?>[]) null); } - @Test + @Test(expected=NullPointerException.class) public void testRetainNullPredicate() { - try { - FilteredIterable.of(Collections.singleton("foo")).retain((UnaryPredicate<String>) null); - fail("Expected NullPointerException"); - } catch (NullPointerException e) { - // okay - } + FilteredIterable.of(Collections.singleton("foo")).retain((UnaryPredicate<String>) null); } } Modified: commons/proper/functor/trunk/src/test/java/org/apache/commons/functor/core/collection/TestFilteredIterator.java URL: http://svn.apache.org/viewvc/commons/proper/functor/trunk/src/test/java/org/apache/commons/functor/core/collection/TestFilteredIterator.java?rev=1364742&r1=1364741&r2=1364742&view=diff ============================================================================== --- commons/proper/functor/trunk/src/test/java/org/apache/commons/functor/core/collection/TestFilteredIterator.java (original) +++ commons/proper/functor/trunk/src/test/java/org/apache/commons/functor/core/collection/TestFilteredIterator.java Mon Jul 23 18:20:48 2012 @@ -20,9 +20,9 @@ import static org.junit.Assert.assertEqu import static org.junit.Assert.assertNull; import static org.junit.Assert.assertSame; import static org.junit.Assert.assertTrue; -import static org.junit.Assert.fail; import java.util.ArrayList; +import java.util.Arrays; import java.util.Iterator; import java.util.List; import java.util.NoSuchElementException; @@ -122,54 +122,34 @@ public class TestFilteredIterator extend assertTrue(!(testing.hasNext())); } - @Test + @Test(expected=NoSuchElementException.class) public void testNextAfterEndOfList() { Iterator<Integer> testing = new FilteredIterator<Integer>(list.iterator(),isEven); Iterator<Integer> expected = evens.iterator(); while(expected.hasNext()) { assertEquals(expected.next(),testing.next()); } - try { - testing.next(); - fail("ExpectedNoSuchElementException"); - } catch(NoSuchElementException e) { - // expected - } + testing.next(); } - @Test + @Test(expected=NoSuchElementException.class) public void testNextOnEmptyList() { Iterator<Integer> testing = new FilteredIterator<Integer>(new ArrayList<Integer>().iterator(),isEven); - try { - testing.next(); - fail("ExpectedNoSuchElementException"); - } catch(NoSuchElementException e) { - // expected - } + testing.next(); } - @Test + @Test(expected=IllegalStateException.class) public void testRemoveBeforeNext() { Iterator<Integer> testing = new FilteredIterator<Integer>(list.iterator(),isEven); - try { - testing.remove(); - fail("IllegalStateException"); - } catch(IllegalStateException e) { - // expected - } + testing.remove(); } - @Test + @Test(expected=IllegalStateException.class) public void testRemoveAfterNext() { Iterator<Integer> testing = new FilteredIterator<Integer>(list.iterator(),isEven); testing.next(); testing.remove(); - try { - testing.remove(); - fail("IllegalStateException"); - } catch(IllegalStateException e) { - // expected - } + testing.remove(); } @Test @@ -229,6 +209,26 @@ public class TestFilteredIterator extend public void testConstructorProhibitsNull3() { new FilteredIterator<Integer>(list.iterator(),null); } + + @Test + public void testEquals() { + Iterator<Integer> iter = list.iterator(); + FilteredIterator<Integer> t = new FilteredIterator<Integer>(iter, isEven); + UnaryPredicate<Integer> isOdd = new UnaryPredicate<Integer>() { + public boolean test(Integer obj) { + return obj.intValue() % 2 != 0; + } + }; + UnaryPredicate<Float> isOddFloat = new UnaryPredicate<Float>() { + public boolean test(Float obj) { + return obj.intValue() % 2 != 0; + } + }; + assertEquals(t,new FilteredIterator<Integer>(iter, isEven)); + assertTrue(!t.equals(new FilteredIterator<Integer>(list.iterator(), isOdd))); + assertTrue(!t.equals(new FilteredIterator<Float>(Arrays.asList(0.0f, 0.1f).iterator(), isOddFloat))); + assertTrue(!t.equals(null)); + } // Attributes // ------------------------------------------------------------------------ Modified: commons/proper/functor/trunk/src/test/java/org/apache/commons/functor/core/collection/TestTransformedIterator.java URL: http://svn.apache.org/viewvc/commons/proper/functor/trunk/src/test/java/org/apache/commons/functor/core/collection/TestTransformedIterator.java?rev=1364742&r1=1364741&r2=1364742&view=diff ============================================================================== --- commons/proper/functor/trunk/src/test/java/org/apache/commons/functor/core/collection/TestTransformedIterator.java (original) +++ commons/proper/functor/trunk/src/test/java/org/apache/commons/functor/core/collection/TestTransformedIterator.java Mon Jul 23 18:20:48 2012 @@ -17,12 +17,13 @@ package org.apache.commons.functor.core.collection; import static org.junit.Assert.assertEquals; +import static org.junit.Assert.assertNotSame; import static org.junit.Assert.assertNull; import static org.junit.Assert.assertSame; import static org.junit.Assert.assertTrue; -import static org.junit.Assert.fail; import java.util.ArrayList; +import java.util.Arrays; import java.util.Collections; import java.util.Iterator; import java.util.List; @@ -96,54 +97,34 @@ public class TestTransformedIterator ext assertTrue(!(testing.hasNext())); } - @Test + @Test(expected=NoSuchElementException.class) public void testNextAfterEndOfList() { Iterator<Integer> testing = new TransformedIterator<Integer, Integer>(list.iterator(),negate); Iterator<Integer> expected = negatives.iterator(); while(expected.hasNext()) { assertEquals(expected.next(),testing.next()); } - try { - testing.next(); - fail("ExpectedNoSuchElementException"); - } catch(NoSuchElementException e) { - // expected - } + testing.next(); } - @Test + @Test(expected=NoSuchElementException.class) public void testNextOnEmptyList() { Iterator<Integer> testing = new TransformedIterator<Integer, Integer>(Collections.<Integer>emptyList().iterator(),negate); - try { - testing.next(); - fail("ExpectedNoSuchElementException"); - } catch(NoSuchElementException e) { - // expected - } + testing.next(); } - @Test + @Test(expected=IllegalStateException.class) public void testRemoveBeforeNext() { Iterator<Integer> testing = new TransformedIterator<Integer, Integer>(list.iterator(),negate); - try { - testing.remove(); - fail("IllegalStateException"); - } catch(IllegalStateException e) { - // expected - } + testing.remove(); } - @Test + @Test(expected=IllegalStateException.class) public void testRemoveAfterNext() { Iterator<Integer> testing = new TransformedIterator<Integer, Integer>(list.iterator(),negate); testing.next(); testing.remove(); - try { - testing.remove(); - fail("IllegalStateException"); - } catch(IllegalStateException e) { - // expected - } + testing.remove(); } @Test @@ -172,11 +153,22 @@ public class TestTransformedIterator ext } @Test - public void testTransformWithNullPredicateReturnsIdentity() { + public void testTransformWithNullFunctionReturnsIdentity() { Iterator<Integer> iter = list.iterator(); assertSame(iter,TransformedIterator.maybeTransform(iter,null)); } + @Test + public void testTransformWithNullIteratorAndNullFunctionReturnsNull() { + assertSame(null,TransformedIterator.maybeTransform(null,null)); + } + + @Test + public void testTransform() { + Iterator<Integer> iter = list.iterator(); + assertNotSame(iter,TransformedIterator.maybeTransform(iter, negate)); + } + @Test(expected = NullPointerException.class) public void testConstructorProhibitsNull() { new TransformedIterator<Integer, Integer>(null, null); @@ -192,6 +184,21 @@ public class TestTransformedIterator ext new TransformedIterator<Integer, Integer>(list.iterator(), null); } + @Test + public void testEquals() { + Iterator<Integer> iter = list.iterator(); + TransformedIterator<Integer, Integer> t = new TransformedIterator<Integer, Integer>(iter, negate); + UnaryFunction<Number, Double> negateDouble = new UnaryFunction<Number, Double>() { + public Double evaluate(Number obj) { + return new Double(obj.intValue() * -1); + } + }; + assertEquals(t,new TransformedIterator<Integer, Integer>(iter, negate)); + assertTrue(!t.equals(new TransformedIterator<Integer, Double>(list.iterator(), negateDouble))); + assertTrue(!t.equals(new TransformedIterator<Float, Integer>(Arrays.asList(0.0f, 0.1f).iterator(), negate))); + assertTrue(!t.equals(null)); + } + // Attributes // ------------------------------------------------------------------------ private List<Integer> list = null;