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"); + } +}