package com.baeldung.stream; import com.codepoetics.protonpack.Indexed; import org.junit.Test; import java.util.Arrays; import java.util.List; import static org.junit.Assert.assertEquals; public class StreamIndicesUnitTest { @Test public void whenCalled_thenReturnListOfEvenIndexedStrings() { String[] names = {"Afrim", "Bashkim", "Besim", "Lulzim", "Durim", "Shpetim"}; List expectedResult = Arrays.asList("Afrim", "Besim", "Durim"); List actualResult = StreamIndices.getEvenIndexedStrings(names); assertEquals(expectedResult, actualResult); } @Test public void whenCalled_thenReturnListOfEvenIndexedStringsVersionTwo() { String[] names = {"Afrim", "Bashkim", "Besim", "Lulzim", "Durim", "Shpetim"}; List expectedResult = Arrays.asList("Afrim", "Besim", "Durim"); List actualResult = StreamIndices.getEvenIndexedStrings(names); assertEquals(expectedResult, actualResult); } @Test public void whenCalled_thenReturnListOfOddStrings() { String[] names = {"Afrim", "Bashkim", "Besim", "Lulzim", "Durim", "Shpetim"}; List expectedResult = Arrays.asList("Bashkim", "Lulzim", "Shpetim"); List actualResult = StreamIndices.getOddIndexedStrings(names); assertEquals(expectedResult, actualResult); } @Test public void givenList_whenCalled_thenReturnListOfEvenIndexedStrings() { List names = Arrays.asList("Afrim", "Bashkim", "Besim", "Lulzim", "Durim", "Shpetim"); List> expectedResult = Arrays .asList(Indexed.index(0, "Afrim"), Indexed.index(2, "Besim"), Indexed .index(4, "Durim")); List> actualResult = StreamIndices.getEvenIndexedStrings(names); assertEquals(expectedResult, actualResult); } @Test public void givenList_whenCalled_thenReturnListOfOddIndexedStrings() { List names = Arrays.asList("Afrim", "Bashkim", "Besim", "Lulzim", "Durim", "Shpetim"); List> expectedResult = Arrays .asList(Indexed.index(1, "Bashkim"), Indexed.index(3, "Lulzim"), Indexed .index(5, "Shpetim")); List> actualResult = StreamIndices.getOddIndexedStrings(names); assertEquals(expectedResult, actualResult); } @Test public void whenCalled_thenReturnListOfOddStringsVersionTwo() { String[] names = {"Afrim", "Bashkim", "Besim", "Lulzim", "Durim", "Shpetim"}; List expectedResult = Arrays.asList("Bashkim", "Lulzim", "Shpetim"); List actualResult = StreamIndices.getOddIndexedStringsVersionTwo(names); assertEquals(expectedResult, actualResult); } }