### Question:
StringUtils { public static List<String> split(String value, String separator) { return isEmpty(value) ? emptyList() : of(value.split(separator)) .map(String::trim) .filter(s -> !s.isEmpty()) .collect(toList()); }  static boolean isEmpty(String str); static List<String> split(String value, String separator); static Map<String, String> splitKeyValue(String... keyValue); static int findFirstIndexIn(String keyValue, String chars); static String addOffsets(String value, int spacesCount); static long dotCountIn(String line); static long symbolCountIn(String line, char symbol); static String unixLikePath(String path); static String toUnixPathSeparator(String line); static String escape(String value); static StringBuilder asStringBuilder(CharSequence line); static String getCauseMessage(Throwable t); static String getExceptionMessage(Throwable t); static boolean isBlank(String line);  }### Answer:
@Test void testSplit() { List<String> expected = asList("f", "o.o", "o"); assertEquals(expected, split(" f , o.o , o", ",")); assertEquals(emptyList(), split(" ", ",")); assertEquals(emptyList(), split("", ",")); }