Bladeren bron

完善 PostServiceImpl 单元测试

YunaiV 2 jaren geleden
bovenliggende
commit
bef06ef940
13 gewijzigde bestanden met toevoegingen van 201 en 140 verwijderingen
  1. 1 1
      yudao-module-bpm/yudao-module-bpm-biz/src/main/java/cn/iocoder/yudao/module/bpm/service/definition/BpmTaskAssignRuleServiceImpl.java
  2. 1 1
      yudao-module-system/yudao-module-system-api/src/main/java/cn/iocoder/yudao/module/system/api/dept/PostApi.java
  3. 1 1
      yudao-module-system/yudao-module-system-api/src/main/java/cn/iocoder/yudao/module/system/enums/ErrorCodeConstants.java
  4. 3 2
      yudao-module-system/yudao-module-system-biz/src/main/java/cn/iocoder/yudao/module/system/api/dept/PostApiImpl.java
  5. 2 2
      yudao-module-system/yudao-module-system-biz/src/main/java/cn/iocoder/yudao/module/system/controller/admin/dept/PostController.java
  6. 1 1
      yudao-module-system/yudao-module-system-biz/src/main/java/cn/iocoder/yudao/module/system/controller/admin/oauth2/OAuth2UserController.java
  7. 1 1
      yudao-module-system/yudao-module-system-biz/src/main/java/cn/iocoder/yudao/module/system/controller/admin/user/UserProfileController.java
  8. 5 5
      yudao-module-system/yudao-module-system-biz/src/main/java/cn/iocoder/yudao/module/system/service/dept/PostService.java
  9. 39 39
      yudao-module-system/yudao-module-system-biz/src/main/java/cn/iocoder/yudao/module/system/service/dept/PostServiceImpl.java
  10. 1 1
      yudao-module-system/yudao-module-system-biz/src/main/java/cn/iocoder/yudao/module/system/service/user/AdminUserServiceImpl.java
  11. 1 1
      yudao-module-system/yudao-module-system-biz/src/test/java/cn/iocoder/yudao/module/system/service/dept/DeptServiceImplTest.java
  12. 143 83
      yudao-module-system/yudao-module-system-biz/src/test/java/cn/iocoder/yudao/module/system/service/dept/PostServiceImplTest.java
  13. 2 2
      yudao-module-system/yudao-module-system-biz/src/test/java/cn/iocoder/yudao/module/system/service/user/AdminUserServiceImplTest.java

+ 1 - 1
yudao-module-bpm/yudao-module-bpm-biz/src/main/java/cn/iocoder/yudao/module/bpm/service/definition/BpmTaskAssignRuleServiceImpl.java

