From ba65e099896cce714f3616329971d58c47dfa99d Mon Sep 17 00:00:00 2001 From: gindex Date: Sat, 28 Mar 2020 19:01:54 +0100 Subject: [PATCH 1/3] Add blocking and non-blocking mono examples Add article reference Fix url --- reactor-core/README.md | 1 + .../java/com/baeldung/mono/MonoUnitTest.java | 39 +++++++++++++++++++ 2 files changed, 40 insertions(+) create mode 100644 reactor-core/src/test/java/com/baeldung/mono/MonoUnitTest.java diff --git a/reactor-core/README.md b/reactor-core/README.md index e3cca35f86..f2dbd77981 100644 --- a/reactor-core/README.md +++ b/reactor-core/README.md @@ -7,3 +7,4 @@ This module contains articles about Reactor Core. - [Intro To Reactor Core](https://www.baeldung.com/reactor-core) - [Combining Publishers in Project Reactor](https://www.baeldung.com/reactor-combine-streams) - [Programmatically Creating Sequences with Project Reactor](https://www.baeldung.com/flux-sequences-reactor) +- [How To Get String From Mono In Reactive Java](http://baeldung.com/string-from-mono/) \ No newline at end of file diff --git a/reactor-core/src/test/java/com/baeldung/mono/MonoUnitTest.java b/reactor-core/src/test/java/com/baeldung/mono/MonoUnitTest.java new file mode 100644 index 0000000000..b493cd1159 --- /dev/null +++ b/reactor-core/src/test/java/com/baeldung/mono/MonoUnitTest.java @@ -0,0 +1,39 @@ +package com.baeldung.mono; + +import org.junit.Test; +import reactor.core.publisher.Mono; + +import java.time.Duration; +import java.time.temporal.ChronoUnit; +import java.util.Optional; + +import static org.junit.Assert.assertEquals; + +public class MonoUnitTest { + @Test + public void whenMonoProducesString_thenBlockAndConsume() { + String expected = "hello world!"; + + String result1 = Mono.just(expected).block(); + assertEquals(expected, result1); + + String result2 = Mono.just(expected).block(Duration.of(1000, ChronoUnit.MILLIS)); + assertEquals(expected, result2); + + Optional result3 = Mono.empty().blockOptional(); + assertEquals(Optional.empty(), result3); + } + + @Test + public void whenMonoProducesString_thenConsumeNonBlocking() { + String expected = "hello world!"; + + Mono.just(expected) + .doOnNext(result -> assertEquals(expected, result)) + .subscribe(); + + Mono.just(expected) + .subscribe(result -> assertEquals(expected, result)); + + } +} From 5a1f7ffea8d617a80d38234bb0f097de49747aed Mon Sep 17 00:00:00 2001 From: gindex Date: Fri, 10 Apr 2020 13:36:51 +0200 Subject: [PATCH 2/3] Add blockingHelloWorld() --- .../java/com/baeldung/mono/MonoUnitTest.java | 24 +++++++++++-------- 1 file changed, 14 insertions(+), 10 deletions(-) diff --git a/reactor-core/src/test/java/com/baeldung/mono/MonoUnitTest.java b/reactor-core/src/test/java/com/baeldung/mono/MonoUnitTest.java index b493cd1159..f9e67b0a2f 100644 --- a/reactor-core/src/test/java/com/baeldung/mono/MonoUnitTest.java +++ b/reactor-core/src/test/java/com/baeldung/mono/MonoUnitTest.java @@ -12,13 +12,13 @@ import static org.junit.Assert.assertEquals; public class MonoUnitTest { @Test public void whenMonoProducesString_thenBlockAndConsume() { - String expected = "hello world!"; - String result1 = Mono.just(expected).block(); - assertEquals(expected, result1); + String result1 = blockingHelloWorld().block(); + assertEquals("Hello world!", result1); - String result2 = Mono.just(expected).block(Duration.of(1000, ChronoUnit.MILLIS)); - assertEquals(expected, result2); + String result2 = blockingHelloWorld() + .block(Duration.of(1000, ChronoUnit.MILLIS)); + assertEquals("Hello world!", result2); Optional result3 = Mono.empty().blockOptional(); assertEquals(Optional.empty(), result3); @@ -26,14 +26,18 @@ public class MonoUnitTest { @Test public void whenMonoProducesString_thenConsumeNonBlocking() { - String expected = "hello world!"; - Mono.just(expected) - .doOnNext(result -> assertEquals(expected, result)) + blockingHelloWorld() + .doOnNext(result -> assertEquals("Hello world!", result)) .subscribe(); - Mono.just(expected) - .subscribe(result -> assertEquals(expected, result)); + blockingHelloWorld() + .subscribe(result -> assertEquals("Hello world!", result)); } + + private Mono blockingHelloWorld() { + // blocking + return Mono.just("Hello world!"); + } } From a0dd4a537db8332ab8790b0ee0dca3e7a42c3e5f Mon Sep 17 00:00:00 2001 From: gindex Date: Sun, 12 Apr 2020 13:01:52 +0200 Subject: [PATCH 3/3] Revert README.md to 1acadab1 --- reactor-core/README.md | 1 - 1 file changed, 1 deletion(-) diff --git a/reactor-core/README.md b/reactor-core/README.md index f2dbd77981..e3cca35f86 100644 --- a/reactor-core/README.md +++ b/reactor-core/README.md @@ -7,4 +7,3 @@ This module contains articles about Reactor Core. - [Intro To Reactor Core](https://www.baeldung.com/reactor-core) - [Combining Publishers in Project Reactor](https://www.baeldung.com/reactor-combine-streams) - [Programmatically Creating Sequences with Project Reactor](https://www.baeldung.com/flux-sequences-reactor) -- [How To Get String From Mono In Reactive Java](http://baeldung.com/string-from-mono/) \ No newline at end of file