Browse Source

完善 NoticeServiceImpl 单元测试

YunaiV 2 years ago
parent
commit
96e8df0398

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

@@ -57,8 +57,8 @@ public class NoticeController {
     @GetMapping("/page")
     @ApiOperation("获取通知公告列表")
     @PreAuthorize("@ss.hasPermission('system:notice:query')")
-    public CommonResult<PageResult<NoticeRespVO>> pageNotices(@Validated NoticePageReqVO reqVO) {
-        return success(NoticeConvert.INSTANCE.convertPage(noticeService.pageNotices(reqVO)));
+    public CommonResult<PageResult<NoticeRespVO>> getNoticePage(@Validated NoticePageReqVO reqVO) {
+        return success(NoticeConvert.INSTANCE.convertPage(noticeService.getNoticePage(reqVO)));
     }
 
     @GetMapping("/get")

+ 1 - 1
yudao-module-system/yudao-module-system-biz/src/main/java/cn/iocoder/yudao/module/system/service/notice/NoticeService.java

@@ -39,7 +39,7 @@ public interface NoticeService {
      * @param reqVO 分页条件
      * @return 部门分页列表
      */
-    PageResult<NoticeDO> pageNotices(NoticePageReqVO reqVO);
+    PageResult<NoticeDO> getNoticePage(NoticePageReqVO reqVO);
 
     /**
      * 获得岗位公告公告信息

+ 7 - 7
yudao-module-system/yudao-module-system-biz/src/main/java/cn/iocoder/yudao/module/system/service/notice/NoticeServiceImpl.java

@@ -1,18 +1,18 @@
 package cn.iocoder.yudao.module.system.service.notice;
 
-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.notice.vo.NoticeCreateReqVO;
 import cn.iocoder.yudao.module.system.controller.admin.notice.vo.NoticePageReqVO;
 import cn.iocoder.yudao.module.system.controller.admin.notice.vo.NoticeUpdateReqVO;
 import cn.iocoder.yudao.module.system.convert.notice.NoticeConvert;
-import cn.iocoder.yudao.module.system.dal.mysql.notice.NoticeMapper;
 import cn.iocoder.yudao.module.system.dal.dataobject.notice.NoticeDO;
+import cn.iocoder.yudao.module.system.dal.mysql.notice.NoticeMapper;
 import com.google.common.annotations.VisibleForTesting;
 import org.springframework.stereotype.Service;
 
 import javax.annotation.Resource;
 
+import static cn.iocoder.yudao.framework.common.exception.util.ServiceExceptionUtil.exception;
 import static cn.iocoder.yudao.module.system.enums.ErrorCodeConstants.NOTICE_NOT_FOUND;
 
 /**
@@ -36,7 +36,7 @@ public class NoticeServiceImpl implements NoticeService {
     @Override
     public void updateNotice(NoticeUpdateReqVO reqVO) {
         // 校验是否存在
-        this.checkNoticeExists(reqVO.getId());
+        validateNoticeExists(reqVO.getId());
         // 更新通知公告
         NoticeDO updateObj = NoticeConvert.INSTANCE.convert(reqVO);
         noticeMapper.updateById(updateObj);
@@ -45,13 +45,13 @@ public class NoticeServiceImpl implements NoticeService {
     @Override
     public void deleteNotice(Long id) {
         // 校验是否存在
-        this.checkNoticeExists(id);
+        validateNoticeExists(id);
         // 删除通知公告
         noticeMapper.deleteById(id);
     }
 
     @Override
-    public PageResult<NoticeDO> pageNotices(NoticePageReqVO reqVO) {
+    public PageResult<NoticeDO> getNoticePage(NoticePageReqVO reqVO) {
         return noticeMapper.selectPage(reqVO);
     }
 
@@ -61,13 +61,13 @@ public class NoticeServiceImpl implements NoticeService {
     }
 
     @VisibleForTesting
-    public void checkNoticeExists(Long id) {
+    public void validateNoticeExists(Long id) {
         if (id == null) {
             return;
         }
         NoticeDO notice = noticeMapper.selectById(id);
         if (notice == null) {
-            throw ServiceExceptionUtil.exception(NOTICE_NOT_FOUND);
+            throw exception(NOTICE_NOT_FOUND);
         }
     }
 

+ 36 - 69
yudao-module-system/yudao-module-system-biz/src/test/java/cn/iocoder/yudao/module/system/service/notice/NoticeServiceImplTest.java

@@ -2,75 +2,67 @@ package cn.iocoder.yudao.module.system.service.notice;
 
 import cn.iocoder.yudao.framework.common.enums.CommonStatusEnum;
 import cn.iocoder.yudao.framework.common.pojo.PageResult;
+import cn.iocoder.yudao.framework.test.core.ut.BaseDbUnitTest;
 import cn.iocoder.yudao.module.system.controller.admin.notice.vo.NoticeCreateReqVO;
 import cn.iocoder.yudao.module.system.controller.admin.notice.vo.NoticePageReqVO;
 import cn.iocoder.yudao.module.system.controller.admin.notice.vo.NoticeUpdateReqVO;
 import cn.iocoder.yudao.module.system.dal.dataobject.notice.NoticeDO;
 import cn.iocoder.yudao.module.system.dal.mysql.notice.NoticeMapper;
-import cn.iocoder.yudao.module.system.enums.notice.NoticeTypeEnum;
-import cn.iocoder.yudao.framework.common.util.object.ObjectUtils;
-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.function.Consumer;
-
-import static cn.hutool.core.util.RandomUtil.randomEle;
-import static cn.iocoder.yudao.module.system.enums.ErrorCodeConstants.NOTICE_NOT_FOUND;
+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.module.system.enums.ErrorCodeConstants.NOTICE_NOT_FOUND;
 import static org.junit.jupiter.api.Assertions.*;
 
 @Import(NoticeServiceImpl.class)
 class NoticeServiceImplTest extends BaseDbUnitTest {
 
     @Resource
-    private NoticeServiceImpl sysNoticeService;
+    private NoticeServiceImpl noticeService;
 
     @Resource
-    private NoticeMapper sysNoticeMapper;
+    private NoticeMapper noticeMapper;
 
     @Test
-    public void testPageNotices_success() {
+    public void testGetNoticePage_success() {
         // 插入前置数据
         NoticeDO dbNotice = randomPojo(NoticeDO.class, o -> {
             o.setTitle("尼古拉斯赵四来啦!");
             o.setStatus(CommonStatusEnum.ENABLE.getStatus());
-            o.setType(randomEle(NoticeTypeEnum.values()).getType());
         });
-        sysNoticeMapper.insert(dbNotice);
-
+        noticeMapper.insert(dbNotice);
         // 测试 title 不匹配
-        sysNoticeMapper.insert(ObjectUtils.cloneIgnoreId(dbNotice, o -> o.setTitle("尼古拉斯凯奇也来啦!")));
+        noticeMapper.insert(cloneIgnoreId(dbNotice, o -> o.setTitle("尼古拉斯凯奇也来啦!")));
         // 测试 status 不匹配
-        sysNoticeMapper.insert(ObjectUtils.cloneIgnoreId(dbNotice, o -> o.setStatus(CommonStatusEnum.DISABLE.getStatus())));
-
-
-        // 查询
+        noticeMapper.insert(cloneIgnoreId(dbNotice, o -> o.setStatus(CommonStatusEnum.DISABLE.getStatus())));
+        // 准备参数
         NoticePageReqVO reqVO = new NoticePageReqVO();
         reqVO.setTitle("尼古拉斯赵四来啦!");
         reqVO.setStatus(CommonStatusEnum.ENABLE.getStatus());
-        PageResult<NoticeDO> pageResult = sysNoticeService.pageNotices(reqVO);
 
+        // 调用
+        PageResult<NoticeDO> pageResult = noticeService.getNoticePage(reqVO);
         // 验证查询结果经过筛选
         assertEquals(1, pageResult.getTotal());
         assertEquals(1, pageResult.getList().size());
         assertPojoEquals(dbNotice, pageResult.getList().get(0));
-
     }
 
     @Test
     public void testGetNotice_success() {
         // 插入前置数据
-        NoticeDO dbNotice = randomNoticeDO();
-        sysNoticeMapper.insert(dbNotice);
+        NoticeDO dbNotice = randomPojo(NoticeDO.class);
+        noticeMapper.insert(dbNotice);
 
         // 查询
-        NoticeDO notice = sysNoticeService.getNotice(dbNotice.getId());
+        NoticeDO notice = noticeService.getNotice(dbNotice.getId());
 
         // 验证插入与读取对象是否一致
         assertNotNull(notice);
@@ -80,84 +72,59 @@ class NoticeServiceImplTest extends BaseDbUnitTest {
     @Test
     public void testCreateNotice_success() {
         // 准备参数
-        NoticeCreateReqVO reqVO = randomNoticeCreateReqVO();
-
-        // 校验插入是否成功
-        Long noticeId = sysNoticeService.createNotice(reqVO);
-        assertNotNull(noticeId);
+        NoticeCreateReqVO reqVO = randomPojo(NoticeCreateReqVO.class);
 
+        // 调用
+        Long noticeId = noticeService.createNotice(reqVO);
         // 校验插入属性是否正确
-        NoticeDO notice = sysNoticeMapper.selectById(noticeId);
+        assertNotNull(noticeId);
+        NoticeDO notice = noticeMapper.selectById(noticeId);
         assertPojoEquals(reqVO, notice);
     }
 
     @Test
     public void testUpdateNotice_success() {
         // 插入前置数据
-        NoticeDO dbNoticeDO = randomNoticeDO();
-        sysNoticeMapper.insert(dbNoticeDO);
+        NoticeDO dbNoticeDO = randomPojo(NoticeDO.class);
+        noticeMapper.insert(dbNoticeDO);
 
         // 准备更新参数
-        NoticeUpdateReqVO reqVO = randomNoticeUpdateReqVO(o -> o.setId(dbNoticeDO.getId()));
+        NoticeUpdateReqVO reqVO = randomPojo(NoticeUpdateReqVO.class, o -> o.setId(dbNoticeDO.getId()));
 
         // 更新
-        sysNoticeService.updateNotice(reqVO);
-
+        noticeService.updateNotice(reqVO);
         // 检验是否更新成功
-        NoticeDO notice = sysNoticeMapper.selectById(reqVO.getId());
+        NoticeDO notice = noticeMapper.selectById(reqVO.getId());
         assertPojoEquals(reqVO, notice);
     }
 
     @Test
     public void testDeleteNotice_success() {
         // 插入前置数据
-        NoticeDO dbNotice = randomNoticeDO();
-        sysNoticeMapper.insert(dbNotice);
+        NoticeDO dbNotice = randomPojo(NoticeDO.class);
+        noticeMapper.insert(dbNotice);
 
         // 删除
-        sysNoticeService.deleteNotice(dbNotice.getId());
+        noticeService.deleteNotice(dbNotice.getId());
 
         // 检查是否删除成功
-        assertNull(sysNoticeMapper.selectById(dbNotice.getId()));
+        assertNull(noticeMapper.selectById(dbNotice.getId()));
     }
 
     @Test
-    public void checkNoticeExists_success() {
+    public void testValidateNoticeExists_success() {
         // 插入前置数据
-        NoticeDO dbNotice = randomNoticeDO();
-        sysNoticeMapper.insert(dbNotice);
+        NoticeDO dbNotice = randomPojo(NoticeDO.class);
+        noticeMapper.insert(dbNotice);
 
         // 成功调用
-        sysNoticeService.checkNoticeExists(dbNotice.getId());
+        noticeService.validateNoticeExists(dbNotice.getId());
     }
 
     @Test
-    public void checkNoticeExists_noExists() {
-        assertServiceException(() -> sysNoticeService.checkNoticeExists(randomLongId()), NOTICE_NOT_FOUND);
+    public void testValidateNoticeExists_noExists() {
+        assertServiceException(() ->
+                noticeService.validateNoticeExists(randomLongId()), NOTICE_NOT_FOUND);
     }
 
-    @SafeVarargs
-    private static NoticeDO randomNoticeDO(Consumer<NoticeDO>... consumers) {
-        NoticeDO notice = randomPojo(NoticeDO.class, consumers);
-        notice.setType(randomEle(NoticeTypeEnum.values()).getType());
-        notice.setStatus(CommonStatusEnum.ENABLE.getStatus());
-        return notice;
-    }
-
-    @SafeVarargs
-    private static NoticeUpdateReqVO randomNoticeUpdateReqVO(Consumer<NoticeUpdateReqVO>... consumers) {
-        NoticeUpdateReqVO reqVO = randomPojo(NoticeUpdateReqVO.class, consumers);
-        reqVO.setType(randomEle(NoticeTypeEnum.values()).getType());
-        reqVO.setStatus(CommonStatusEnum.ENABLE.getStatus());
-        return reqVO;
-    }
-
-    private static NoticeCreateReqVO randomNoticeCreateReqVO() {
-        NoticeCreateReqVO reqVO = randomPojo(NoticeCreateReqVO.class);
-        reqVO.setType(randomEle(NoticeTypeEnum.values()).getType());
-        reqVO.setStatus(CommonStatusEnum.ENABLE.getStatus());
-        return reqVO;
-    }
-
-
 }