@@ -218,7 +218,7 @@ public class BpmTaskAssignRuleServiceImpl implements BpmTaskAssignRuleService {
             BpmTaskAssignRuleTypeEnum.DEPT_LEADER.getType())) {
             deptApi.validateDeptList(options);
         } else if (Objects.equals(type, BpmTaskAssignRuleTypeEnum.POST.getType())) {
-            postApi.validPosts(options);
+            postApi.validPostList(options);
         } else if (Objects.equals(type, BpmTaskAssignRuleTypeEnum.USER.getType())) {
             adminUserApi.validUsers(options);
         } else if (Objects.equals(type, BpmTaskAssignRuleTypeEnum.USER_GROUP.getType())) {

+ 1 - 1
yudao-module-system/yudao-module-system-api/src/main/java/cn/iocoder/yudao/module/system/api/dept/PostApi.java

@@ -16,6 +16,6 @@ public interface PostApi {
      *
      * @param ids 岗位编号数组
      */
-    void validPosts(Collection<Long> ids);
+    void validPostList(Collection<Long> ids);
 
 }

+ 1 - 1
yudao-module-system/yudao-module-system-api/src/main/java/cn/iocoder/yudao/module/system/enums/ErrorCodeConstants.java

@@ -50,7 +50,7 @@ public interface ErrorCodeConstants {
     ErrorCode DEPT_EXITS_CHILDREN = new ErrorCode(1002004003, "存在子部门,无法删除");
     ErrorCode DEPT_PARENT_ERROR = new ErrorCode(1002004004, "不能设置自己为父部门");
     ErrorCode DEPT_EXISTS_USER = new ErrorCode(1002004005, "部门中存在员工,无法删除");
-    ErrorCode DEPT_NOT_ENABLE = new ErrorCode(1002004006, "部门不处于开启状态,不允许选择");
+    ErrorCode DEPT_NOT_ENABLE = new ErrorCode(1002004006, "部门({})不处于开启状态,不允许选择");
     ErrorCode DEPT_PARENT_IS_CHILD = new ErrorCode(1002004007, "不能设置自己的子部门为父部门");
 
     // ========== 岗位模块 1002005000 ==========

+ 3 - 2
yudao-module-system/yudao-module-system-biz/src/main/java/cn/iocoder/yudao/module/system/api/dept/PostApiImpl.java

@@ -18,7 +18,8 @@ public class PostApiImpl implements PostApi {
     private PostService postService;
 
     @Override
-    public void validPosts(Collection<Long> ids) {
-        postService.validPosts(ids);
+    public void validPostList(Collection<Long> ids) {
+        postService.validatePostList(ids);
     }
+
 }

+ 2 - 2
yudao-module-system/yudao-module-system-biz/src/main/java/cn/iocoder/yudao/module/system/controller/admin/dept/PostController.java

@@ -72,7 +72,7 @@ public class PostController {
     @ApiOperation(value = "获取岗位精简信息列表", notes = "只包含被开启的岗位,主要用于前端的下拉选项")
     public CommonResult<List<PostSimpleRespVO>> getSimplePosts() {
         // 获得岗位列表,只要开启状态的
-        List<PostDO> list = postService.getPosts(null, Collections.singleton(CommonStatusEnum.ENABLE.getStatus()));
+        List<PostDO> list = postService.getPostList(null, Collections.singleton(CommonStatusEnum.ENABLE.getStatus()));
         // 排序后,返回给前端
         list.sort(Comparator.comparing(PostDO::getSort));
         return success(PostConvert.INSTANCE.convertList02(list));
@@ -90,7 +90,7 @@ public class PostController {
     @PreAuthorize("@ss.hasPermission('system:post:export')")
     @OperateLog(type = EXPORT)
     public void export(HttpServletResponse response, @Validated PostExportReqVO reqVO) throws IOException {
-        List<PostDO> posts = postService.getPosts(reqVO);
+        List<PostDO> posts = postService.getPostList(reqVO);
         List<PostExcelVO> data = PostConvert.INSTANCE.convertList03(posts);
         // 输出
         ExcelUtils.write(response, "岗位数据.xls", "岗位列表", PostExcelVO.class, data);

+ 1 - 1
yudao-module-system/yudao-module-system-biz/src/main/java/cn/iocoder/yudao/module/system/controller/admin/oauth2/OAuth2UserController.java

@@ -61,7 +61,7 @@ public class OAuth2UserController {
         }
         // 获得岗位信息
         if (CollUtil.isNotEmpty(user.getPostIds())) {
-            List<PostDO> posts = postService.getPosts(user.getPostIds());
+            List<PostDO> posts = postService.getPostList(user.getPostIds());
             resp.setPosts(OAuth2UserConvert.INSTANCE.convertList(posts));
         }
         return success(resp);

+ 1 - 1
yudao-module-system/yudao-module-system-biz/src/main/java/cn/iocoder/yudao/module/system/controller/admin/user/UserProfileController.java

@@ -72,7 +72,7 @@ public class UserProfileController {
         }
         // 获得岗位信息
         if (CollUtil.isNotEmpty(user.getPostIds())) {
-            List<PostDO> posts = postService.getPosts(user.getPostIds());
+            List<PostDO> posts = postService.getPostList(user.getPostIds());
             resp.setPosts(UserConvert.INSTANCE.convertList02(posts));
         }
         // 获得社交用户信息

+ 5 - 5
yudao-module-system/yudao-module-system-biz/src/main/java/cn/iocoder/yudao/module/system/service/dept/PostService.java

@@ -49,8 +49,8 @@ public interface PostService {
      * @param ids 岗位编号数组。如果为空,不进行筛选
      * @return 部门列表
      */
-    default List<PostDO> getPosts(@Nullable Collection<Long> ids) {
-        return getPosts(ids, asSet(CommonStatusEnum.ENABLE.getStatus(), CommonStatusEnum.DISABLE.getStatus()));
+    default List<PostDO> getPostList(@Nullable Collection<Long> ids) {
+        return getPostList(ids, asSet(CommonStatusEnum.ENABLE.getStatus(), CommonStatusEnum.DISABLE.getStatus()));
     }
 
     /**
@@ -60,7 +60,7 @@ public interface PostService {
      * @param statuses 状态数组。如果为空,不进行筛选
      * @return 部门列表
      */
-    List<PostDO> getPosts(@Nullable Collection<Long> ids, @Nullable Collection<Integer> statuses);
+    List<PostDO> getPostList(@Nullable Collection<Long> ids, @Nullable Collection<Integer> statuses);
 
     /**
      * 获得岗位分页列表
@@ -76,7 +76,7 @@ public interface PostService {
      * @param reqVO 查询条件
      * @return 部门列表
      */
-    List<PostDO> getPosts(PostExportReqVO reqVO);
+    List<PostDO> getPostList(PostExportReqVO reqVO);
 
     /**
      * 获得岗位信息
@@ -93,6 +93,6 @@ public interface PostService {
      *
      * @param ids 岗位编号数组
      */
-    void validPosts(Collection<Long> ids);
+    void validatePostList(Collection<Long> ids);
 
 }

+ 39 - 39
yudao-module-system/yudao-module-system-biz/src/main/java/cn/iocoder/yudao/module/system/service/dept/PostServiceImpl.java

@@ -2,7 +2,6 @@ package cn.iocoder.yudao.module.system.service.dept;
 
 import cn.hutool.core.collection.CollUtil;
 import cn.iocoder.yudao.framework.common.enums.CommonStatusEnum;
-import cn.iocoder.yudao.framework.common.exception.util.ServiceExceptionUtil;
 import cn.iocoder.yudao.framework.common.pojo.PageResult;
 import cn.iocoder.yudao.module.system.controller.admin.dept.vo.post.PostCreateReqVO;
 import cn.iocoder.yudao.module.system.controller.admin.dept.vo.post.PostExportReqVO;
@@ -38,7 +37,8 @@ public class PostServiceImpl implements PostService {
     @Override
     public Long createPost(PostCreateReqVO reqVO) {
         // 校验正确性
-        this.checkCreateOrUpdate(null, reqVO.getName(), reqVO.getCode());
+        validatePostForCreateOrUpdate(null, reqVO.getName(), reqVO.getCode());
+
         // 插入岗位
         PostDO post = PostConvert.INSTANCE.convert(reqVO);
         postMapper.insert(post);
@@ -48,7 +48,8 @@ public class PostServiceImpl implements PostService {
     @Override
     public void updatePost(PostUpdateReqVO reqVO) {
         // 校验正确性
-        this.checkCreateOrUpdate(reqVO.getId(), reqVO.getName(), reqVO.getCode());
+        validatePostForCreateOrUpdate(reqVO.getId(), reqVO.getName(), reqVO.getCode());
+
         // 更新岗位
         PostDO updateObj = PostConvert.INSTANCE.convert(reqVO);
         postMapper.updateById(updateObj);
@@ -57,80 +58,79 @@ public class PostServiceImpl implements PostService {
     @Override
     public void deletePost(Long id) {
         // 校验是否存在
-        this.checkPostExists(id);
+        validatePostExists(id);
         // 删除部门
         postMapper.deleteById(id);
     }
 
-    @Override
-    public List<PostDO> getPosts(Collection<Long> ids, Collection<Integer> statuses) {
-        return postMapper.selectList(ids, statuses);
-    }
-
-    @Override
-    public PageResult<PostDO> getPostPage(PostPageReqVO reqVO) {
-        return postMapper.selectPage(reqVO);
-    }
-
-    @Override
-    public List<PostDO> getPosts(PostExportReqVO reqVO) {
-        return postMapper.selectList(reqVO);
-    }
-
-    @Override
-    public PostDO getPost(Long id) {
-        return postMapper.selectById(id);
-    }
-
-    private void checkCreateOrUpdate(Long id, String name, String code) {
+    private void validatePostForCreateOrUpdate(Long id, String name, String code) {
         // 校验自己存在
-        checkPostExists(id);
+        validatePostExists(id);
         // 校验岗位名的唯一性
-        checkPostNameUnique(id, name);
+        validatePostNameUnique(id, name);
         // 校验岗位编码的唯一性
-        checkPostCodeUnique(id, code);
+        validatePostCodeUnique(id, code);
     }
 
-    private void checkPostNameUnique(Long id, String name) {
+    private void validatePostNameUnique(Long id, String name) {
         PostDO post = postMapper.selectByName(name);
         if (post == null) {
             return;
         }
         // 如果 id 为空,说明不用比较是否为相同 id 的岗位
         if (id == null) {
-            throw ServiceExceptionUtil.exception(POST_NAME_DUPLICATE);
+            throw exception(POST_NAME_DUPLICATE);
         }
         if (!post.getId().equals(id)) {
-            throw ServiceExceptionUtil.exception(POST_NAME_DUPLICATE);
+            throw exception(POST_NAME_DUPLICATE);
         }
     }
 
-    private void checkPostCodeUnique(Long id, String code) {
+    private void validatePostCodeUnique(Long id, String code) {
         PostDO post = postMapper.selectByCode(code);
         if (post == null) {
             return;
         }
         // 如果 id 为空,说明不用比较是否为相同 id 的岗位
         if (id == null) {
-            throw ServiceExceptionUtil.exception(POST_CODE_DUPLICATE);
+            throw exception(POST_CODE_DUPLICATE);
         }
         if (!post.getId().equals(id)) {
-            throw ServiceExceptionUtil.exception(POST_CODE_DUPLICATE);
+            throw exception(POST_CODE_DUPLICATE);
         }
     }
 
-    private void checkPostExists(Long id) {
+    private void validatePostExists(Long id) {
         if (id == null) {
             return;
         }
-        PostDO post = postMapper.selectById(id);
-        if (post == null) {
-            throw ServiceExceptionUtil.exception(POST_NOT_FOUND);
+        if (postMapper.selectById(id) == null) {
+            throw exception(POST_NOT_FOUND);
         }
     }
 
     @Override
-    public void validPosts(Collection<Long> ids) {
+    public List<PostDO> getPostList(Collection<Long> ids, Collection<Integer> statuses) {
+        return postMapper.selectList(ids, statuses);
+    }
+
+    @Override
+    public PageResult<PostDO> getPostPage(PostPageReqVO reqVO) {
+        return postMapper.selectPage(reqVO);
+    }
+
+    @Override
+    public List<PostDO> getPostList(PostExportReqVO reqVO) {
+        return postMapper.selectList(reqVO);
+    }
+
+    @Override
+    public PostDO getPost(Long id) {
+        return postMapper.selectById(id);
+    }
+
+    @Override
+    public void validatePostList(Collection<Long> ids) {
         if (CollUtil.isEmpty(ids)) {
             return;
         }

+ 1 - 1
yudao-module-system/yudao-module-system-biz/src/main/java/cn/iocoder/yudao/module/system/service/user/AdminUserServiceImpl.java

@@ -319,7 +319,7 @@ public class AdminUserServiceImpl implements AdminUserService {
         // 校验部门处于开启状态
         deptService.validateDeptList(CollectionUtils.singleton(deptId));
         // 校验岗位处于开启状态
-        postService.validPosts(postIds);
+        postService.validatePostList(postIds);
     }
 
     @VisibleForTesting

+ 1 - 1
yudao-module-system/yudao-module-system-biz/src/test/java/cn/iocoder/yudao/module/system/service/dept/DeptServiceImplTest.java

@@ -337,7 +337,7 @@ public class DeptServiceImplTest extends BaseDbUnitTest {
         List<Long> ids = singletonList(deptDO.getId());
 
         // 调用, 并断言异常
-        assertServiceException(() -> deptService.validateDeptList(ids), DEPT_NOT_ENABLE);
+        assertServiceException(() -> deptService.validateDeptList(ids), DEPT_NOT_ENABLE, deptDO.getName());
     }
 
     @SafeVarargs

+ 143 - 83
yudao-module-system/yudao-module-system-biz/src/test/java/cn/iocoder/yudao/module/system/service/dept/PostServiceTest.java → yudao-module-system/yudao-module-system-biz/src/test/java/cn/iocoder/yudao/module/system/service/dept/PostServiceImplTest.java

@@ -1,41 +1,136 @@
 package cn.iocoder.yudao.module.system.service.dept;
 
-import cn.iocoder.yudao.module.system.dal.dataobject.dept.PostDO;
 import cn.iocoder.yudao.framework.common.enums.CommonStatusEnum;
 import cn.iocoder.yudao.framework.common.pojo.PageResult;
 import cn.iocoder.yudao.framework.common.util.collection.ArrayUtils;
-import cn.iocoder.yudao.framework.common.util.object.ObjectUtils;
+import cn.iocoder.yudao.framework.test.core.ut.BaseDbUnitTest;
 import cn.iocoder.yudao.module.system.controller.admin.dept.vo.post.PostCreateReqVO;
 import cn.iocoder.yudao.module.system.controller.admin.dept.vo.post.PostExportReqVO;
 import cn.iocoder.yudao.module.system.controller.admin.dept.vo.post.PostPageReqVO;
 import cn.iocoder.yudao.module.system.controller.admin.dept.vo.post.PostUpdateReqVO;
+import cn.iocoder.yudao.module.system.dal.dataobject.dept.PostDO;
 import cn.iocoder.yudao.module.system.dal.mysql.dept.PostMapper;
-import cn.iocoder.yudao.framework.test.core.ut.BaseDbUnitTest;
 import org.junit.jupiter.api.Test;
 import org.springframework.context.annotation.Import;
 
 import javax.annotation.Resource;
+import java.util.Arrays;
 import java.util.List;
 import java.util.function.Consumer;
 
 import static cn.hutool.core.util.RandomUtil.randomEle;
+import static cn.iocoder.yudao.framework.common.util.object.ObjectUtils.cloneIgnoreId;
 import static cn.iocoder.yudao.framework.test.core.util.AssertUtils.assertPojoEquals;
 import static cn.iocoder.yudao.framework.test.core.util.AssertUtils.assertServiceException;
-import static cn.iocoder.yudao.framework.test.core.util.RandomUtils.randomLongId;
-import static cn.iocoder.yudao.framework.test.core.util.RandomUtils.randomPojo;
+import static cn.iocoder.yudao.framework.test.core.util.RandomUtils.*;
 import static cn.iocoder.yudao.module.system.enums.ErrorCodeConstants.*;
+import static java.util.Collections.singletonList;
 import static org.junit.jupiter.api.Assertions.*;
 
+/**
+ * {@link PostServiceImpl} 的单元测试类
+ *
+ * @author niudehua
+ */
 @Import(PostServiceImpl.class)
-public class PostServiceTest extends BaseDbUnitTest {
+public class PostServiceImplTest extends BaseDbUnitTest {
 
     @Resource
     private PostServiceImpl postService;
+
     @Resource
     private PostMapper postMapper;
 
     @Test
-    void testPagePosts() {
+    public void testCreatePost_success() {
+        // 准备参数
+        PostCreateReqVO reqVO = randomPojo(PostCreateReqVO.class,
+                o -> o.setStatus(randomEle(CommonStatusEnum.values()).getStatus()));
+        // 调用
+        Long postId = postService.createPost(reqVO);
+
+        // 断言
+        assertNotNull(postId);
+        // 校验记录的属性是否正确
+        PostDO post = postMapper.selectById(postId);
+        assertPojoEquals(reqVO, post);
+    }
+
+    @Test
+    public void testUpdatePost_success() {
+        // mock 数据
+        PostDO postDO = randomPostDO();
+        postMapper.insert(postDO);// @Sql: 先插入出一条存在的数据
+        // 准备参数
+        PostUpdateReqVO reqVO = randomPojo(PostUpdateReqVO.class, o -> {
+            // 设置更新的 ID
+            o.setId(postDO.getId());
+            o.setStatus(randomEle(CommonStatusEnum.values()).getStatus());
+        });
+
+        // 调用
+        postService.updatePost(reqVO);
+        // 校验是否更新正确
+        PostDO post = postMapper.selectById(reqVO.getId());
+        assertPojoEquals(reqVO, post);
+    }
+
+    @Test
+    public void testDeletePost_success() {
+        // mock 数据
+        PostDO postDO = randomPostDO();
+        postMapper.insert(postDO);
+        // 准备参数
+        Long id = postDO.getId();
+
+        // 调用
+        postService.deletePost(id);
+        assertNull(postMapper.selectById(id));
+    }
+
+    @Test
+    public void testValidatePost_notFoundForDelete() {
+        // 准备参数
+        Long id = randomLongId();
+
+        // 调用, 并断言异常
+        assertServiceException(() -> postService.deletePost(id), POST_NOT_FOUND);
+    }
+
+    @Test
+    public void testValidatePost_nameDuplicateForCreate() {
+        // mock 数据
+        PostDO postDO = randomPostDO();
+        postMapper.insert(postDO);// @Sql: 先插入出一条存在的数据
+        // 准备参数
+        PostCreateReqVO reqVO = randomPojo(PostCreateReqVO.class,
+            // 模拟 name 重复
+            o -> o.setName(postDO.getName()));
+        assertServiceException(() -> postService.createPost(reqVO), POST_NAME_DUPLICATE);
+    }
+
+    @Test
+    public void testValidatePost_codeDuplicateForUpdate() {
+        // mock 数据
+        PostDO postDO = randomPostDO();
+        postMapper.insert(postDO);
+        // mock 数据:稍后模拟重复它的 code
+        PostDO codePostDO = randomPostDO();
+        postMapper.insert(codePostDO);
+        // 准备参数
+        PostUpdateReqVO reqVO = randomPojo(PostUpdateReqVO.class, o -> {
+            // 设置更新的 ID
+            o.setId(postDO.getId());
+            // 模拟 code 重复
+            o.setCode(codePostDO.getCode());
+        });
+
+        // 调用, 并断言异常
+        assertServiceException(() -> postService.updatePost(reqVO), POST_CODE_DUPLICATE);
+    }
+
+    @Test
+    public void testGetPostPage() {
         // mock 数据
         PostDO postDO = randomPojo(PostDO.class, o -> {
             o.setName("码仔");
@@ -43,10 +138,9 @@ public class PostServiceTest extends BaseDbUnitTest {
         });
         postMapper.insert(postDO);
         // 测试 name 不匹配
-        postMapper.insert(ObjectUtils.cloneIgnoreId(postDO, o -> o.setName("程序员")));
+        postMapper.insert(cloneIgnoreId(postDO, o -> o.setName("程序员")));
         // 测试 status 不匹配
-        postMapper.insert(ObjectUtils.cloneIgnoreId(postDO, o -> o.setStatus(CommonStatusEnum.DISABLE.getStatus())));
-
+        postMapper.insert(cloneIgnoreId(postDO, o -> o.setStatus(CommonStatusEnum.DISABLE.getStatus())));
         // 准备参数
         PostPageReqVO reqVO = new PostPageReqVO();
         reqVO.setName("码");
@@ -54,7 +148,6 @@ public class PostServiceTest extends BaseDbUnitTest {
 
         // 调用
         PageResult<PostDO> pageResult = postService.getPostPage(reqVO);
-
         // 断言
         assertEquals(1, pageResult.getTotal());
         assertEquals(1, pageResult.getList().size());
@@ -62,7 +155,7 @@ public class PostServiceTest extends BaseDbUnitTest {
     }
 
     @Test
-    void testListPosts() {
+    public void testGetPostList_export() {
         // mock 数据
         PostDO postDO = randomPojo(PostDO.class, o -> {
             o.setName("码仔");
@@ -70,124 +163,91 @@ public class PostServiceTest extends BaseDbUnitTest {
         });
         postMapper.insert(postDO);
         // 测试 name 不匹配
-        postMapper.insert(ObjectUtils.cloneIgnoreId(postDO, o -> o.setName("程序员")));
+        postMapper.insert(cloneIgnoreId(postDO, o -> o.setName("程序员")));
         // 测试 status 不匹配
-        postMapper.insert(ObjectUtils.cloneIgnoreId(postDO, o -> o.setStatus(CommonStatusEnum.DISABLE.getStatus())));
+        postMapper.insert(cloneIgnoreId(postDO, o -> o.setStatus(CommonStatusEnum.DISABLE.getStatus())));
         // 准备参数
         PostExportReqVO reqVO = new PostExportReqVO();
         reqVO.setName("码");
         reqVO.setStatus(CommonStatusEnum.ENABLE.getStatus());
 
         // 调用
-        List<PostDO> list = postService.getPosts(reqVO);
+        List<PostDO> list = postService.getPostList(reqVO);
         // 断言
         assertEquals(1, list.size());
         assertPojoEquals(postDO, list.get(0));
     }
 
     @Test
-    void testGetPost() {
+    public void testGetPostList() {
         // mock 数据
-        PostDO dbPostDO = randomPostDO();
-        postMapper.insert(dbPostDO);
+        PostDO postDO01 = randomPojo(PostDO.class, o -> o.setStatus(CommonStatusEnum.ENABLE.getStatus()));
+        postMapper.insert(postDO01);
+        // 测试 status 不匹配
+        PostDO postDO02 = randomPojo(PostDO.class, o -> o.setStatus(CommonStatusEnum.DISABLE.getStatus()));
+        postMapper.insert(postDO02);
         // 准备参数
-        Long id = dbPostDO.getId();
-        // 调用
-        PostDO post = postService.getPost(id);
-        // 断言
-        assertNotNull(post);
-        assertPojoEquals(dbPostDO, post);
-    }
+        List<Long> ids = Arrays.asList(postDO01.getId(), postDO02.getId());
 
-    @Test
-    void testCreatePost_success() {
-        // 准备参数
-        PostCreateReqVO reqVO = randomPojo(PostCreateReqVO.class,
-            o -> o.setStatus(randomEle(CommonStatusEnum.values()).getStatus()));
         // 调用
-        Long postId = postService.createPost(reqVO);
+        List<PostDO> list = postService.getPostList(ids, singletonList(CommonStatusEnum.ENABLE.getStatus()));
         // 断言
-        assertNotNull(postId);
-        // 校验记录的属性是否正确
-        PostDO post = postMapper.selectById(postId);
-        assertPojoEquals(reqVO, post);
+        assertEquals(1, list.size());
+        assertPojoEquals(postDO01, list.get(0));
     }
 
     @Test
-    void testUpdatePost_success() {
+    public void testGetPost() {
         // mock 数据
-        PostDO postDO = randomPostDO();
-        postMapper.insert(postDO);// @Sql: 先插入出一条存在的数据
+        PostDO dbPostDO = randomPostDO();
+        postMapper.insert(dbPostDO);
         // 准备参数
-        PostUpdateReqVO reqVO = randomPojo(PostUpdateReqVO.class,
-            o -> {
-                // 设置更新的 ID
-                o.setId(postDO.getId());
-                o.setStatus(randomEle(CommonStatusEnum.values()).getStatus());
-            });
+        Long id = dbPostDO.getId();
         // 调用
-        postService.updatePost(reqVO);
-        // 校验是否更新正确
-        PostDO post = postMapper.selectById(reqVO.getId());// 获取最新的
-        assertPojoEquals(reqVO, post);
+        PostDO post = postService.getPost(id);
+        // 断言
+        assertNotNull(post);
+        assertPojoEquals(dbPostDO, post);
     }
 
     @Test
-    void testDeletePost_success() {
+    public void testValidatePostList_success() {
         // mock 数据
-        PostDO postDO = randomPostDO();
+        PostDO postDO = randomPostDO().setStatus(CommonStatusEnum.ENABLE.getStatus());
         postMapper.insert(postDO);
         // 准备参数
-        Long id = postDO.getId();
-        // 调用
-        postService.deletePost(id);
-        assertNull(postMapper.selectById(id));
-    }
+        List<Long> ids = singletonList(postDO.getId());
 
-    @Test
-    void testCheckPost_notFoundForDelete() {
-        // 准备参数
-        Long id = randomLongId();
-        // 调用, 并断言异常
-        assertServiceException(() -> postService.deletePost(id), POST_NOT_FOUND);
+        // 调用,无需断言
+        postService.validatePostList(ids);
     }
 
     @Test
-    void testCheckPost_nameDuplicateForCreate() {
-        // mock 数据
-        PostDO postDO = randomPostDO();
-        postMapper.insert(postDO);// @Sql: 先插入出一条存在的数据
+    public void testValidatePostList_notFound() {
         // 准备参数
-        PostCreateReqVO reqVO = randomPojo(PostCreateReqVO.class,
-            // 模拟 name 重复
-            o -> o.setName(postDO.getName()));
-        assertServiceException(() -> postService.createPost(reqVO), POST_NAME_DUPLICATE);
+        List<Long> ids = singletonList(randomLongId());
+
+        // 调用, 并断言异常
+        assertServiceException(() -> postService.validatePostList(ids), POST_NOT_FOUND);
     }
 
     @Test
-    void testCheckPost_codeDuplicateForUpdate() {
+    public void testValidatePostList_notEnable() {
         // mock 数据
-        PostDO postDO = randomPostDO();
+        PostDO postDO = randomPostDO().setStatus(CommonStatusEnum.DISABLE.getStatus());
         postMapper.insert(postDO);
-        // mock 数据 稍后模拟重复它的 code
-        PostDO codePostDO = randomPostDO();
-        postMapper.insert(codePostDO);
         // 准备参数
-        PostUpdateReqVO reqVO = randomPojo(PostUpdateReqVO.class,
-            o -> {
-                // 设置更新的 ID
-                o.setId(postDO.getId());
-                // 模拟 code 重复
-                o.setCode(codePostDO.getCode());
-            });
+        List<Long> ids = singletonList(postDO.getId());
+
         // 调用, 并断言异常
-        assertServiceException(() -> postService.updatePost(reqVO), POST_CODE_DUPLICATE);
+        assertServiceException(() -> postService.validatePostList(ids), POST_NOT_ENABLE,
+                postDO.getName());
     }
 
     @SafeVarargs
     private static PostDO randomPostDO(Consumer<PostDO>... consumers) {
         Consumer<PostDO> consumer = (o) -> {
-            o.setStatus(randomEle(CommonStatusEnum.values()).getStatus()); // 保证 status 的范围
+            o.setStatus(randomCommonStatus()); // 保证 status 的范围
         };
         return randomPojo(PostDO.class, ArrayUtils.append(consumer, consumers));
     }

+ 2 - 2
yudao-module-system/yudao-module-system-biz/src/test/java/cn/iocoder/yudao/module/system/service/user/AdminUserServiceImplTest.java

@@ -102,7 +102,7 @@ public class AdminUserServiceImplTest extends BaseDbUnitTest {
                     o.setId(postId);
                     o.setStatus(CommonStatusEnum.ENABLE.getStatus());
                 }));
-        when(postService.getPosts(eq(reqVO.getPostIds()), isNull())).thenReturn(posts);
+        when(postService.getPostList(eq(reqVO.getPostIds()), isNull())).thenReturn(posts);
         // mock passwordEncoder 的方法
         when(passwordEncoder.encode(eq(reqVO.getPassword()))).thenReturn("yudaoyuanma");
 
@@ -160,7 +160,7 @@ public class AdminUserServiceImplTest extends BaseDbUnitTest {
                     o.setId(postId);
                     o.setStatus(CommonStatusEnum.ENABLE.getStatus());
                 }));
-        when(postService.getPosts(eq(reqVO.getPostIds()), isNull())).thenReturn(posts);
+        when(postService.getPostList(eq(reqVO.getPostIds()), isNull())).thenReturn(posts);
 
         // 调用
         userService.updateUser(reqVO);