Commit f65688896539adecdba405c630f654034a780a1b

Authored by YunaiV
1 parent 4dab6d02

✅ 增加 permission 模块的单测覆盖率

yudao-module-system/yudao-module-system-biz/src/main/java/cn/iocoder/yudao/module/system/service/notify/NotifySendService.java
@@ -48,7 +48,7 @@ public interface NotifySendService { @@ -48,7 +48,7 @@ public interface NotifySendService {
48 String templateCode, Map<String, Object> templateParams); 48 String templateCode, Map<String, Object> templateParams);
49 49
50 default void sendBatchNotify(List<String> mobiles, List<Long> userIds, Integer userType, 50 default void sendBatchNotify(List<String> mobiles, List<Long> userIds, Integer userType,
51 - String templateCode, Map<String, Object> templateParams) { 51 + String templateCode, Map<String, Object> templateParams) {
52 throw new UnsupportedOperationException("暂时不支持该操作,感兴趣可以实现该功能哟!"); 52 throw new UnsupportedOperationException("暂时不支持该操作,感兴趣可以实现该功能哟!");
53 } 53 }
54 54
yudao-module-system/yudao-module-system-biz/src/main/java/cn/iocoder/yudao/module/system/service/permission/RoleServiceImpl.java
@@ -6,6 +6,7 @@ import cn.hutool.core.util.ObjectUtil; @@ -6,6 +6,7 @@ import cn.hutool.core.util.ObjectUtil;
6 import cn.hutool.extra.spring.SpringUtil; 6 import cn.hutool.extra.spring.SpringUtil;
7 import cn.iocoder.yudao.framework.common.enums.CommonStatusEnum; 7 import cn.iocoder.yudao.framework.common.enums.CommonStatusEnum;
8 import cn.iocoder.yudao.framework.common.pojo.PageResult; 8 import cn.iocoder.yudao.framework.common.pojo.PageResult;
  9 +import cn.iocoder.yudao.framework.common.util.collection.CollectionUtils;
9 import cn.iocoder.yudao.framework.common.util.object.BeanUtils; 10 import cn.iocoder.yudao.framework.common.util.object.BeanUtils;
10 import cn.iocoder.yudao.module.system.controller.admin.permission.vo.role.RolePageReqVO; 11 import cn.iocoder.yudao.module.system.controller.admin.permission.vo.role.RolePageReqVO;
11 import cn.iocoder.yudao.module.system.controller.admin.permission.vo.role.RoleSaveReqVO; 12 import cn.iocoder.yudao.module.system.controller.admin.permission.vo.role.RoleSaveReqVO;
@@ -27,7 +28,6 @@ import javax.annotation.Resource; @@ -27,7 +28,6 @@ import javax.annotation.Resource;
27 import java.util.*; 28 import java.util.*;
28 29
29 import static cn.iocoder.yudao.framework.common.exception.util.ServiceExceptionUtil.exception; 30 import static cn.iocoder.yudao.framework.common.exception.util.ServiceExceptionUtil.exception;
30 -import static cn.iocoder.yudao.framework.common.util.collection.CollectionUtils.convertList;  
31 import static cn.iocoder.yudao.framework.common.util.collection.CollectionUtils.convertMap; 31 import static cn.iocoder.yudao.framework.common.util.collection.CollectionUtils.convertMap;
32 import static cn.iocoder.yudao.module.system.enums.ErrorCodeConstants.*; 32 import static cn.iocoder.yudao.module.system.enums.ErrorCodeConstants.*;
33 33
@@ -198,7 +198,7 @@ public class RoleServiceImpl implements RoleService { @@ -198,7 +198,7 @@ public class RoleServiceImpl implements RoleService {
198 } 198 }
199 // 这里采用 for 循环从缓存中获取,主要考虑 Spring CacheManager 无法批量操作的问题 199 // 这里采用 for 循环从缓存中获取,主要考虑 Spring CacheManager 无法批量操作的问题
200 RoleServiceImpl self = getSelf(); 200 RoleServiceImpl self = getSelf();
201 - return convertList(ids, self::getRoleFromCache); 201 + return CollectionUtils.convertList(ids, self::getRoleFromCache);
202 } 202 }
203 203
204 @Override 204 @Override
yudao-module-system/yudao-module-system-biz/src/main/java/cn/iocoder/yudao/module/system/service/permission/bo/RoleCreateReqBO.java deleted
1 -package cn.iocoder.yudao.module.system.service.permission.bo;  
2 -  
3 -import lombok.Data;  
4 -  
5 -import javax.validation.constraints.NotBlank;  
6 -import javax.validation.constraints.NotNull;  
7 -import javax.validation.constraints.Size;  
8 -  
9 -/**  
10 - * 角色创建 Request BO  
11 - *  
12 - * @author 芋道源码  
13 - */  
14 -@Data  
15 -public class RoleCreateReqBO {  
16 -  
17 - /**  
18 - * 租户编号  
19 - */  
20 - @NotNull(message = "租户编号不能为空")  
21 - private Long tenantId;  
22 -  
23 - /**  
24 - * 角色名称  
25 - */  
26 - @NotBlank(message = "角色名称不能为空")  
27 - @Size(max = 30, message = "角色名称长度不能超过30个字符")  
28 - private String name;  
29 -  
30 - /**  
31 - * 角色标志  
32 - */  
33 - @NotBlank(message = "角色标志不能为空")  
34 - @Size(max = 100, message = "角色标志长度不能超过100个字符")  
35 - private String code;  
36 -  
37 - /**  
38 - * 显示顺序  
39 - */  
40 - @NotNull(message = "显示顺序不能为空")  
41 - private Integer sort;  
42 -  
43 - /**  
44 - * 角色类型  
45 - */  
46 - @NotNull(message = "角色类型不能为空")  
47 - private Integer type;  
48 -  
49 -}  
yudao-module-system/yudao-module-system-biz/src/test/java/cn/iocoder/yudao/module/system/service/notify/NotifySendServiceImplTest.java
@@ -6,6 +6,7 @@ import cn.iocoder.yudao.framework.common.enums.UserTypeEnum; @@ -6,6 +6,7 @@ import cn.iocoder.yudao.framework.common.enums.UserTypeEnum;
6 import cn.iocoder.yudao.framework.test.core.ut.BaseMockitoUnitTest; 6 import cn.iocoder.yudao.framework.test.core.ut.BaseMockitoUnitTest;
7 import cn.iocoder.yudao.module.system.dal.dataobject.notify.NotifyTemplateDO; 7 import cn.iocoder.yudao.module.system.dal.dataobject.notify.NotifyTemplateDO;
8 import org.assertj.core.util.Lists; 8 import org.assertj.core.util.Lists;
  9 +import org.junit.jupiter.api.Assertions;
