### Question:
PropertiesSplitter { public Map<String, String> parseMap(String mapStr) { return parseMap(mapStr, ",", ":"); }  List<String> parseList(String listStr); Map<String, String> parseMap(String mapStr); Map<String, String> parseMap(String mapStr, String separator, String keyValueSeparator); Map<String, Map<String, String>> parseMapInMap(String mapInMapStr); Map<String, List<String>> parseListInMap(String listInMapStr); Map<String, List<String>> parseListInMap(String listInMapStr, String mapSeparator, String keyValueSeparator, String listSeparator);  }### Answer:
@Test public void testParseMap() { Map<String, String> keyValues = underTest.parseMap("k1:v1,k2:v2"); assertEquals("v1", keyValues.get("k1")); assertEquals("v2", keyValues.get("k2")); }
@Test public void testParseMapWithEmptyValue() { Map<String, String> keyValues = underTest.parseMap("k1:v1,k2:"); assertEquals("v1", keyValues.get("k1")); assertEquals("", keyValues.get("k2")); }
@Test public void testParseMapWithMissingKey() { Map<String, String> keyValues = underTest.parseMap("k1:v1,:v2"); assertEquals("v1", keyValues.get("k1")); assertNull(keyValues.get("k2")); assertEquals(1, keyValues.size()); }