package com.baeldung.stream; import org.junit.Test; import java.util.List; import java.util.stream.Collectors; import java.util.stream.Stream; import static org.junit.Assert.assertEquals; 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); } private Stream insertInStream(Stream stream, T elem, int index) { List result = stream.collect(Collectors.toList()); result.add(index, elem); return result.stream(); } }