### Question:
ClientTrackService { public static void trackClientMd5(String ip, Map<String, String> clientMd5Map) { ClientRecord record = getClientRecord(ip); record.setLastTime(System.currentTimeMillis()); record.getGroupKey2md5Map().putAll(clientMd5Map); }  static void trackClientMd5(String ip, Map<String, String> clientMd5Map); static void trackClientMd5(String ip, Map<String, String> clientMd5Map,
            Map<String, Long> clientLastPollingTsMap); static void trackClientMd5(String ip, String groupKey, String clientMd5); static int subscribeClientCount(); static long subscriberCount(); static Map<String, SubscriberStatus> listSubStatus(String ip); static Map<String, SubscriberStatus> listSubsByGroup(String groupKey); static Map<String, Boolean> isClientUptodate(String ip); static Map<String, Boolean> listSubscriberByGroup(String groupKey); static void refreshClientRecord();  }### Answer:
@Test public void testTrackClientMd5() { String clientIp = "1.1.1.1"; String dataId = "com.taobao.session.xml"; String group = "online"; String groupKey = GroupKey2.getKey(dataId, group); String md5 = "xxxxxxxxxxxxx"; ConfigCacheService.updateMd5(groupKey, md5, System.currentTimeMillis()); ClientTrackService.trackClientMd5(clientIp, groupKey, md5); ClientTrackService.trackClientMd5(clientIp, groupKey, md5); Assert.assertEquals(true, ClientTrackService.isClientUptodate(clientIp).get(groupKey)); Assert.assertEquals(1, ClientTrackService.subscribeClientCount()); Assert.assertEquals(1, ClientTrackService.subscriberCount()); ConfigCacheService.updateMd5(groupKey, md5 + "111", System.currentTimeMillis()); Assert.assertEquals(false, ClientTrackService.isClientUptodate(clientIp).get(groupKey)); }