@PostMapping("/createOrUpdate")
    @RequiresPermissions(value = {"system:meta:add", "system:meta:edit"}, logical = Logical.OR)
    public ShenyuAdminResult createOrUpdate(@Valid @RequestBody final MetaDataDTO metaDataDTO) {
        return ShenyuAdminResult.success(metaDataService.createOrUpdate(metaDataDTO));
    }
@Test
    public void testCreateOrUpdate() throws Exception {
        final MetaDataDTO metaDataDTO = new MetaDataDTO();
        metaDataDTO.setId("0001");
        metaDataDTO.setAppName("aname-01");
        metaDataDTO.setContextPath("path");
        metaDataDTO.setPath("/path");
        metaDataDTO.setRpcType("rpcType");
        metaDataDTO.setMethodName("methodName");
        metaDataDTO.setServiceName("serviceName");
        metaDataDTO.setRuleName("ruleName");
        metaDataDTO.setEnabled(false);
        SpringBeanUtils.getInstance().setApplicationContext(mock(ConfigurableApplicationContext.class));
        when(SpringBeanUtils.getInstance().getBean(MetaDataMapper.class)).thenReturn(metaDataMapper);
        when(metaDataMapper.existed(metaDataDTO.getId())).thenReturn(true);
        given(this.metaDataService.createOrUpdate(metaDataDTO)).willReturn(ShenyuResultMessage.UPDATE_SUCCESS);
        this.mockMvc.perform(MockMvcRequestBuilders.post("/meta-data/createOrUpdate")
                .contentType(MediaType.APPLICATION_JSON)
                .content(GsonUtils.getInstance().toJson(metaDataDTO)))
                .andExpect(status().isOk())
                .andExpect(jsonPath("$.message", is(ShenyuResultMessage.UPDATE_SUCCESS)))
                .andReturn();
    }