private Map<String, List<URIRegisterDTO>> buildData(final Collection<URIRegisterDTO> dataList) {
        Map<String, List<URIRegisterDTO>> resultMap = new HashMap<>(8);
        for (URIRegisterDTO dto : dataList) {
            String contextPath = dto.getContextPath();
            String key = StringUtils.isNotEmpty(contextPath) ? contextPath : dto.getAppName();
            if (StringUtils.isNotEmpty(key)) {
                if (resultMap.containsKey(key)) {
                    List<URIRegisterDTO> existList = resultMap.get(key);
                    existList.add(dto);
                    resultMap.put(key, existList);
                } else {
                    resultMap.put(key, Lists.newArrayList(dto));
                }
            }
        }
        return resultMap;
    }
@Test
    public void testBuildData() {
        try {
            List<URIRegisterDTO> list = new ArrayList<>();
            list.add(URIRegisterDTO.builder().appName("test1").build());
            list.add(URIRegisterDTO.builder().appName("test2").build());
            Method testMethod = uriRegisterExecutorSubscriber.getClass().getDeclaredMethod("buildData", Collection.class);
            testMethod.setAccessible(true);
            Map<String, List<URIRegisterDTO>> result = (Map) testMethod.invoke(uriRegisterExecutorSubscriber, list);
            assertEquals(2, result.size());
            
            list.add(URIRegisterDTO.builder().appName("test1").build());
            result = (Map) testMethod.invoke(uriRegisterExecutorSubscriber, list);
            assertEquals(2, result.size());
        } catch (Exception e) {
            throw new ShenyuException(e.getCause());
        }
    }