Skip to content

Commit

Permalink
Add shouldCollectEagerlyInCompletionOrder test
Browse files Browse the repository at this point in the history
  • Loading branch information
pivovarit committed Feb 11, 2021
1 parent 431f48d commit 83c883b
Showing 1 changed file with 24 additions and 0 deletions.
24 changes: 24 additions & 0 deletions src/test/java/com/pivovarit/collectors/FunctionalTest.java
Original file line number Diff line number Diff line change
@@ -1,6 +1,7 @@
package com.pivovarit.collectors;

import com.pivovarit.collectors.ParallelCollectors.Batching;
import org.awaitility.Awaitility;
import org.junit.jupiter.api.DynamicTest;
import org.junit.jupiter.api.Test;
import org.junit.jupiter.api.TestFactory;
Expand All @@ -24,6 +25,7 @@
import java.util.concurrent.LinkedBlockingQueue;
import java.util.concurrent.RejectedExecutionException;
import java.util.concurrent.ThreadPoolExecutor;
import java.util.concurrent.atomic.AtomicBoolean;
import java.util.concurrent.atomic.AtomicInteger;
import java.util.concurrent.atomic.AtomicLong;
import java.util.concurrent.atomic.LongAdder;
Expand Down Expand Up @@ -111,6 +113,28 @@ void shouldCollectInCompletionOrder() {
assertThat(result).isSorted();
}

@Test
void shouldCollectEagerlyInCompletionOrder() {
// given
executor = threadPoolExecutor(4);
AtomicBoolean result = new AtomicBoolean(false);
CompletableFuture.runAsync(() -> {
Stream.of(1, 10000, 0, 0)
.collect(parallelToStream(i -> returnWithDelay(i, ofMillis(i)), executor, 2))
.peek(i -> {
if (i == 0) {
result.set(true);
}
})
.limit(2)
.collect(toList());
});

Awaitility.await()
.atMost(1, SECONDS)
.until(result::get);
}

@Test
void shouldExecuteEagerlyOnProvidedThreadPool() {
ExecutorService executor = Executors.newFixedThreadPool(2);
Expand Down

0 comments on commit 83c883b

Please sign in to comment.