@GetMapping("/fetch")
    public ShenyuAdminResult fetchConfigs(@NotNull final String[] groupKeys) {
        Map<String, ConfigData<?>> result = Maps.newHashMap();
        for (String groupKey : groupKeys) {
            ConfigData<?> data = longPollingListener.fetchConfig(ConfigGroupEnum.valueOf(groupKey));
            result.put(groupKey, data);
        }
        return ShenyuAdminResult.success(ShenyuResultMessage.SUCCESS, result);
    }
@Test
    public void testFetchConfigs() throws Exception {
        // Configure HttpLongPollingDataChangedListener.fetchConfig(...).
        final ConfigData<?> configData = new ConfigData<>("md5-value1", 0L, Collections.emptyList());
        doReturn(configData).when(mockLongPollingListener).fetchConfig(ConfigGroupEnum.APP_AUTH);

        // Run the test
        final MockHttpServletResponse response = mockMvc.perform(get("/configs/fetch")
                .param("groupKeys", new String[]{ConfigGroupEnum.APP_AUTH.toString()})
                .accept(MediaType.APPLICATION_JSON))
                .andExpect(status().isOk())
                .andExpect(jsonPath("$.message", is(ShenyuResultMessage.SUCCESS)))
                .andExpect(jsonPath("$.data['APP_AUTH'].md5", is("md5-value1")))
                .andReturn().getResponse();

        // Verify the results
        assertThat(response.getStatus()).isEqualTo(HttpStatus.OK.value());
    }