9 import org.junit.jupiter.api.Test; 10 import org.junit.jupiter.api.Test;
10 import org.mockito.InjectMocks; 11 import org.mockito.InjectMocks;
11 import org.mockito.Mock; 12 import org.mockito.Mock;
@@ -172,5 +173,18 @@ class NotifySendServiceImplTest extends BaseMockitoUnitTest { @@ -172,5 +173,18 @@ class NotifySendServiceImplTest extends BaseMockitoUnitTest {
172 NOTIFY_SEND_TEMPLATE_PARAM_MISS, "code"); 173 NOTIFY_SEND_TEMPLATE_PARAM_MISS, "code");
173 } 174 }
174 175
  176 + @Test
  177 + public void testSendBatchNotify() {
  178 + // 准备参数
  179 + // mock 方法
  180 +
  181 + // 调用
  182 + UnsupportedOperationException exception = Assertions.assertThrows(
  183 + UnsupportedOperationException.class,
  184 + () -> notifySendService.sendBatchNotify(null, null, null, null, null)
  185 + );
  186 + // 断言
  187 + assertEquals("暂时不支持该操作,感兴趣可以实现该功能哟!", exception.getMessage());
  188 + }
175 189
176 } 190 }
yudao-module-system/yudao-module-system-biz/src/test/java/cn/iocoder/yudao/module/system/service/permission/MenuServiceImplTest.java
@@ -13,6 +13,8 @@ import org.springframework.boot.test.mock.mockito.MockBean; @@ -13,6 +13,8 @@ import org.springframework.boot.test.mock.mockito.MockBean;
13 import org.springframework.context.annotation.Import; 13 import org.springframework.context.annotation.Import;
14 14
15 import javax.annotation.Resource; 15 import javax.annotation.Resource;
  16 +import java.util.Collection;
  17 +import java.util.Collections;
