Commit fcd44d8b0d7dc80a8db5d0386c12500810c404a4
1 parent
4be5b73d
修复工作流的单元测试
Showing
13 changed files
with
122 additions
and
58 deletions
yudao-admin-server/src/main/java/cn/iocoder/yudao/adminserver/modules/system/dal/mysql/dept/SysDeptMapper.java
| ... | ... | @@ -23,7 +23,7 @@ public interface SysDeptMapper extends BaseMapperX<SysDeptDO> { |
| 23 | 23 | |
| 24 | 24 | default SysDeptDO selectByParentIdAndName(Long parentId, String name) { |
| 25 | 25 | return selectOne(new LambdaQueryWrapper<SysDeptDO>().eq(SysDeptDO::getParentId, parentId) |
| 26 | - .eq(SysDeptDO::getParentId, name)); | |
| 26 | + .eq(SysDeptDO::getName, name)); | |
| 27 | 27 | } |
| 28 | 28 | |
| 29 | 29 | default Integer selectCountByParentId(Long parentId) { | ... | ... |
yudao-admin-server/src/main/java/cn/iocoder/yudao/adminserver/modules/system/dal/mysql/permission/SysMenuMapper.java
| ... | ... | @@ -24,7 +24,7 @@ public interface SysMenuMapper extends BaseMapperX<SysMenuDO> { |
| 24 | 24 | } |
| 25 | 25 | |
| 26 | 26 | default List<SysMenuDO> selectList(SysMenuListReqVO reqVO) { |
| 27 | - return selectList(new LambdaQueryWrapperX<SysMenuDO>().likeIfPresent(SysMenuDO::getParentId, reqVO.getName()) | |
| 27 | + return selectList(new LambdaQueryWrapperX<SysMenuDO>().likeIfPresent(SysMenuDO::getName, reqVO.getName()) | |
| 28 | 28 | .eqIfPresent(SysMenuDO::getStatus, reqVO.getStatus())); |
| 29 | 29 | } |
| 30 | 30 | ... | ... |
yudao-admin-server/src/test/java/cn/iocoder/yudao/adminserver/modules/bpm/framework/activiti/core/behavior/BpmUserTaskActivitiBehaviorTest.java
| ... | ... | @@ -17,6 +17,7 @@ import cn.iocoder.yudao.framework.common.enums.CommonStatusEnum; |
| 17 | 17 | import cn.iocoder.yudao.framework.common.util.collection.CollectionUtils; |
| 18 | 18 | import cn.iocoder.yudao.framework.test.core.ut.BaseMockitoUnitTest; |
| 19 | 19 | import org.activiti.engine.impl.persistence.entity.TaskEntity; |
| 20 | +import org.activiti.engine.impl.persistence.entity.TaskEntityImpl; | |
| 20 | 21 | import org.junit.jupiter.api.Test; |
| 21 | 22 | import org.mockito.InjectMocks; |
| 22 | 23 | import org.mockito.Mock; |
| ... | ... | @@ -70,7 +71,7 @@ public class BpmUserTaskActivitiBehaviorTest extends BaseMockitoUnitTest { |
| 70 | 71 | // mock 方法 |
| 71 | 72 | List<SysUserDO> users = CollectionUtils.convertList(asSet(11L, 22L), |
| 72 | 73 | id -> new SysUserDO().setId(id)); |
| 73 | - when(userService.getUsersByPostIds(eq(rule.getOptions()))).thenReturn(users); | |
| 74 | + when(userService.getUsersByDeptIds(eq(rule.getOptions()))).thenReturn(users); | |
| 74 | 75 | mockGetUserMap(asSet(11L, 22L)); |
| 75 | 76 | |
| 76 | 77 | // 调用 |
| ... | ... | @@ -185,10 +186,11 @@ public class BpmUserTaskActivitiBehaviorTest extends BaseMockitoUnitTest { |
| 185 | 186 | |
| 186 | 187 | @Test |
| 187 | 188 | public void testRemoveDisableUsers() { |
| 188 | - // 准备参数 | |
| 189 | + // 准备参数. 1L 可以找到;2L 是禁用的;3L 找不到 | |
| 189 | 190 | Set<Long> assigneeUserIds = asSet(1L, 2L, 3L); |
| 190 | 191 | // mock 方法 |
| 191 | - SysUserDO user1 = randomPojo(SysUserDO.class, o -> o.setId(1L)); | |
| 192 | + SysUserDO user1 = randomPojo(SysUserDO.class, o -> o.setId(1L) | |
| 193 | + .setStatus(CommonStatusEnum.ENABLE.getStatus())); | |
| 192 | 194 | SysUserDO user2 = randomPojo(SysUserDO.class, o -> o.setId(2L) |
| 193 | 195 | .setStatus(CommonStatusEnum.DISABLE.getStatus())); |
| 194 | 196 | Map<Long, SysUserDO> userMap = MapUtil.builder(user1.getId(), user1) | ... | ... |
yudao-admin-server/src/test/java/cn/iocoder/yudao/adminserver/modules/bpm/service/definition/BpmFormServiceTest.java
| 1 | 1 | package cn.iocoder.yudao.adminserver.modules.bpm.service.definition; |
| 2 | 2 | |
| 3 | +import cn.hutool.core.util.RandomUtil; | |
| 3 | 4 | import cn.iocoder.yudao.adminserver.BaseDbUnitTest; |
| 4 | 5 | import cn.iocoder.yudao.adminserver.modules.bpm.controller.definition.vo.form.BpmFormCreateReqVO; |
| 5 | 6 | import cn.iocoder.yudao.adminserver.modules.bpm.controller.definition.vo.form.BpmFormPageReqVO; |
| 6 | 7 | import cn.iocoder.yudao.adminserver.modules.bpm.controller.definition.vo.form.BpmFormUpdateReqVO; |
| 7 | 8 | import cn.iocoder.yudao.adminserver.modules.bpm.dal.dataobject.definition.BpmFormDO; |
| 8 | 9 | import cn.iocoder.yudao.adminserver.modules.bpm.dal.mysql.definition.BpmFormMapper; |
| 10 | +import cn.iocoder.yudao.adminserver.modules.bpm.service.definition.dto.BpmFormFieldRespDTO; | |
| 9 | 11 | import cn.iocoder.yudao.adminserver.modules.bpm.service.definition.impl.BpmFormServiceImpl; |
| 10 | 12 | import cn.iocoder.yudao.framework.common.pojo.PageResult; |
| 13 | +import cn.iocoder.yudao.framework.common.util.json.JsonUtils; | |
| 11 | 14 | import org.junit.jupiter.api.Test; |
| 12 | 15 | import org.springframework.context.annotation.Import; |
| 13 | 16 | |
| 14 | 17 | import javax.annotation.Resource; |
| 15 | 18 | |
| 19 | +import java.util.ArrayList; | |
| 20 | +import java.util.Arrays; | |
| 21 | +import java.util.Collections; | |
| 22 | +import java.util.List; | |
| 23 | +import java.util.function.Consumer; | |
| 24 | +import java.util.function.Function; | |
| 25 | +import java.util.stream.Collectors; | |
| 26 | +import java.util.stream.Stream; | |
| 27 | + | |
| 16 | 28 | import static cn.iocoder.yudao.adminserver.modules.bpm.enums.BpmErrorCodeConstants.FORM_NOT_EXISTS; |
| 17 | 29 | import static cn.iocoder.yudao.framework.common.util.object.ObjectUtils.cloneIgnoreId; |
| 18 | 30 | import static cn.iocoder.yudao.framework.test.core.util.AssertUtils.assertPojoEquals; |
| ... | ... | @@ -38,7 +50,10 @@ public class BpmFormServiceTest extends BaseDbUnitTest { |
| 38 | 50 | @Test |
| 39 | 51 | public void testCreateForm_success() { |
| 40 | 52 | // 准备参数 |
| 41 | - BpmFormCreateReqVO reqVO = randomPojo(BpmFormCreateReqVO.class); | |
| 53 | + BpmFormCreateReqVO reqVO = randomPojo(BpmFormCreateReqVO.class, o -> { | |
| 54 | + o.setConf("{}"); | |
| 55 | + o.setFields(randomFields()); | |
| 56 | + }); | |
| 42 | 57 | |
| 43 | 58 | // 调用 |
| 44 | 59 | Long formId = formService.createForm(reqVO); |
| ... | ... | @@ -52,11 +67,16 @@ public class BpmFormServiceTest extends BaseDbUnitTest { |
| 52 | 67 | @Test |
| 53 | 68 | public void testUpdateForm_success() { |
| 54 | 69 | // mock 数据 |
| 55 | - BpmFormDO dbForm = randomPojo(BpmFormDO.class); | |
| 70 | + BpmFormDO dbForm = randomPojo(BpmFormDO.class, o -> { | |
| 71 | + o.setConf("{}"); | |
| 72 | + o.setFields(randomFields()); | |
| 73 | + }); | |
| 56 | 74 | formMapper.insert(dbForm);// @Sql: 先插入出一条存在的数据 |
| 57 | 75 | // 准备参数 |
| 58 | 76 | BpmFormUpdateReqVO reqVO = randomPojo(BpmFormUpdateReqVO.class, o -> { |
| 59 | 77 | o.setId(dbForm.getId()); // 设置更新的 ID |
| 78 | + o.setConf("{'yudao': 'yuanma'}"); | |
| 79 | + o.setFields(randomFields()); | |
| 60 | 80 | }); |
| 61 | 81 | |
| 62 | 82 | // 调用 |
| ... | ... | @@ -69,7 +89,10 @@ public class BpmFormServiceTest extends BaseDbUnitTest { |
| 69 | 89 | @Test |
| 70 | 90 | public void testUpdateForm_notExists() { |
| 71 | 91 | // 准备参数 |
| 72 | - BpmFormUpdateReqVO reqVO = randomPojo(BpmFormUpdateReqVO.class); | |
| 92 | + BpmFormUpdateReqVO reqVO = randomPojo(BpmFormUpdateReqVO.class, o -> { | |
| 93 | + o.setConf("{'yudao': 'yuanma'}"); | |
| 94 | + o.setFields(randomFields()); | |
| 95 | + }); | |
| 73 | 96 | |
| 74 | 97 | // 调用, 并断言异常 |
| 75 | 98 | assertServiceException(() -> formService.updateForm(reqVO), FORM_NOT_EXISTS); |
| ... | ... | @@ -119,4 +142,11 @@ public class BpmFormServiceTest extends BaseDbUnitTest { |
| 119 | 142 | assertPojoEquals(dbForm, pageResult.getList().get(0)); |
| 120 | 143 | } |
| 121 | 144 | |
| 145 | + private List<String> randomFields() { | |
| 146 | + int size = RandomUtil.randomInt(1, 3); | |
| 147 | + return Stream.iterate(0, i -> i).limit(size) | |
| 148 | + .map(i -> JsonUtils.toJsonString(randomPojo(BpmFormFieldRespDTO.class))) | |
| 149 | + .collect(Collectors.toList()); | |
| 150 | + } | |
| 151 | + | |
| 122 | 152 | } | ... | ... |
yudao-admin-server/src/test/java/cn/iocoder/yudao/adminserver/modules/bpm/service/definition/BpmUserGroupServiceTest.java
| 1 | 1 | package cn.iocoder.yudao.adminserver.modules.bpm.service.definition; |
| 2 | 2 | |
| 3 | +import cn.hutool.core.date.DateUtil; | |
| 3 | 4 | import cn.iocoder.yudao.adminserver.BaseDbUnitTest; |
| 4 | 5 | import cn.iocoder.yudao.adminserver.modules.bpm.controller.definition.vo.group.BpmUserGroupCreateReqVO; |
| 5 | 6 | import cn.iocoder.yudao.adminserver.modules.bpm.controller.definition.vo.group.BpmUserGroupPageReqVO; |
| ... | ... | @@ -7,7 +8,9 @@ import cn.iocoder.yudao.adminserver.modules.bpm.controller.definition.vo.group.B |
| 7 | 8 | import cn.iocoder.yudao.adminserver.modules.bpm.dal.dataobject.definition.BpmUserGroupDO; |
| 8 | 9 | import cn.iocoder.yudao.adminserver.modules.bpm.dal.mysql.definition.BpmUserGroupMapper; |
| 9 | 10 | import cn.iocoder.yudao.adminserver.modules.bpm.service.definition.impl.BpmUserGroupServiceImpl; |
| 11 | +import cn.iocoder.yudao.framework.common.enums.CommonStatusEnum; | |
| 10 | 12 | import cn.iocoder.yudao.framework.common.pojo.PageResult; |
| 13 | +import cn.iocoder.yudao.framework.common.util.date.DateUtils; | |
| 11 | 14 | import org.junit.jupiter.api.Test; |
| 12 | 15 | import org.springframework.context.annotation.Import; |
| 13 | 16 | |
| ... | ... | @@ -98,27 +101,27 @@ public class BpmUserGroupServiceTest extends BaseDbUnitTest { |
| 98 | 101 | assertServiceException(() -> userGroupService.deleteUserGroup(id), USER_GROUP_NOT_EXISTS); |
| 99 | 102 | } |
| 100 | 103 | |
| 101 | - @Test // TODO 请修改 null 为需要的值 | |
| 104 | + @Test | |
| 102 | 105 | public void testGetUserGroupPage() { |
| 103 | 106 | // mock 数据 |
| 104 | 107 | BpmUserGroupDO dbUserGroup = randomPojo(BpmUserGroupDO.class, o -> { // 等会查询到 |
| 105 | - o.setName(null); | |
| 106 | - o.setStatus(null); | |
| 107 | - o.setCreateTime(null); | |
| 108 | + o.setName("芋道源码"); | |
| 109 | + o.setStatus(CommonStatusEnum.ENABLE.getStatus()); | |
| 110 | + o.setCreateTime(DateUtils.buildTime(2021, 11, 11)); | |
| 108 | 111 | }); |
| 109 | 112 | userGroupMapper.insert(dbUserGroup); |
| 110 | 113 | // 测试 name 不匹配 |
| 111 | - userGroupMapper.insert(cloneIgnoreId(dbUserGroup, o -> o.setName(null))); | |
| 114 | + userGroupMapper.insert(cloneIgnoreId(dbUserGroup, o -> o.setName("芋道"))); | |
| 112 | 115 | // 测试 status 不匹配 |
| 113 | - userGroupMapper.insert(cloneIgnoreId(dbUserGroup, o -> o.setStatus(null))); | |
| 116 | + userGroupMapper.insert(cloneIgnoreId(dbUserGroup, o -> o.setStatus(CommonStatusEnum.DISABLE.getStatus()))); | |
| 114 | 117 | // 测试 createTime 不匹配 |
| 115 | - userGroupMapper.insert(cloneIgnoreId(dbUserGroup, o -> o.setCreateTime(null))); | |
| 118 | + userGroupMapper.insert(cloneIgnoreId(dbUserGroup, o -> o.setCreateTime(DateUtils.buildTime(2021, 12, 12)))); | |
| 116 | 119 | // 准备参数 |
| 117 | 120 | BpmUserGroupPageReqVO reqVO = new BpmUserGroupPageReqVO(); |
| 118 | - reqVO.setName(null); | |
| 119 | - reqVO.setStatus(null); | |
| 120 | - reqVO.setBeginCreateTime(null); | |
| 121 | - reqVO.setEndCreateTime(null); | |
| 121 | + reqVO.setName("源码"); | |
| 122 | + reqVO.setStatus(CommonStatusEnum.ENABLE.getStatus()); | |
| 123 | + reqVO.setBeginCreateTime(DateUtils.buildTime(2021, 11, 10)); | |
| 124 | + reqVO.setEndCreateTime(DateUtils.buildTime(2021, 11, 12)); | |
| 122 | 125 | |
| 123 | 126 | // 调用 |
| 124 | 127 | PageResult<BpmUserGroupDO> pageResult = userGroupService.getUserGroupPage(reqVO); | ... | ... |
yudao-admin-server/src/test/java/cn/iocoder/yudao/adminserver/modules/system/service/dept/SysDeptServiceTest.java
yudao-admin-server/src/test/java/cn/iocoder/yudao/adminserver/modules/system/service/permission/SysMenuServiceTest.java
| ... | ... | @@ -28,7 +28,7 @@ import static cn.iocoder.yudao.adminserver.modules.system.enums.SysErrorCodeCons |
| 28 | 28 | import static cn.iocoder.yudao.framework.test.core.util.AssertUtils.assertPojoEquals; |
| 29 | 29 | import static cn.iocoder.yudao.framework.test.core.util.AssertUtils.assertServiceException; |
| 30 | 30 | import static cn.iocoder.yudao.framework.test.core.util.RandomUtils.*; |
| 31 | -import static org.junit.jupiter.api.Assertions.assertEquals; | |
| 31 | +import static org.junit.jupiter.api.Assertions.*; | |
| 32 | 32 | import static org.mockito.Mockito.verify; |
| 33 | 33 | |
| 34 | 34 | @Import(SysMenuServiceImpl.class) |
| ... | ... | @@ -146,12 +146,12 @@ public class SysMenuServiceTest extends BaseDbUnitTest { |
| 146 | 146 | SysMenuDO sonMenuDO = initParentAndSonMenuDO(); |
| 147 | 147 | Long sonId = sonMenuDO.getId(); |
| 148 | 148 | |
| 149 | - //调用 | |
| 149 | + // 调用 | |
| 150 | 150 | sysMenuService.deleteMenu(sonId); |
| 151 | 151 | |
| 152 | - //断言 | |
| 152 | + // 断言 | |
| 153 | 153 | SysMenuDO menuDO = menuMapper.selectById(sonId); |
| 154 | - Assert.isNull(menuDO); | |
| 154 | + assertNull(menuDO); | |
| 155 | 155 | verify(sysPermissionService).processMenuDeleted(sonId); |
| 156 | 156 | verify(sysMenuProducer).sendMenuRefreshMessage(); |
| 157 | 157 | } |
| ... | ... | @@ -182,18 +182,18 @@ public class SysMenuServiceTest extends BaseDbUnitTest { |
| 182 | 182 | menuMapper.insert(sonMenu); |
| 183 | 183 | idMenuMap.put(sonMenu.getId(), sonMenu); |
| 184 | 184 | |
| 185 | - //调用 | |
| 185 | + // 调用 | |
| 186 | 186 | List<SysMenuDO> menuDOS = sysMenuService.getMenus(); |
| 187 | 187 | |
| 188 | - //断言 | |
| 189 | - Assert.isTrue(menuDOS.size() == idMenuMap.size()); | |
| 188 | + // 断言 | |
| 189 | + assertEquals(menuDOS.size(), idMenuMap.size()); | |
| 190 | 190 | menuDOS.forEach(m -> assertPojoEquals(idMenuMap.get(m.getId()), m)); |
| 191 | 191 | } |
| 192 | 192 | |
| 193 | 193 | @Test |
| 194 | 194 | public void testGetMenusReqVo_success() { |
| 195 | 195 | Map<Long, SysMenuDO> idMenuMap = new HashMap<>(); |
| 196 | - //用于验证可以模糊搜索名称包含"name",状态为1的menu | |
| 196 | + // 用于验证可以模糊搜索名称包含"name",状态为1的menu | |
| 197 | 197 | SysMenuDO menu = createMenuDO(MenuTypeEnum.MENU, "name2", 0L, 1); |
| 198 | 198 | menuMapper.insert(menu); |
| 199 | 199 | idMenuMap.put(menu.getId(), menu); |
| ... | ... | @@ -206,32 +206,32 @@ public class SysMenuServiceTest extends BaseDbUnitTest { |
| 206 | 206 | menuMapper.insert(menu); |
| 207 | 207 | idMenuMap.put(menu.getId(), menu); |
| 208 | 208 | |
| 209 | - //以下是不符合搜索条件的的menu | |
| 209 | + // 以下是不符合搜索条件的的menu | |
| 210 | 210 | menu = createMenuDO(MenuTypeEnum.MENU, "xxxxxx", 0L, 1); |
| 211 | 211 | menuMapper.insert(menu); |
| 212 | 212 | menu = createMenuDO(MenuTypeEnum.MENU, "name", 0L, 2); |
| 213 | 213 | menuMapper.insert(menu); |
| 214 | 214 | |
| 215 | - //调用 | |
| 215 | + // 调用 | |
| 216 | 216 | SysMenuListReqVO reqVO = new SysMenuListReqVO(); |
| 217 | 217 | reqVO.setStatus(1); |
| 218 | 218 | reqVO.setName("name"); |
| 219 | 219 | List<SysMenuDO> menuDOS = sysMenuService.getMenus(reqVO); |
| 220 | 220 | |
| 221 | - //断言 | |
| 222 | - Assert.isTrue(menuDOS.size() == idMenuMap.size()); | |
| 221 | + // 断言 | |
| 222 | + assertEquals(menuDOS.size(), idMenuMap.size()); | |
| 223 | 223 | menuDOS.forEach(m -> assertPojoEquals(idMenuMap.get(m.getId()), m)); |
| 224 | 224 | } |
| 225 | 225 | |
| 226 | 226 | @Test |
| 227 | 227 | public void testListMenusFromCache_success() throws Exception { |
| 228 | 228 | Map<Long, SysMenuDO> mockCacheMap = new HashMap<>(); |
| 229 | - //获取代理对象 | |
| 229 | + // 获取代理对象 | |
| 230 | 230 | SysMenuServiceImpl target = (SysMenuServiceImpl) SpringAopUtils.getTarget(sysMenuService); |
| 231 | 231 | BeanUtil.setFieldValue(target, "menuCache", mockCacheMap); |
| 232 | 232 | |
| 233 | 233 | Map<Long, SysMenuDO> idMenuMap = new HashMap<>(); |
| 234 | - //用于验证搜索类型为MENU,状态为1的menu | |
| 234 | + // 用于验证搜索类型为MENU,状态为1的menu | |
| 235 | 235 | SysMenuDO menuDO = createMenuDO(1L, MenuTypeEnum.MENU, "name", 0L, 1); |
| 236 | 236 | mockCacheMap.put(menuDO.getId(), menuDO); |
| 237 | 237 | idMenuMap.put(menuDO.getId(), menuDO); |
| ... | ... | @@ -240,7 +240,7 @@ public class SysMenuServiceTest extends BaseDbUnitTest { |
| 240 | 240 | mockCacheMap.put(menuDO.getId(), menuDO); |
| 241 | 241 | idMenuMap.put(menuDO.getId(), menuDO); |
| 242 | 242 | |
| 243 | - //以下是不符合搜索条件的menu | |
| 243 | + // 以下是不符合搜索条件的menu | |
| 244 | 244 | menuDO = createMenuDO(3L, MenuTypeEnum.BUTTON, "name", 0L, 1); |
| 245 | 245 | mockCacheMap.put(menuDO.getId(), menuDO); |
| 246 | 246 | menuDO = createMenuDO(4L, MenuTypeEnum.MENU, "name", 0L, 2); |
| ... | ... | @@ -248,24 +248,24 @@ public class SysMenuServiceTest extends BaseDbUnitTest { |
| 248 | 248 | |
| 249 | 249 | List<SysMenuDO> menuDOS = sysMenuService.listMenusFromCache(Collections.singletonList(MenuTypeEnum.MENU.getType()), |
| 250 | 250 | Collections.singletonList(CommonStatusEnum.DISABLE.getStatus())); |
| 251 | - Assert.isTrue(menuDOS.size() == idMenuMap.size()); | |
| 251 | + assertEquals(menuDOS.size(), idMenuMap.size()); | |
| 252 | 252 | menuDOS.forEach(m -> assertPojoEquals(idMenuMap.get(m.getId()), m)); |
| 253 | 253 | } |
| 254 | 254 | |
| 255 | 255 | @Test |
| 256 | 256 | public void testListMenusFromCache2_success() throws Exception { |
| 257 | 257 | Map<Long, SysMenuDO> mockCacheMap = new HashMap<>(); |
| 258 | - //获取代理对象 | |
| 258 | + // 获取代理对象 | |
| 259 | 259 | SysMenuServiceImpl target = (SysMenuServiceImpl) SpringAopUtils.getTarget(sysMenuService); |
| 260 | 260 | BeanUtil.setFieldValue(target, "menuCache", mockCacheMap); |
| 261 | 261 | |
| 262 | 262 | Map<Long, SysMenuDO> idMenuMap = new HashMap<>(); |
| 263 | - //验证搜索id为1, 类型为MENU, 状态为1 的menu | |
| 263 | + // 验证搜索id为1, 类型为MENU, 状态为1 的menu | |
| 264 | 264 | SysMenuDO menuDO = createMenuDO(1L, MenuTypeEnum.MENU, "name", 0L, 1); |
| 265 | 265 | mockCacheMap.put(menuDO.getId(), menuDO); |
| 266 | 266 | idMenuMap.put(menuDO.getId(), menuDO); |
| 267 | 267 | |
| 268 | - //以下是不符合搜索条件的menu | |
| 268 | + // 以下是不符合搜索条件的menu | |
| 269 | 269 | menuDO = createMenuDO(2L, MenuTypeEnum.MENU, "name", 0L, 1); |
| 270 | 270 | mockCacheMap.put(menuDO.getId(), menuDO); |
| 271 | 271 | menuDO = createMenuDO(3L, MenuTypeEnum.BUTTON, "name", 0L, 1); |
| ... | ... | @@ -275,7 +275,7 @@ public class SysMenuServiceTest extends BaseDbUnitTest { |
| 275 | 275 | |
| 276 | 276 | List<SysMenuDO> menuDOS = sysMenuService.listMenusFromCache(Collections.singletonList(1L), |
| 277 | 277 | Collections.singletonList(MenuTypeEnum.MENU.getType()), Collections.singletonList(1)); |
| 278 | - Assert.isTrue(menuDOS.size() == idMenuMap.size()); | |
| 278 | + assertEquals(menuDOS.size(), idMenuMap.size()); | |
| 279 | 279 | menuDOS.forEach(menu -> assertPojoEquals(idMenuMap.get(menu.getId()), menu)); |
| 280 | 280 | } |
| 281 | 281 | ... | ... |
yudao-admin-server/src/test/resources/logback-spring.xml deleted
yudao-admin-server/src/test/resources/logback.xml
0 → 100644
| 1 | +<configuration> | |
| 2 | + <!-- 由于单元测试未开启 Spring Boot 的上下文,所以只能使用 logback.xml 文件 --> | |
| 3 | + | |
| 4 | + <!-- 引用 Spring Boot 的 logback 基础配置 --> | |
| 5 | + <include resource="org/springframework/boot/logging/logback/defaults.xml" /> | |
| 6 | + | |
| 7 | + <!-- 格式化输出:%d 表示日期,%X{tid} SkWalking 链路追踪编号,%thread 表示线程名,%-5level:级别从左显示 5 个字符宽度,%msg:日志消息,%n是换行符 --> | |
| 8 | + <property name="PATTERN_DEFAULT" value="%d{${LOG_DATEFORMAT_PATTERN:-yyyy-MM-dd HH:mm:ss.SSS}} ${LOG_LEVEL_PATTERN:-%5p} ${PID:- } --- [%thread] [%tid] %-40.40logger{39} : %m%n${LOG_EXCEPTION_CONVERSION_WORD:-%wEx}"/> | |
| 9 | + | |
| 10 | + <!-- 控制台 Appender --> | |
| 11 | + <appender name="STDOUT" class="ch.qos.logback.core.ConsoleAppender"> | |
| 12 | + <encoder class="ch.qos.logback.core.encoder.LayoutWrappingEncoder"> | |
| 13 | + <layout class="org.apache.skywalking.apm.toolkit.log.logback.v1.x.TraceIdPatternLogbackLayout"> | |
| 14 | + <pattern>${PATTERN_DEFAULT}</pattern> | |
| 15 | + </layout> | |
| 16 | + </encoder> | |
| 17 | + </appender> | |
| 18 | + | |
| 19 | + <root level="INFO"> | |
| 20 | + <appender-ref ref="STDOUT"/> | |
| 21 | + </root> | |
| 22 | + | |
| 23 | +</configuration> | ... | ... |
yudao-admin-server/src/test/resources/sql/clean.sql
yudao-admin-server/src/test/resources/sql/create_tables.sql
| ... | ... | @@ -74,7 +74,7 @@ CREATE TABLE IF NOT EXISTS "sys_dept" ( |
| 74 | 74 | "name" varchar(30) NOT NULL DEFAULT '', |
| 75 | 75 | "parent_id" bigint NOT NULL DEFAULT '0', |
| 76 | 76 | "sort" int NOT NULL DEFAULT '0', |
| 77 | - "leader" varchar(20) DEFAULT NULL, | |
| 77 | + "leader_user_id" bigint DEFAULT NULL, | |
| 78 | 78 | "phone" varchar(11) DEFAULT NULL, |
| 79 | 79 | "email" varchar(50) DEFAULT NULL, |
| 80 | 80 | "status" tinyint NOT NULL, |
| ... | ... | @@ -490,8 +490,9 @@ CREATE TABLE IF NOT EXISTS "pay_merchant" |
| 490 | 490 | PRIMARY KEY ("id") |
| 491 | 491 | ) COMMENT '支付商户信息'; |
| 492 | 492 | |
| 493 | -CREATE TABLE IF NOT EXISTS "pay_app" | |
| 494 | -( | |
| 493 | +-- bpm 开头的 DB | |
| 494 | + | |
| 495 | +CREATE TABLE IF NOT EXISTS "pay_app" ( | |
| 495 | 496 | "id" number NOT NULL GENERATED BY DEFAULT AS IDENTITY, |
| 496 | 497 | "name" varchar(64) NOT NULL, |
| 497 | 498 | "status" tinyint NOT NULL, |
| ... | ... | @@ -507,8 +508,7 @@ CREATE TABLE IF NOT EXISTS "pay_app" |
| 507 | 508 | PRIMARY KEY ("id") |
| 508 | 509 | ) COMMENT = '支付应用信息'; |
| 509 | 510 | |
| 510 | -CREATE TABLE IF NOT EXISTS "pay_channel" | |
| 511 | -( | |
| 511 | +CREATE TABLE IF NOT EXISTS "pay_channel" ( | |
| 512 | 512 | "id" number NOT NULL GENERATED BY DEFAULT AS IDENTITY, |
| 513 | 513 | "code" varchar(32) NOT NULL, |
| 514 | 514 | "status" tinyint(4) NOT NULL, |
| ... | ... | @@ -525,8 +525,7 @@ CREATE TABLE IF NOT EXISTS "pay_channel" |
| 525 | 525 | PRIMARY KEY ("id") |
| 526 | 526 | ) COMMENT = '支付渠道'; |
| 527 | 527 | |
| 528 | -CREATE TABLE IF NOT EXISTS `pay_order` | |
| 529 | -( | |
| 528 | +CREATE TABLE IF NOT EXISTS `pay_order` ( | |
| 530 | 529 | "id" number NOT NULL GENERATED BY DEFAULT AS IDENTITY, |
| 531 | 530 | `merchant_id` bigint(20) NOT NULL, |
| 532 | 531 | `app_id` bigint(20) NOT NULL, |
| ... | ... | @@ -559,12 +558,8 @@ CREATE TABLE IF NOT EXISTS `pay_order` |
| 559 | 558 | PRIMARY KEY ("id") |
| 560 | 559 | ) COMMENT = '支付订单'; |
| 561 | 560 | |
| 562 | - | |
| 563 | - | |
| 564 | -CREATE TABLE IF NOT EXISTS `pay_refund` | |
| 565 | -( | |
| 561 | +CREATE TABLE IF NOT EXISTS `pay_refund` ( | |
| 566 | 562 | "id" number NOT NULL GENERATED BY DEFAULT AS IDENTITY, |
| 567 | - `req_no` varchar(64) NOT NULL, | |
| 568 | 563 | `merchant_id` bigint(20) NOT NULL, |
| 569 | 564 | `app_id` bigint(20) NOT NULL, |
| 570 | 565 | `channel_id` bigint(20) NOT NULL, |
| ... | ... | @@ -597,7 +592,7 @@ CREATE TABLE IF NOT EXISTS `pay_refund` |
| 597 | 592 | PRIMARY KEY ("id") |
| 598 | 593 | ) COMMENT = '退款订单'; |
| 599 | 594 | |
| 600 | - | |
| 595 | +-- bpm 开头的 DB | |
| 601 | 596 | |
| 602 | 597 | CREATE TABLE IF NOT EXISTS "bpm_form" ( |
| 603 | 598 | "id" bigint NOT NULL GENERATED BY DEFAULT AS IDENTITY, |
| ... | ... | @@ -613,3 +608,17 @@ CREATE TABLE IF NOT EXISTS "bpm_form" ( |
| 613 | 608 | "deleted" bit NOT NULL DEFAULT FALSE, |
| 614 | 609 | PRIMARY KEY ("id") |
| 615 | 610 | ) COMMENT '动态表单'; |
| 611 | + | |
| 612 | +CREATE TABLE IF NOT EXISTS "bpm_user_group" ( | |
| 613 | + "id" bigint NOT NULL GENERATED BY DEFAULT AS IDENTITY, | |
| 614 | + "name" varchar(63) NOT NULL, | |
| 615 | + "description" varchar(255) NOT NULL, | |
| 616 | + "status" tinyint NOT NULL, | |
| 617 | + "member_user_ids" varchar(255) NOT NULL, | |
| 618 | + "creator" varchar(64) DEFAULT '', | |
| 619 | + "create_time" timestamp NOT NULL DEFAULT CURRENT_TIMESTAMP, | |
| 620 | + "updater" varchar(64) DEFAULT '', | |
| 621 | + "update_time" timestamp NOT NULL DEFAULT CURRENT_TIMESTAMP, | |
| 622 | + "deleted" bit NOT NULL DEFAULT FALSE, | |
| 623 | + PRIMARY KEY ("id") | |
| 624 | + ) COMMENT '用户组'; | ... | ... |
yudao-framework/yudao-spring-boot-starter-test/src/main/java/cn/iocoder/yudao/framework/test/core/util/RandomUtils.java
| ... | ... | @@ -70,7 +70,7 @@ public class RandomUtils { |
| 70 | 70 | } |
| 71 | 71 | |
| 72 | 72 | public static <T> Set<T> randomSet(Class<T> clazz) { |
| 73 | - return Stream.iterate(0, i -> i).limit(RandomUtil.randomInt(0, RANDOM_DATE_MAX)) | |
| 73 | + return Stream.iterate(0, i -> i).limit(RandomUtil.randomInt(1, RANDOM_COLLECTION_LENGTH)) | |
| 74 | 74 | .map(i -> randomPojo(clazz)).collect(Collectors.toSet()); |
| 75 | 75 | } |
| 76 | 76 | ... | ... |