package org.rr.commons.utils;
import java.util.ArrayList;
import java.util.List;
import junit.framework.TestCase;
public class ListUtilsTest extends TestCase {
public void testSplit() {
List<String> split = ListUtils.split("1,2,3", ",", -1, UtilConstants.COMPARE_BINARY);
assertEquals(3, split.size());
split = ListUtils.split("1,2,3", ",", 1, UtilConstants.COMPARE_BINARY);
assertEquals(1, split.size());
split = ListUtils.split("1,2,3", ",", 3, UtilConstants.COMPARE_BINARY);
assertEquals(3, split.size());
split = ListUtils.split("1,2,3", ",", 0, UtilConstants.COMPARE_BINARY);
assertEquals(0, split.size());
}
public void testChunkSplit() {
List<String> chunkSplit = ListUtils.chunkSplit("teststring", 3); //[tes, tst, rin, g ]
assertEquals(4, chunkSplit.size());
assertEquals("tes", chunkSplit.get(0));
assertEquals("tst", chunkSplit.get(1));
assertEquals("rin", chunkSplit.get(2));
assertEquals("g ", chunkSplit.get(3));
}
public void testSet() {
ArrayList<String> l = new ArrayList<>();
l.add("1");
ListUtils.set(l, "1new", 0);
assertEquals("1new", l.get(0));
ListUtils.set(l, "farawy", 5);
assertEquals("farawy", l.get(5));
ListUtils.set(l, "farawy2", 6);
assertEquals("farawy2", l.get(6));
ListUtils.set(l, "farawy3", 6);
assertEquals("farawy3", l.get(6));
}
public void testSplitChar() {
List<String> split = ListUtils.split("aay,b,c,,,", ',');
assertEquals("[aay, b, c, , , ]", split.toString());
split = ListUtils.split("", ',');
assertEquals(1, split.size());
}
public void testIndexedToString() {
ArrayList<String> list = new ArrayList<>();
for(int i = 0; i < 100; i++) {
list.add("/home/user/ebooks/test/folder name with spaces/some book with a name.epub" + i);
}
String indexedListString = ListUtils.toIndexedString(list, ';');
String oldFashionListString = ListUtils.join(list, ";");
List<String> fromIndexString = ListUtils.fromIndexString(indexedListString, ';');
List<String> split = ListUtils.split(oldFashionListString, ";");
assertEquals(list.size(), fromIndexString.size());
assertEquals(split.size(), fromIndexString.size());
}
}