### Question:
StringUtils { public static String camelCaseToDash(String input) { if (input == null) throw new IllegalArgumentException("camelCaseToDash argument must not be null"); return input.replaceAll("([a-z])([A-Z]+)", "$1-$2").toLowerCase(); }  static String arrayFormat(String format, Object[] items); static Optional<String> cdr(String name, String... sep); static String car(String name, String... sep); static String lastOf(String qualifiedName, String... sep); static String untill(String qualifiedName, String... sep); static String dotToUpperCamelCase(String input); static String dotToDash(String input); static String camelCaseToDash(String input); static boolean isPackageFriendly(String moduleName); static String withoutTypeArgs(String javaTypeString); static String notEmptytrimmed(String param); static Optional<Tuple<String, String>> splitIntoTwo(String mappingString); static int countMatches(String theString, String... sep);  }### Answer:
@Test void testCamelCaseToDash_Fail() { assertThrows(IllegalArgumentException.class, () -> camelCaseToDash(null) ); }
@Test void testCamelCaseToDash() { assertEquals("abc-abc",camelCaseToDash("abcAbc")); }