From 69facba0429523338403425902e9c5f288a12b18 Mon Sep 17 00:00:00 2001 From: Anatolii Papenko Date: Sat, 16 May 2020 13:12:13 -0500 Subject: [PATCH 1/2] Fix #publishOnParallelThreadSchedulerTest This test was testing nothing (was comparing that currentThread != null). Switched to actually verifying that publishOn was used. --- ...art3MultithreadingParallelizationTest.java | 30 ++++++++++++------- 1 file changed, 19 insertions(+), 11 deletions(-) diff --git a/work/chapter-1/src/test/java/com/example/part_3/Part3MultithreadingParallelizationTest.java b/work/chapter-1/src/test/java/com/example/part_3/Part3MultithreadingParallelizationTest.java index ffe5bee..6bedb04 100644 --- a/work/chapter-1/src/test/java/com/example/part_3/Part3MultithreadingParallelizationTest.java +++ b/work/chapter-1/src/test/java/com/example/part_3/Part3MultithreadingParallelizationTest.java @@ -14,19 +14,27 @@ public class Part3MultithreadingParallelizationTest { @Test public void publishOnParallelThreadSchedulerTest() { - Thread[] threads = new Thread[2]; + AtomicReference subscribeOnThread = new AtomicReference<>(); + AtomicReference publishOnThread = new AtomicReference<>(); StepVerifier - .create(publishOnParallelThreadScheduler(Flux.defer(() -> { - threads[0] = Thread.currentThread(); - return Flux.just("Hello"); - }))) - .expectSubscription() - .expectNext("Hello") - .verifyComplete(); + .create(publishOnParallelThreadScheduler(Flux.defer(() -> { + subscribeOnThread.set(Thread.currentThread()); + return Flux.just("Hello"); + })).map(value -> { + publishOnThread.set(Thread.currentThread()); + return value; + })) + .expectSubscription() + .expectNext("Hello") + .verifyComplete(); - Assert.assertTrue( - "Expected execution on different Threads", - !threads[0].equals(threads[1]) + Assert.assertEquals( + "Expected subscribeOn in the same Thread", + subscribeOnThread.get(), Thread.currentThread() + ); + Assert.assertNotEquals( + "Expected publishOn different Threads", + publishOnThread.get(), Thread.currentThread() ); } From 5daaf67b24ba2df75a691fc6dd69895e0458e721 Mon Sep 17 00:00:00 2001 From: Anatolii Papenko Date: Sat, 16 May 2020 13:13:02 -0500 Subject: [PATCH 2/2] Add required import --- .../example/part_3/Part3MultithreadingParallelizationTest.java | 1 + 1 file changed, 1 insertion(+) diff --git a/work/chapter-1/src/test/java/com/example/part_3/Part3MultithreadingParallelizationTest.java b/work/chapter-1/src/test/java/com/example/part_3/Part3MultithreadingParallelizationTest.java index 6bedb04..3d80f8b 100644 --- a/work/chapter-1/src/test/java/com/example/part_3/Part3MultithreadingParallelizationTest.java +++ b/work/chapter-1/src/test/java/com/example/part_3/Part3MultithreadingParallelizationTest.java @@ -7,6 +7,7 @@ import java.time.Duration; import java.util.concurrent.Callable; +import java.util.concurrent.atomic.AtomicReference; import static com.example.part_3.Part3MultithreadingParallelization.*;