diff --git a/akka-actor-tests/src/test/java/akka/dispatch/JavaFutureTests.java b/akka-actor-tests/src/test/java/akka/dispatch/JavaFutureTests.java index cdec7f5631..157d6ca6d6 100644 --- a/akka-actor-tests/src/test/java/akka/dispatch/JavaFutureTests.java +++ b/akka-actor-tests/src/test/java/akka/dispatch/JavaFutureTests.java @@ -5,12 +5,11 @@ import static org.junit.Assert.*; import java.util.concurrent.Callable; import java.util.LinkedList; import akka.japi.Function; +import akka.japi.Function2; import akka.japi.Procedure; import scala.Some; import scala.Right; -import static akka.dispatch.Futures.future; -import static akka.dispatch.Futures.traverse; -import static akka.dispatch.Futures.sequence; +import static akka.dispatch.Futures.*; public class JavaFutureTests { @@ -49,4 +48,70 @@ public class JavaFutureTests { assertEquals(futureList.get(), listExpected); } + // TODO: Improve this test, perhaps with an Actor + @Test public void foldForJavaApiMustWork() { + LinkedList> listFutures = new LinkedList>(); + StringBuilder expected = new StringBuilder(); + + for (int i = 0; i < 10; i++) { + expected.append("test"); + listFutures.add(future(new Callable() { + public String call() { + return "test"; + } + })); + } + + Future result = fold("", 15000,listFutures, new Function2(){ + public String apply(String r, String t) { + return r + t; + } + }); + + assertEquals(result.get(), expected.toString()); + } + + @Test public void reduceForJavaApiMustWork() { + LinkedList> listFutures = new LinkedList>(); + StringBuilder expected = new StringBuilder(); + + for (int i = 0; i < 10; i++) { + expected.append("test"); + listFutures.add(future(new Callable() { + public String call() { + return "test"; + } + })); + } + + Future result = reduce(listFutures, 15000, new Function2(){ + public String apply(String r, String t) { + return r + t; + } + }); + + assertEquals(result.get(), expected.toString()); + } + + @Test public void traverseForJavaApiMustWork() { + LinkedList listStrings = new LinkedList(); + LinkedList expectedStrings = new LinkedList(); + + for (int i = 0; i < 10; i++) { + expectedStrings.add("TEST"); + listStrings.add("test"); + } + + Future> result = traverse(listStrings, new Function>(){ + public Future apply(final String r) { + return future(new Callable() { + public String call() { + return r.toUpperCase(); + } + }); + } + }); + + assertEquals(result.get(), expectedStrings); + } }