package com.codepoetics.protonpack; import org.junit.Test; import java.util.Arrays; import java.util.Collections; import java.util.List; import java.util.Optional; import java.util.stream.Collectors; import java.util.stream.Stream; import static org.junit.Assert.assertEquals; public class OptionalTest { @Test public void stream_of_nonempty_optionals() { Stream<Integer> numbers = Stream.of(123, 456); Stream<Integer> results = numbers.flatMap(n -> StreamUtils.stream(maybeAdd3(n))); List<Integer> resultList = results.collect(Collectors.toList()); assertEquals(Arrays.asList(126, 459), resultList); } @Test public void stream_of_empty_optionals() { Stream<String> names = Stream.of("John", "Susan"); Stream<String> transformed = names.flatMap(s -> StreamUtils.stream(Optional.empty())); List<String> results = transformed.collect(Collectors.toList()); assertEquals(Collections.emptyList(), results); } private Optional<Integer> maybeAdd3(final Integer number) { return Optional.of(number + 3); } }