@PutMapping("/{id}")
    @RequiresPermissions("system:pluginHandler:edit")
    public ShenyuAdminResult updatePluginHandle(@PathVariable("id") @Valid
                                                @Existed(provider = PluginHandleMapper.class,
                                                        message = "rule not exited") final String id,
                                                @Valid @RequestBody final PluginHandleDTO pluginHandleDTO) {
        pluginHandleDTO.setId(id);
        return ShenyuAdminResult.success(ShenyuResultMessage.UPDATE_SUCCESS, pluginHandleService.createOrUpdate(pluginHandleDTO));
    }
@Test
    public void testUpdatePluginHandle() throws Exception {
        PluginHandleDTO pluginHandleDTO = new PluginHandleDTO();
        pluginHandleDTO.setId("1");
        pluginHandleDTO.setPluginId("1213");
        pluginHandleDTO.setDataType(1);
        pluginHandleDTO.setField("f");
        pluginHandleDTO.setType(1);
        pluginHandleDTO.setSort(1);
        SpringBeanUtils.getInstance().setApplicationContext(mock(ConfigurableApplicationContext.class));
        when(SpringBeanUtils.getInstance().getBean(PluginHandleMapper.class)).thenReturn(handleMapper);
        when(handleMapper.existed(pluginHandleDTO.getId())).thenReturn(true);
        given(this.pluginHandleService.createOrUpdate(pluginHandleDTO)).willReturn(1);
        this.mockMvc.perform(MockMvcRequestBuilders.put("/plugin-handle/{id}", "1")
                        .contentType(MediaType.APPLICATION_JSON)
                        .content(GsonUtils.getInstance().toJson(pluginHandleDTO)))
                .andExpect(status().isOk())
                .andExpect(jsonPath("$.message", is(ShenyuResultMessage.UPDATE_SUCCESS)))
                .andReturn();
    }