From 9501c437855227e869d78ae104b5cb51cb120ba9 Mon Sep 17 00:00:00 2001 From: nguyennamthai Date: Mon, 31 May 2021 12:00:38 +0700 Subject: [PATCH] BAEL-4884 Add unit tests for map vs. flatMap (#10836) --- .../reactor/mapping/MappingUnitTest.java | 37 +++++++++++++++++++ 1 file changed, 37 insertions(+) create mode 100644 reactor-core/src/test/java/com/baeldung/reactor/mapping/MappingUnitTest.java diff --git a/reactor-core/src/test/java/com/baeldung/reactor/mapping/MappingUnitTest.java b/reactor-core/src/test/java/com/baeldung/reactor/mapping/MappingUnitTest.java new file mode 100644 index 0000000000..137bcbe021 --- /dev/null +++ b/reactor-core/src/test/java/com/baeldung/reactor/mapping/MappingUnitTest.java @@ -0,0 +1,37 @@ +package com.baeldung.reactor.mapping; + +import org.junit.Test; +import org.reactivestreams.Publisher; +import reactor.core.publisher.Flux; +import reactor.test.StepVerifier; + +import java.util.ArrayList; +import java.util.List; +import java.util.function.Function; + +import static org.assertj.core.api.Assertions.assertThat; + +public class MappingUnitTest { + @Test + public void givenInputStream_whenCallingTheMapOperator_thenItemsAreTransformed() { + Function mapper = String::toUpperCase; + Flux inFlux = Flux.just("baeldung", ".", "com"); + Flux outFlux = inFlux.map(mapper); + + StepVerifier.create(outFlux) + .expectNext("BAELDUNG", ".", "COM") + .expectComplete() + .verify(); + } + + @Test + public void givenInputStream_whenCallingTheFlatMapOperator_thenItemsAreFlatten() { + Function> mapper = s -> Flux.just(s.toUpperCase().split("")); + Flux inFlux = Flux.just("baeldung", ".", "com"); + Flux outFlux = inFlux.flatMap(mapper); + + List output = new ArrayList<>(); + outFlux.subscribe(output::add); + assertThat(output).containsExactlyInAnyOrder("B", "A", "E", "L", "D", "U", "N", "G", ".", "C", "O", "M"); + } +}