16 import java.util.List; 18 import java.util.List;
17 import java.util.Set; 19 import java.util.Set;
18 20
@@ -186,6 +188,40 @@ public class MenuServiceImplTest extends BaseDbUnitTest { @@ -186,6 +188,40 @@ public class MenuServiceImplTest extends BaseDbUnitTest {
186 } 188 }
187 189
188 @Test 190 @Test
  191 + public void testGetMenuIdListByPermissionFromCache() {
  192 + // mock 数据
  193 + MenuDO menu100 = randomPojo(MenuDO.class);
  194 + menuMapper.insert(menu100);
  195 + MenuDO menu101 = randomPojo(MenuDO.class);
  196 + menuMapper.insert(menu101);
  197 + // 准备参数
  198 + String permission = menu100.getPermission();
  199 +
  200 + // 调用
  201 + List<Long> ids = menuService.getMenuIdListByPermissionFromCache(permission);
  202 + // 断言
  203 + assertEquals(1, ids.size());
  204 + assertEquals(menu100.getId(), ids.get(0));
  205 + }
  206 +
  207 + @Test
  208 + public void testGetMenuList_ids() {
  209 + // mock 数据
  210 + MenuDO menu100 = randomPojo(MenuDO.class);
  211 + menuMapper.insert(menu100);
  212 + MenuDO menu101 = randomPojo(MenuDO.class);
  213 + menuMapper.insert(menu101);
  214 + // 准备参数
  215 + Collection<Long> ids = Collections.singleton(menu100.getId());
  216 +
  217 + // 调用
  218 + List<MenuDO> list = menuService.getMenuList(ids);
  219 + // 断言
  220 + assertEquals(1, list.size());
  221 + assertPojoEquals(menu100, list.get(0));
  222 + }
  223 +
  224 + @Test
189 public void testGetMenu() { 225 public void testGetMenu() {
190 // mock 数据 226 // mock 数据
191 MenuDO menu = randomPojo(MenuDO.class); 227 MenuDO menu = randomPojo(MenuDO.class);
yudao-module-system/yudao-module-system-biz/src/test/java/cn/iocoder/yudao/module/system/service/permission/RoleServiceImplTest.java
@@ -234,6 +234,39 @@ public class RoleServiceImplTest extends BaseDbUnitTest { @@ -234,6 +234,39 @@ public class RoleServiceImplTest extends BaseDbUnitTest {
234 } 234 }
235 235
236 @Test 236 @Test
  237 + public void testGetRoleList() {
  238 + // mock 数据
  239 + RoleDO dbRole01 = randomPojo(RoleDO.class, o -> o.setStatus(CommonStatusEnum.ENABLE.getStatus()));
  240 + roleMapper.insert(dbRole01);
  241 + RoleDO dbRole02 = randomPojo(RoleDO.class, o -> o.setStatus(CommonStatusEnum.DISABLE.getStatus()));
  242 + roleMapper.insert(dbRole02);
  243 +
  244 + // 调用
  245 + List<RoleDO> list = roleService.getRoleList();
  246 + // 断言
  247 + assertEquals(2, list.size());
  248 + assertPojoEquals(dbRole01, list.get(0));
  249 + assertPojoEquals(dbRole02, list.get(1));
  250 + }
  251 +
  252 + @Test
  253 + public void testGetRoleList_ids() {
  254 + // mock 数据
  255 + RoleDO dbRole01 = randomPojo(RoleDO.class, o -> o.setStatus(CommonStatusEnum.ENABLE.getStatus()));
  256 + roleMapper.insert(dbRole01);
  257 + RoleDO dbRole02 = randomPojo(RoleDO.class, o -> o.setStatus(CommonStatusEnum.DISABLE.getStatus()));
  258 + roleMapper.insert(dbRole02);
  259 + // 准备参数
  260 + Collection<Long> ids = singleton(dbRole01.getId());
  261 +
  262 + // 调用
  263 + List<RoleDO> list = roleService.getRoleList(ids);
  264 + // 断言
  265 + assertEquals(1, list.size());
  266 + assertPojoEquals(dbRole01, list.get(0));
  267 + }
  268 +
  269 + @Test
237 public void testGetRoleListFromCache() { 270 public void testGetRoleListFromCache() {
238 try (MockedStatic<SpringUtil> springUtilMockedStatic = mockStatic(SpringUtil.class)) { 271 try (MockedStatic<SpringUtil> springUtilMockedStatic = mockStatic(SpringUtil.class)) {
239 springUtilMockedStatic.when(() -> SpringUtil.getBean(eq(RoleServiceImpl.class))) 272 springUtilMockedStatic.when(() -> SpringUtil.getBean(eq(RoleServiceImpl.class)))