ViewVC Help
View File | Revision Log | Show Annotations | Download File | Root Listing
root/jsr166/jsr166/src/test/tck/CompletableFutureTest.java
(Generate patch)

Comparing jsr166/src/test/tck/CompletableFutureTest.java (file contents):
Revision 1.42 by jsr166, Mon Jun 2 02:19:23 2014 UTC vs.
Revision 1.43 by jsr166, Mon Jun 2 04:13:54 2014 UTC

# Line 947 | Line 947 | public class CompletableFutureTest exten
947       * of sources
948       */
949      public void testThenCombine_normalCompletion1() {
950 +        for (boolean createdIncomplete : new boolean[] { true, false })
951 +        for (boolean fFirst : new boolean[] { true, false })
952          for (ExecutionMode m : ExecutionMode.values())
953          for (Integer v1 : new Integer[] { 1, null })
954          for (Integer v2 : new Integer[] { 2, null }) {
# Line 954 | Line 956 | public class CompletableFutureTest exten
956          final CompletableFuture<Integer> f = new CompletableFuture<>();
957          final CompletableFuture<Integer> g = new CompletableFuture<>();
958          final SubtractFunction r = new SubtractFunction();
959 <        final CompletableFuture<Integer> h = m.thenCombine(f, g, r);
959 >        CompletableFuture<Integer> h = null;
960 >        if (createdIncomplete) h = m.thenCombine(f, g, r);
961  
962 <        f.complete(v1);
963 <        checkIncomplete(h);
962 >        if (fFirst)
963 >            f.complete(v1);
964 >        else
965 >            g.complete(v2);
966 >        if (createdIncomplete) checkIncomplete(h);
967          assertEquals(r.invocationCount, 0);
968 <        g.complete(v2);
969 <
970 <        checkCompletedNormally(h, subtract(v1, v2));
971 <        checkCompletedNormally(f, v1);
972 <        checkCompletedNormally(g, v2);
967 <        assertEquals(r.invocationCount, 1);
968 <        }
969 <    }
970 <
971 <    public void testThenCombine_normalCompletion2() {
972 <        for (ExecutionMode m : ExecutionMode.values())
973 <        for (Integer v1 : new Integer[] { 1, null })
974 <        for (Integer v2 : new Integer[] { 2, null }) {
975 <
976 <        final CompletableFuture<Integer> f = new CompletableFuture<>();
977 <        final CompletableFuture<Integer> g = new CompletableFuture<>();
978 <        final SubtractFunction r = new SubtractFunction();
979 <        final CompletableFuture<Integer> h = m.thenCombine(f, g, r);
980 <
981 <        g.complete(v2);
982 <        checkIncomplete(h);
983 <        assertEquals(r.invocationCount, 0);
984 <        f.complete(v1);
985 <
986 <        checkCompletedNormally(h, subtract(v1, v2));
987 <        checkCompletedNormally(f, v1);
988 <        checkCompletedNormally(g, v2);
989 <        assertEquals(r.invocationCount, 1);
990 <        }
991 <    }
992 <
993 <    public void testThenCombine_normalCompletion3() {
994 <        for (ExecutionMode m : ExecutionMode.values())
995 <        for (Integer v1 : new Integer[] { 1, null })
996 <        for (Integer v2 : new Integer[] { 2, null }) {
997 <
998 <        final CompletableFuture<Integer> f = new CompletableFuture<>();
999 <        final CompletableFuture<Integer> g = new CompletableFuture<>();
1000 <        final SubtractFunction r = new SubtractFunction();
1001 <
1002 <        g.complete(v2);
1003 <        f.complete(v1);
1004 <        final CompletableFuture<Integer> h = m.thenCombine(f, g, r);
1005 <
1006 <        checkCompletedNormally(h, subtract(v1, v2));
1007 <        checkCompletedNormally(f, v1);
1008 <        checkCompletedNormally(g, v2);
1009 <        assertEquals(r.invocationCount, 1);
1010 <        }
1011 <    }
1012 <
1013 <    public void testThenCombine_normalCompletion4() {
1014 <        for (ExecutionMode m : ExecutionMode.values())
1015 <        for (Integer v1 : new Integer[] { 1, null })
1016 <        for (Integer v2 : new Integer[] { 2, null }) {
1017 <
1018 <        final CompletableFuture<Integer> f = new CompletableFuture<>();
1019 <        final CompletableFuture<Integer> g = new CompletableFuture<>();
1020 <        final SubtractFunction r = new SubtractFunction();
1021 <
1022 <        f.complete(v1);
1023 <        g.complete(v2);
1024 <        final CompletableFuture<Integer> h = m.thenCombine(f, g, r);
968 >        if (!fFirst)
969 >            f.complete(v1);
970 >        else
971 >            g.complete(v2);
972 >        if (!createdIncomplete) h = m.thenCombine(f, g, r);
973  
974          checkCompletedNormally(h, subtract(v1, v2));
975          checkCompletedNormally(f, v1);

Diff Legend

Removed lines
+ Added lines
< Changed lines
> Changed lines