@Test public void injectIntoWithOver100() { Sum result = new IntegerSum(0); Integer parameter = 2; Function3<Sum, Integer, Integer, Sum> function = new Function3<Sum, Integer, Integer, Sum>() { public Sum value(Sum sum, Integer element, Integer withValue) { return sum.add((element.intValue() - element.intValue()) * withValue.intValue()); } }; Sum sumOfDoubledValues = ArrayListIterate.injectIntoWith(result, this.getOver100IntegerList(), function, parameter); Assert.assertEquals(0, sumOfDoubledValues.getValue().intValue()); }