### Question:
DictUtil { public static Map<String, String> parse(String query) { return parse(query, new LinkedHashMap<String, String>()); }  static Map<String, String> parse(String query); static Map<String, String> parse(String query, Map<String, String> map); static Map<String, String> parseParam(String str, Map<String, String> map); static String toString(Map<String, String> map); static Multidict asMultidict(Dict dict);  }### Answer:
@Test public void parseTest() { Map<String, String> map = new LinkedHashMap<String, String>(); assertEquals(map, DictUtil.parse("")); map.put("key1", "val1"); assertEquals(map, DictUtil.parse("key1=val1")); map.put("key2", "val 2"); assertEquals(map, DictUtil.parse("key1=val1&key2=val+2")); map.clear(); map.put("key", null); assertEquals("value missing parse test mismatch", map, DictUtil.parse("key")); map.clear(); map.put("key", ""); assertEquals("empty value parse test mismatch", map, DictUtil.parse("key=")); }