### Question:
UrlUtils { static boolean isItemMatch(String pattern, String value) { if (pattern == null) { return value == null; } else { return "*".equals(pattern) || pattern.equals(value); } }  static URL parseURL(String address, Map<String, String> defaults); static List<URL> parseURLs(String address, Map<String, String> defaults); static Map<String, Map<String, String>> convertRegister(Map<String, Map<String, String>> register); static Map<String, String> convertSubscribe(Map<String, String> subscribe); static Map<String, Map<String, String>> revertRegister(Map<String, Map<String, String>> register); static Map<String, String> revertSubscribe(Map<String, String> subscribe); static Map<String, Map<String, String>> revertNotify(Map<String, Map<String, String>> notify); static List<String> revertForbid(List<String> forbid, Set<URL> subscribed); static URL getEmptyUrl(String service, String category); static boolean isMatchCategory(String category, String categories); static boolean isMatch(URL consumerUrl, URL providerUrl); static boolean isMatchGlobPattern(String pattern, String value, URL param); static boolean isMatchGlobPattern(String pattern, String value); static boolean isServiceKeyMatch(URL pattern, URL value); static List<URL> classifyUrls(List<URL> urls, Predicate<URL> predicate); static boolean isConfigurator(URL url); static boolean isRoute(URL url); static boolean isProvider(URL url);  }### Answer:
@Test public void testIsItemMatch() throws Exception { assertTrue(UrlUtils.isItemMatch(null, null)); assertTrue(!UrlUtils.isItemMatch("1", null)); assertTrue(!UrlUtils.isItemMatch(null, "1")); assertTrue(UrlUtils.isItemMatch("1", "1")); assertTrue(UrlUtils.isItemMatch("*", null)); assertTrue(UrlUtils.isItemMatch("*", "*")); assertTrue(UrlUtils.isItemMatch("*", "1234")); assertTrue(!UrlUtils.isItemMatch(null, "*")); }