package com.baeldung; import static org.junit.Assert.assertEquals; import java.util.ArrayList; import java.util.Arrays; import java.util.List; import java.util.stream.Collectors; import java.util.stream.Stream; import org.apache.commons.lang3.StringUtils; import org.junit.Test; import com.google.common.base.Function; import com.google.common.base.Splitter; import com.google.common.collect.Lists; public class ConvertStringToListUnitTest { private final String countries = "Russia,Germany,England,France,Italy"; private final String ranks = "1,2,3,4,5, 6,7"; private final String emptyStrings = ",,,,,"; private final List expectedCountriesList = Arrays.asList("Russia", "Germany", "England", "France", "Italy"); private final List expectedRanksList = Arrays.asList(1, 2, 3, 4, 5, 6, 7); private final List expectedEmptyStringsList = Arrays.asList("", "", "", "", "", ""); @Test public void givenString_thenGetListOfStringByJava() { List convertedCountriesList = Arrays.asList(countries.split(",", -1)); assertEquals(expectedCountriesList, convertedCountriesList); } @Test public void givenString_thenGetListOfStringByApache() { List convertedCountriesList = Arrays.asList(StringUtils.splitPreserveAllTokens(countries, ",")); assertEquals(expectedCountriesList, convertedCountriesList); } @Test public void givenString_thenGetListOfStringByGuava() { List convertedCountriesList = Splitter.on(",") .trimResults() .splitToList(countries); assertEquals(expectedCountriesList, convertedCountriesList); } @Test public void givenString_thenGetListOfStringByJava8() { List convertedCountriesList = Stream.of(countries.split(",", -1)) .collect(Collectors.toList()); assertEquals(expectedCountriesList, convertedCountriesList); } @Test public void givenString_thenGetListOfIntegerByJava() { String[] convertedRankArray = ranks.split(","); List convertedRankList = new ArrayList(); for (String number : convertedRankArray) { convertedRankList.add(Integer.parseInt(number.trim())); } assertEquals(expectedRanksList, convertedRankList); } @Test public void givenString_thenGetListOfIntegerByGuava() { List convertedRankList = Lists.transform(Splitter.on(",") .trimResults() .splitToList(ranks), new Function() { @Override public Integer apply(String input) { return Integer.parseInt(input.trim()); } }); assertEquals(expectedRanksList, convertedRankList); } @Test public void givenString_thenGetListOfIntegerByJava8() { List convertedRankList = Stream.of(ranks.split(",")) .map(String::trim) .map(Integer::parseInt) .collect(Collectors.toList()); assertEquals(expectedRanksList, convertedRankList); } @Test public void givenString_thenGetListOfIntegerByApache() { String[] convertedRankArray = StringUtils.split(ranks, ","); List convertedRankList = new ArrayList(); for (String number : convertedRankArray) { convertedRankList.add(Integer.parseInt(number.trim())); } assertEquals(expectedRanksList, convertedRankList); } @Test public void givenEmptyStrings_thenGetListOfStringByJava() { List convertedEmptyStringsList = Arrays.asList(emptyStrings.split(",", -1)); assertEquals(expectedEmptyStringsList, convertedEmptyStringsList); } @Test public void givenEmptyStrings_thenGetListOfStringByApache() { List convertedEmptyStringsList = Arrays.asList(StringUtils.splitPreserveAllTokens(emptyStrings, ",")); assertEquals(expectedEmptyStringsList, convertedEmptyStringsList); } @Test public void givenEmptyStrings_thenGetListOfStringByGuava() { List convertedEmptyStringsList = Splitter.on(",") .trimResults() .splitToList(emptyStrings); assertEquals(expectedEmptyStringsList, convertedEmptyStringsList); } @Test public void givenEmptyStrings_thenGetListOfStringByJava8() { List convertedEmptyStringsList = Stream.of(emptyStrings.split(",", -1)) .collect(Collectors.toList()); assertEquals(expectedEmptyStringsList, convertedEmptyStringsList); } }