diff --git a/core-java/src/test/java/com/baeldung/stream/StreamAddUnitTest.java b/core-java/src/test/java/com/baeldung/stream/StreamAddUnitTest.java new file mode 100644 index 0000000000..8176d6a60c --- /dev/null +++ b/core-java/src/test/java/com/baeldung/stream/StreamAddUnitTest.java @@ -0,0 +1,46 @@ +package com.baeldung.stream; + +import java.util.List; +import java.util.stream.Collectors; +import java.util.stream.Stream; +import static org.junit.Assert.assertEquals; +import org.junit.Test; + +public class StreamAddUnitTest { + + @Test + public void givenStream_whenAppendingObject_thenAppended() { + Stream anStream = Stream.of("a", "b", "c", "d", "e"); + + Stream newStream = Stream.concat(anStream, Stream.of("A")); + + List resultList = newStream.collect(Collectors.toList()); + assertEquals(resultList.get(resultList.size() - 1), "A"); + } + + @Test + public void givenStream_whenPrependingObject_thenPrepended() { + Stream anStream = Stream.of(1, 2, 3, 4, 5); + + Stream newStream = Stream.concat(Stream.of(99), anStream); + + assertEquals(newStream.findFirst() + .get(), (Integer) 99); + } + + @Test + public void givenStream_whenInsertingObject_thenInserted() { + Stream anStream = Stream.of(1.1, 2.2, 3.3); + + Stream newStream = insertInStream(anStream, 9.9, 3); + + List resultList = newStream.collect(Collectors.toList()); + assertEquals(resultList.get(3), (Double) 9.9); + } + + public Stream insertInStream(Stream stream, T elem, int index) { + List result = stream.collect(Collectors.toList()); + result.add(index, elem); + return result.stream(); + } +}