### Question:
CollectionUtils { public static Map<String, Map<String, String>> splitAll(Map<String, List<String>> list, String separator) { if (list == null) { return null; } Map<String, Map<String, String>> result = new HashMap<>(); for (Map.Entry<String, List<String>> entry : list.entrySet()) { result.put(entry.getKey(), split(entry.getValue(), separator)); } return result; } private  CollectionUtils(); @SuppressWarnings({"unchecked", "rawtypes"}) static List<T> sort(List<T> list); static List<String> sortSimpleName(List<String> list); static Map<String, Map<String, String>> splitAll(Map<String, List<String>> list, String separator); static Map<String, List<String>> joinAll(Map<String, Map<String, String>> map, String separator); static Map<String, String> split(List<String> list, String separator); static List<String> join(Map<String, String> map, String separator); static String join(List<String> list, String separator); static boolean mapEquals(Map<?, ?> map1, Map<?, ?> map2); static Map<String, String> toStringMap(String... pairs); @SuppressWarnings("unchecked") static Map<K, V> toMap(Object... pairs); static boolean isEmpty(Collection<?> collection); static boolean isNotEmpty(Collection<?> collection); static boolean isEmptyMap(Map map); static boolean isNotEmptyMap(Map map);  }### Answer:
@Test public void testSplitAll() throws Exception { assertNull(CollectionUtils.splitAll(null, null)); assertNull(CollectionUtils.splitAll(null, "-")); assertTrue(CollectionUtils.splitAll(new HashMap<String, List<String>>(), "-").isEmpty()); Map<String, List<String>> input = new HashMap<String, List<String>>(); input.put("key1", Arrays.asList("1:a", "2:b", "3:c")); input.put("key2", Arrays.asList("1:a", "2:b")); input.put("key3", null); input.put("key4", new ArrayList<String>()); Map<String, Map<String, String>> expected = new HashMap<String, Map<String, String>>(); expected.put("key1", CollectionUtils.toStringMap("1", "a", "2", "b", "3", "c")); expected.put("key2", CollectionUtils.toStringMap("1", "a", "2", "b")); expected.put("key3", null); expected.put("key4", new HashMap<String, String>()); assertEquals(expected, CollectionUtils.splitAll(input, ":")); }