This is an automated email from the ASF dual-hosted git repository.
renzhuyan pushed a commit to branch master
in repository https://gitbox.apache.org/repos/asf/shenyu.git
The following commit(s) were added to refs/heads/master by this push:
new 7a559676b [ISSUE #3896]Fix bug, add menu error. (#3902)
7a559676b is described below
commit 7a559676ba51bc9fccb5423eec94e3abc4c2eb30
Author: Kevin Clair <[email protected]>
AuthorDate: Thu Sep 1 13:07:10 2022 +0800
[ISSUE #3896]Fix bug, add menu error. (#3902)
* fix #3896
* update property.
* checkstyle
---
.../admin/controller/ResourceController.java | 26 +-
.../shenyu/admin/model/dto/CreateResourceDTO.java | 331 +++++++++++++++++++++
.../shenyu/admin/model/entity/ResourceDO.java | 33 +-
.../shenyu/admin/service/ResourceService.java | 23 +-
.../admin/service/impl/ResourceServiceImpl.java | 46 ++-
.../admin/controller/ResourceControllerTest.java | 44 ++-
.../shenyu/admin/service/ResourceServiceTest.java | 58 ++--
7 files changed, 459 insertions(+), 102 deletions(-)
diff --git
a/shenyu-admin/src/main/java/org/apache/shenyu/admin/controller/ResourceController.java
b/shenyu-admin/src/main/java/org/apache/shenyu/admin/controller/ResourceController.java
index 9b35bd005..9047b7920 100644
---
a/shenyu-admin/src/main/java/org/apache/shenyu/admin/controller/ResourceController.java
+++
b/shenyu-admin/src/main/java/org/apache/shenyu/admin/controller/ResourceController.java
@@ -17,11 +17,9 @@
package org.apache.shenyu.admin.controller;
-import java.util.List;
-import java.util.Optional;
-
import org.apache.commons.collections4.CollectionUtils;
import org.apache.shenyu.admin.mapper.ResourceMapper;
+import org.apache.shenyu.admin.model.dto.CreateResourceDTO;
import org.apache.shenyu.admin.model.dto.ResourceDTO;
import org.apache.shenyu.admin.model.page.CommonPager;
import org.apache.shenyu.admin.model.page.PageParameter;
@@ -34,6 +32,15 @@ import org.apache.shenyu.admin.utils.ShenyuResultMessage;
import org.apache.shenyu.admin.validation.annotation.Existed;
import org.apache.shiro.authz.annotation.Logical;
import org.apache.shiro.authz.annotation.RequiresPermissions;
+
+import java.util.List;
+import java.util.Optional;
+
+import javax.validation.Valid;
+import javax.validation.constraints.NotBlank;
+import javax.validation.constraints.NotEmpty;
+import javax.validation.constraints.NotNull;
+
import org.springframework.validation.annotation.Validated;
import org.springframework.web.bind.annotation.DeleteMapping;
import org.springframework.web.bind.annotation.GetMapping;
@@ -45,11 +52,6 @@ import
org.springframework.web.bind.annotation.RequestMapping;
import org.springframework.web.bind.annotation.RequestParam;
import org.springframework.web.bind.annotation.RestController;
-import javax.validation.Valid;
-import javax.validation.constraints.NotBlank;
-import javax.validation.constraints.NotEmpty;
-import javax.validation.constraints.NotNull;
-
/**
* this is resource controller.
*/
@@ -132,13 +134,13 @@ public class ResourceController {
/**
* create resource.
*
- * @param resourceDTO resource dto
+ * @param createResourceDTO resource dto
* @return {@linkplain ShenyuAdminResult}
*/
@PostMapping("")
@RequiresPermissions(value = {"system:resource:addMenu",
"system:resource:addButton"}, logical = Logical.OR)
- public ShenyuAdminResult createResource(@Valid @RequestBody final
ResourceDTO resourceDTO) {
- return ShenyuAdminResult.success(ShenyuResultMessage.CREATE_SUCCESS,
resourceService.createOrUpdate(resourceDTO));
+ public ShenyuAdminResult createResource(@Valid @RequestBody final
CreateResourceDTO createResourceDTO) {
+ return ShenyuAdminResult.success(ShenyuResultMessage.CREATE_SUCCESS,
resourceService.create(createResourceDTO));
}
/**
@@ -155,7 +157,7 @@ public class ResourceController {
message = "resource not
existed") final String id,
@RequestBody final ResourceDTO
resourceDTO) {
resourceDTO.setId(id);
- return ShenyuAdminResult.success(ShenyuResultMessage.UPDATE_SUCCESS,
resourceService.createOrUpdate(resourceDTO));
+ return ShenyuAdminResult.success(ShenyuResultMessage.UPDATE_SUCCESS,
resourceService.update(resourceDTO));
}
/**
diff --git
a/shenyu-admin/src/main/java/org/apache/shenyu/admin/model/dto/CreateResourceDTO.java
b/shenyu-admin/src/main/java/org/apache/shenyu/admin/model/dto/CreateResourceDTO.java
new file mode 100644
index 000000000..e1aab5254
--- /dev/null
+++
b/shenyu-admin/src/main/java/org/apache/shenyu/admin/model/dto/CreateResourceDTO.java
@@ -0,0 +1,331 @@
+/*
+ * Licensed to the Apache Software Foundation (ASF) under one or more
+ * contributor license agreements. See the NOTICE file distributed with
+ * this work for additional information regarding copyright ownership.
+ * The ASF licenses this file to You under the Apache License, Version 2.0
+ * (the "License"); you may not use this file except in compliance with
+ * the License. You may obtain a copy of the License at
+ *
+ * http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ */
+
+package org.apache.shenyu.admin.model.dto;
+
+import javax.validation.constraints.NotBlank;
+import javax.validation.constraints.NotNull;
+
+/**
+ * this is created resource Dto.
+ */
+public class CreateResourceDTO {
+
+ /**
+ * resource parent key.
+ */
+ @NotBlank
+ private String parentId;
+
+ /**
+ * resource title.
+ */
+ @NotBlank
+ private String title;
+
+ /**
+ * resource name.
+ */
+ private String name;
+
+ /**
+ * resource url.
+ */
+ private String url;
+
+ /**
+ * resource component.
+ */
+ private String component;
+
+ /**
+ * resource type.
+ */
+ @NotNull
+ private Integer resourceType;
+
+ /**
+ * resource sort.
+ */
+ @NotNull
+ private Integer sort;
+
+ /**
+ * resource icon.
+ */
+ @NotBlank
+ private String icon;
+
+ /**
+ * resource is leaf.
+ */
+ @NotNull
+ private Boolean isLeaf;
+
+ /**
+ * resource is route.
+ */
+ @NotNull
+ private Integer isRoute;
+
+ /**
+ * resource perms.
+ */
+ private String perms;
+
+ /**
+ * resource status.
+ */
+ @NotNull
+ private Integer status;
+
+ public CreateResourceDTO() {
+ }
+
+ public CreateResourceDTO(final String parentId, final String title, final
String name, final String url, final String component,
+ final Integer resourceType, final Integer sort,
final String icon,
+ final Boolean isLeaf, final Integer isRoute,
final String perms, final Integer status) {
+ this.parentId = parentId;
+ this.title = title;
+ this.name = name;
+ this.url = url;
+ this.component = component;
+ this.resourceType = resourceType;
+ this.sort = sort;
+ this.icon = icon;
+ this.isLeaf = isLeaf;
+ this.isRoute = isRoute;
+ this.perms = perms;
+ this.status = status;
+ }
+
+ /**
+ * Gets the value of parentId.
+ *
+ * @return the value of parentId
+ */
+ public String getParentId() {
+ return parentId;
+ }
+
+ /**
+ * Sets the parentId.
+ *
+ * @param parentId parentId
+ */
+ public void setParentId(final String parentId) {
+ this.parentId = parentId;
+ }
+
+ /**
+ * Gets the value of title.
+ *
+ * @return the value of title
+ */
+ public String getTitle() {
+ return title;
+ }
+
+ /**
+ * Sets the title.
+ *
+ * @param title title
+ */
+ public void setTitle(final String title) {
+ this.title = title;
+ }
+
+ /**
+ * Gets the value of name.
+ *
+ * @return the value of name
+ */
+ public String getName() {
+ return name;
+ }
+
+ /**
+ * Sets the name.
+ *
+ * @param name name
+ */
+ public void setName(final String name) {
+ this.name = name;
+ }
+
+ /**
+ * Gets the value of url.
+ *
+ * @return the value of url
+ */
+ public String getUrl() {
+ return url;
+ }
+
+ /**
+ * Sets the url.
+ *
+ * @param url url
+ */
+ public void setUrl(final String url) {
+ this.url = url;
+ }
+
+ /**
+ * Gets the value of component.
+ *
+ * @return the value of component
+ */
+ public String getComponent() {
+ return component;
+ }
+
+ /**
+ * Sets the component.
+ *
+ * @param component component
+ */
+ public void setComponent(final String component) {
+ this.component = component;
+ }
+
+ /**
+ * Gets the value of resourceType.
+ *
+ * @return the value of resourceType
+ */
+ public Integer getResourceType() {
+ return resourceType;
+ }
+
+ /**
+ * Sets the resourceType.
+ *
+ * @param resourceType resourceType
+ */
+ public void setResourceType(final Integer resourceType) {
+ this.resourceType = resourceType;
+ }
+
+ /**
+ * Gets the value of sort.
+ *
+ * @return the value of sort
+ */
+ public Integer getSort() {
+ return sort;
+ }
+
+ /**
+ * Sets the sort.
+ *
+ * @param sort sort
+ */
+ public void setSort(final Integer sort) {
+ this.sort = sort;
+ }
+
+ /**
+ * Gets the value of icon.
+ *
+ * @return the value of icon
+ */
+ public String getIcon() {
+ return icon;
+ }
+
+ /**
+ * Sets the icon.
+ *
+ * @param icon icon
+ */
+ public void setIcon(final String icon) {
+ this.icon = icon;
+ }
+
+ /**
+ * Gets the value of isLeaf.
+ *
+ * @return the value of isLeaf
+ */
+ public Boolean getIsLeaf() {
+ return isLeaf;
+ }
+
+ /**
+ * Sets the isLeaf.
+ *
+ * @param isLeaf isLeaf
+ */
+ public void setIsLeaf(final Boolean isLeaf) {
+ this.isLeaf = isLeaf;
+ }
+
+ /**
+ * Gets the value of isRoute.
+ *
+ * @return the value of isRoute
+ */
+ public Integer getIsRoute() {
+ return isRoute;
+ }
+
+ /**
+ * Sets the isRoute.
+ *
+ * @param isRoute isRoute
+ */
+ public void setIsRoute(final Integer isRoute) {
+ this.isRoute = isRoute;
+ }
+
+ /**
+ * Gets the value of perms.
+ *
+ * @return the value of perms
+ */
+ public String getPerms() {
+ return perms;
+ }
+
+ /**
+ * Sets the perms.
+ *
+ * @param perms perms
+ */
+ public void setPerms(final String perms) {
+ this.perms = perms;
+ }
+
+ /**
+ * Gets the value of status.
+ *
+ * @return the value of status
+ */
+ public Integer getStatus() {
+ return status;
+ }
+
+ /**
+ * Sets the status.
+ *
+ * @param status status
+ */
+ public void setStatus(final Integer status) {
+ this.status = status;
+ }
+}
diff --git
a/shenyu-admin/src/main/java/org/apache/shenyu/admin/model/entity/ResourceDO.java
b/shenyu-admin/src/main/java/org/apache/shenyu/admin/model/entity/ResourceDO.java
index 827a7eb37..1f0d34f28 100644
---
a/shenyu-admin/src/main/java/org/apache/shenyu/admin/model/entity/ResourceDO.java
+++
b/shenyu-admin/src/main/java/org/apache/shenyu/admin/model/entity/ResourceDO.java
@@ -17,14 +17,16 @@
package org.apache.shenyu.admin.model.entity;
+import org.apache.shenyu.admin.model.dto.CreateResourceDTO;
import org.apache.shenyu.admin.model.dto.ResourceDTO;
import org.apache.shenyu.common.utils.UUIDUtils;
-import reactor.util.StringUtils;
import java.sql.Timestamp;
import java.util.Objects;
import java.util.Optional;
+import reactor.util.StringUtils;
+
/**
* The Resource Entity.
*/
@@ -379,6 +381,35 @@ public final class ResourceDO extends BaseDO {
}).orElse(null);
}
+ /**
+ * build ResourceDO.
+ *
+ * @param createResourceDTO {@linkplain CreateResourceDTO}
+ * @return {@linkplain ResourceDO}
+ */
+ public static ResourceDO buildResourceDO(final CreateResourceDTO
createResourceDTO) {
+ return Optional.ofNullable(createResourceDTO).map(item -> {
+ Timestamp currentTime = new Timestamp(System.currentTimeMillis());
+ ResourceDO resourceDO = ResourceDO.builder()
+ .parentId(item.getParentId())
+ .title(item.getTitle())
+ .name(item.getName())
+ .url(item.getUrl())
+ .component(item.getComponent())
+ .resourceType(item.getResourceType())
+ .sort(item.getSort())
+ .icon(item.getIcon())
+ .isLeaf(item.getIsLeaf())
+ .isRoute(item.getIsRoute())
+ .perms(item.getPerms())
+ .status(item.getStatus())
+ .id(UUIDUtils.getInstance().generateShortUuid())
+ .dateCreated(currentTime)
+ .build();
+ return resourceDO;
+ }).orElse(null);
+ }
+
@Override
public boolean equals(final Object o) {
if (this == o) {
diff --git
a/shenyu-admin/src/main/java/org/apache/shenyu/admin/service/ResourceService.java
b/shenyu-admin/src/main/java/org/apache/shenyu/admin/service/ResourceService.java
index 3ff3460f4..cdcb96cce 100644
---
a/shenyu-admin/src/main/java/org/apache/shenyu/admin/service/ResourceService.java
+++
b/shenyu-admin/src/main/java/org/apache/shenyu/admin/service/ResourceService.java
@@ -17,7 +17,7 @@
package org.apache.shenyu.admin.service;
-import org.apache.commons.lang3.StringUtils;
+import org.apache.shenyu.admin.model.dto.CreateResourceDTO;
import org.apache.shenyu.admin.model.dto.ResourceDTO;
import org.apache.shenyu.admin.model.entity.ResourceDO;
import org.apache.shenyu.admin.model.page.CommonPager;
@@ -40,23 +40,13 @@ public interface ResourceService {
*/
int createResourceBatch(List<ResourceDO> resourceDOList);
- /**
- * create or update resource.
- *
- * @param resourceDTO {@linkplain ResourceDTO}
- * @return rows int
- */
- default int createOrUpdate(final ResourceDTO resourceDTO) {
- return StringUtils.isBlank(resourceDTO.getId()) ? create(resourceDTO)
: update(resourceDTO);
- }
-
/**
* create resource.
*
- * @param resourceDTO {@linkplain ResourceDTO}
+ * @param createResourceDTO {@linkplain CreateResourceDTO}
* @return rows int
*/
- int create(ResourceDTO resourceDTO);
+ int create(CreateResourceDTO createResourceDTO);
/**
* update resource.
@@ -66,13 +56,6 @@ public interface ResourceService {
*/
int update(ResourceDTO resourceDTO);
- /**
- * create Resource.
- *
- * @param resourceDO {@linkplain ResourceDO}
- */
- void createResource(ResourceDO resourceDO);
-
/**
* delete resource by id.
*
diff --git
a/shenyu-admin/src/main/java/org/apache/shenyu/admin/service/impl/ResourceServiceImpl.java
b/shenyu-admin/src/main/java/org/apache/shenyu/admin/service/impl/ResourceServiceImpl.java
index 32a6801e3..8b02cc41e 100644
---
a/shenyu-admin/src/main/java/org/apache/shenyu/admin/service/impl/ResourceServiceImpl.java
+++
b/shenyu-admin/src/main/java/org/apache/shenyu/admin/service/impl/ResourceServiceImpl.java
@@ -20,6 +20,7 @@ package org.apache.shenyu.admin.service.impl;
import org.apache.commons.collections4.CollectionUtils;
import org.apache.shenyu.admin.aspect.annotation.Pageable;
import org.apache.shenyu.admin.mapper.ResourceMapper;
+import org.apache.shenyu.admin.model.dto.CreateResourceDTO;
import org.apache.shenyu.admin.model.dto.ResourceDTO;
import org.apache.shenyu.admin.model.entity.PluginDO;
import org.apache.shenyu.admin.model.entity.ResourceDO;
@@ -35,13 +36,14 @@ import
org.apache.shenyu.admin.service.publish.ResourceEventPublisher;
import org.apache.shenyu.admin.utils.ListUtil;
import org.apache.shenyu.admin.utils.ResourceUtil;
import org.apache.shenyu.common.enums.AdminResourceEnum;
-import org.springframework.context.event.EventListener;
-import org.springframework.stereotype.Service;
-import org.springframework.transaction.annotation.Transactional;
import java.util.List;
import java.util.stream.Collectors;
+import org.springframework.context.event.EventListener;
+import org.springframework.stereotype.Service;
+import org.springframework.transaction.annotation.Transactional;
+
/**
* Implementation of the {@link
org.apache.shenyu.admin.service.ResourceService}.
*/
@@ -68,24 +70,24 @@ public class ResourceServiceImpl implements ResourceService
{
public int createResourceBatch(final List<ResourceDO> resourceDOList) {
return this.insertResourceBatch(resourceDOList);
}
-
+
/**
- * create or update resource.
+ * create Resource.
*
- * @param resourceDTO {@linkplain ResourceDTO}
+ * @param createResourceDTO list of {@linkplain CreateResourceDTO}
* @return rows int
*/
@Override
- @Transactional(rollbackFor = Exception.class)
- public int createOrUpdate(final ResourceDTO resourceDTO) {
- return ResourceService.super.createOrUpdate(resourceDTO);
+ public int create(final CreateResourceDTO createResourceDTO) {
+ return this.createOne(ResourceDO.buildResourceDO(createResourceDTO));
}
-
- @Override
- public int create(final ResourceDTO resourceDTO) {
- return createOne(ResourceDO.buildResourceDO(resourceDTO));
- }
-
+
+ /**
+ * update resource.
+ *
+ * @param resourceDTO {@linkplain ResourceDTO}
+ * @return rows int
+ */
@Override
public int update(final ResourceDTO resourceDTO) {
final ResourceDO before =
resourceMapper.selectById(resourceDTO.getId());
@@ -97,16 +99,6 @@ public class ResourceServiceImpl implements ResourceService {
return updateCount;
}
- /**
- * create resource and return data.
- *
- * @param resourceDO {@linkplain ResourceDO}
- */
- @Override
- public void createResource(final ResourceDO resourceDO) {
- createOne(resourceDO);
- }
-
/**
* delete resource info.
*
@@ -208,7 +200,7 @@ public class ResourceServiceImpl implements ResourceService
{
@EventListener(value = PluginCreatedEvent.class)
public void onPluginCreated(final PluginCreatedEvent event) {
ResourceDO resourceDO =
ResourceUtil.buildPluginResource(event.getPlugin().getName());
- createOne(resourceDO);
+ this.createOne(resourceDO);
insertResourceBatch(ResourceUtil.buildPluginDataPermissionResource(resourceDO.getId(),
event.getPlugin().getName()));
}
@@ -234,7 +226,7 @@ public class ResourceServiceImpl implements ResourceService
{
return insertCount;
}
-
+
/**
* insert Resources.
*
diff --git
a/shenyu-admin/src/test/java/org/apache/shenyu/admin/controller/ResourceControllerTest.java
b/shenyu-admin/src/test/java/org/apache/shenyu/admin/controller/ResourceControllerTest.java
index 2566d1b88..da5406309 100644
---
a/shenyu-admin/src/test/java/org/apache/shenyu/admin/controller/ResourceControllerTest.java
+++
b/shenyu-admin/src/test/java/org/apache/shenyu/admin/controller/ResourceControllerTest.java
@@ -17,8 +17,15 @@
package org.apache.shenyu.admin.controller;
+import static com.google.common.collect.Lists.newArrayList;
+import static org.mockito.ArgumentMatchers.any;
+import static org.mockito.BDDMockito.given;
+import static org.mockito.Mockito.mock;
+import static
org.springframework.test.web.servlet.result.MockMvcResultMatchers.content;
+
import org.apache.shenyu.admin.exception.ExceptionHandlers;
import org.apache.shenyu.admin.mapper.ResourceMapper;
+import org.apache.shenyu.admin.model.dto.CreateResourceDTO;
import org.apache.shenyu.admin.model.dto.ResourceDTO;
import org.apache.shenyu.admin.model.page.CommonPager;
import org.apache.shenyu.admin.model.page.PageParameter;
@@ -30,6 +37,10 @@ import org.apache.shenyu.admin.service.ResourceService;
import org.apache.shenyu.admin.spring.SpringBeanUtils;
import org.apache.shenyu.admin.utils.ShenyuResultMessage;
import org.apache.shenyu.common.utils.GsonUtils;
+
+import java.util.Collections;
+import java.util.List;
+
import org.junit.jupiter.api.BeforeEach;
import org.junit.jupiter.api.Test;
import org.junit.jupiter.api.extension.ExtendWith;
@@ -42,14 +53,6 @@ import org.springframework.test.web.servlet.MockMvc;
import org.springframework.test.web.servlet.request.MockMvcRequestBuilders;
import org.springframework.test.web.servlet.setup.MockMvcBuilders;
-import java.util.Collections;
-import java.util.List;
-
-import static com.google.common.collect.Lists.newArrayList;
-import static org.mockito.BDDMockito.given;
-import static org.mockito.Mockito.mock;
-import static
org.springframework.test.web.servlet.result.MockMvcResultMatchers.content;
-
/**
* test for {@linkplain ResourceController}.
*/
@@ -171,13 +174,13 @@ public class ResourceControllerTest {
@Test
public void testCreateResource() throws Exception {
- final ResourceDTO resourceDTO = new ResourceDTO();
- fill(resourceDTO);
- given(resourceService.createOrUpdate(resourceDTO)).willReturn(1);
+ final CreateResourceDTO createResourceDTO = new CreateResourceDTO();
+ fill(createResourceDTO);
+ given(resourceService.create(any())).willReturn(1);
this.mockMvc.perform(MockMvcRequestBuilders.post("/resource")
.contentType(MediaType.APPLICATION_JSON)
- .content(GsonUtils.getInstance().toJson(resourceDTO)))
+ .content(GsonUtils.getInstance().toJson(createResourceDTO)))
.andExpect(content().json(GsonUtils.getInstance().toJson(ShenyuAdminResult.success(ShenyuResultMessage.CREATE_SUCCESS,
1))))
.andReturn();
}
@@ -189,7 +192,7 @@ public class ResourceControllerTest {
resourceDTO.setId(mockId);
fill(resourceDTO);
SpringBeanUtils.getInstance().setApplicationContext(mock(ConfigurableApplicationContext.class));
- given(resourceService.createOrUpdate(resourceDTO)).willReturn(1);
+ given(resourceService.update(resourceDTO)).willReturn(1);
this.mockMvc.perform(MockMvcRequestBuilders.put("/resource/" + mockId)
.contentType(MediaType.APPLICATION_JSON)
@@ -224,4 +227,19 @@ public class ResourceControllerTest {
resourceDTO.setStatus(1);
resourceDTO.setSort(1);
}
+
+ private void fill(final CreateResourceDTO createResourceDTO) {
+ createResourceDTO.setTitle("test");
+ createResourceDTO.setName("test");
+ createResourceDTO.setParentId("test");
+ createResourceDTO.setUrl("test");
+ createResourceDTO.setComponent("test");
+ createResourceDTO.setIcon("test");
+ createResourceDTO.setPerms("test");
+ createResourceDTO.setIsLeaf(true);
+ createResourceDTO.setIsRoute(1);
+ createResourceDTO.setResourceType(1);
+ createResourceDTO.setStatus(1);
+ createResourceDTO.setSort(1);
+ }
}
diff --git
a/shenyu-admin/src/test/java/org/apache/shenyu/admin/service/ResourceServiceTest.java
b/shenyu-admin/src/test/java/org/apache/shenyu/admin/service/ResourceServiceTest.java
index e0e14ad0f..e3b56f1dd 100644
---
a/shenyu-admin/src/test/java/org/apache/shenyu/admin/service/ResourceServiceTest.java
+++
b/shenyu-admin/src/test/java/org/apache/shenyu/admin/service/ResourceServiceTest.java
@@ -17,8 +17,19 @@
package org.apache.shenyu.admin.service;
+import static com.google.common.collect.Lists.newArrayList;
+import static org.hamcrest.MatcherAssert.assertThat;
+import static org.hamcrest.Matchers.equalTo;
+import static org.hamcrest.Matchers.is;
+import static org.junit.jupiter.api.Assertions.assertEquals;
+import static org.junit.jupiter.api.Assertions.assertNull;
+import static org.mockito.ArgumentMatchers.any;
+import static org.mockito.Mockito.reset;
+import static org.mockito.Mockito.when;
+
import org.apache.shenyu.admin.mapper.PermissionMapper;
import org.apache.shenyu.admin.mapper.ResourceMapper;
+import org.apache.shenyu.admin.model.dto.CreateResourceDTO;
import org.apache.shenyu.admin.model.dto.ResourceDTO;
import org.apache.shenyu.admin.model.entity.ResourceDO;
import org.apache.shenyu.admin.model.page.CommonPager;
@@ -31,6 +42,12 @@ import
org.apache.shenyu.admin.service.publish.ResourceEventPublisher;
import org.apache.shenyu.admin.utils.ResourceUtil;
import org.apache.shenyu.common.constant.ResourceTypeConstants;
import org.apache.shenyu.common.enums.AdminResourceEnum;
+
+import java.sql.Timestamp;
+import java.util.Collections;
+import java.util.List;
+import java.util.stream.Collectors;
+
import org.assertj.core.util.Lists;
import org.junit.jupiter.api.Test;
import org.junit.jupiter.api.extension.ExtendWith;
@@ -40,20 +57,6 @@ import org.mockito.junit.jupiter.MockitoExtension;
import org.mockito.junit.jupiter.MockitoSettings;
import org.mockito.quality.Strictness;
-import java.sql.Timestamp;
-import java.util.Collections;
-import java.util.List;
-import java.util.stream.Collectors;
-
-import static com.google.common.collect.Lists.newArrayList;
-import static org.hamcrest.MatcherAssert.assertThat;
-import static org.hamcrest.Matchers.equalTo;
-import static org.hamcrest.Matchers.is;
-import static org.junit.jupiter.api.Assertions.assertEquals;
-import static org.junit.jupiter.api.Assertions.assertNull;
-import static org.mockito.Mockito.reset;
-import static org.mockito.Mockito.when;
-
/**
* test for {@linkplain ResourceService}.
*/
@@ -73,19 +76,6 @@ public class ResourceServiceTest {
@Mock
private ResourceEventPublisher publisher;
- @Test
- public void testCreateResource() {
- final ResourceDO resourceDO = new ResourceDO();
- resourceDO.setId("mock resource id");
-
- reset(resourceMapper);
- reset(permissionMapper);
- reset(publisher);
- when(resourceMapper.insertSelective(resourceDO)).thenReturn(1);
-
- resourceService.createResource(resourceDO);
- }
-
@Test
public void testCreateResourceBatch() {
@@ -106,14 +96,24 @@ public class ResourceServiceTest {
}
@Test
- public void testCreateOrUpdate() {
+ public void testUpdate() {
// test update
ResourceDTO forUpdateResource = new ResourceDTO();
forUpdateResource.setId("mock id");
reset(resourceMapper);
reset(publisher);
when(resourceMapper.updateSelective(ResourceDO.buildResourceDO(forUpdateResource))).thenReturn(1);
- assertThat(resourceService.createOrUpdate(forUpdateResource),
equalTo(1));
+ assertThat(resourceService.update(forUpdateResource), equalTo(1));
+ }
+
+ @Test
+ public void testCreate() {
+ // test create
+ final CreateResourceDTO createResourceDTO = new CreateResourceDTO();
+ reset(resourceMapper);
+ reset(publisher);
+ when(resourceMapper.insertSelective(any())).thenReturn(1);
+ assertThat(resourceService.create(createResourceDTO), equalTo(1));
}
@Test