Commit 4438b6d4aba6a9cf7b8643a42881e41e89902b1b

Authored by budliang
1 parent ba34e3c9

添加通知公告模块单测

src/test/java/cn/iocoder/dashboard/modules/system/service/notice/SysNoticeServiceImplTest.java 0 → 100644
  1 +package cn.iocoder.dashboard.modules.system.service.notice;
  2 +
  3 +import cn.iocoder.dashboard.BaseSpringBootUnitTest;
  4 +import cn.iocoder.dashboard.common.enums.CommonStatusEnum;
  5 +import cn.iocoder.dashboard.modules.system.controller.notice.vo.SysNoticeCreateReqVO;
  6 +import cn.iocoder.dashboard.modules.system.controller.notice.vo.SysNoticeUpdateReqVO;
  7 +import cn.iocoder.dashboard.modules.system.dal.dataobject.notice.SysNoticeDO;
  8 +import cn.iocoder.dashboard.modules.system.dal.mysql.notice.SysNoticeMapper;
  9 +import cn.iocoder.dashboard.modules.system.enums.notice.SysNoticeTypeEnum;
  10 +import org.junit.jupiter.api.Test;
  11 +
  12 +import javax.annotation.Resource;
  13 +
  14 +import java.util.function.Consumer;
  15 +
  16 +import static cn.hutool.core.util.RandomUtil.randomEle;
  17 +import static cn.iocoder.dashboard.util.AssertUtils.assertPojoEquals;
  18 +import static cn.iocoder.dashboard.util.RandomUtils.randomPojo;
  19 +import static org.junit.jupiter.api.Assertions.assertNotNull;
  20 +import static org.junit.jupiter.api.Assertions.assertNull;
  21 +
  22 +
  23 +class SysNoticeServiceImplTest extends BaseSpringBootUnitTest {
  24 +
  25 + @Resource
  26 + private SysNoticeService sysNoticeService;
  27 +
  28 + @Resource
  29 + private SysNoticeMapper sysNoticeMapper;
  30 +
  31 + @Test
  32 + void testPageNotices_success() {
  33 + // todo: 待更新
  34 + }
  35 +
  36 + @Test
  37 + void testGetNotice_success() {
  38 + // 插入前置数据
  39 + int noticeId = sysNoticeMapper.insert(randomSysNoticeDO());
  40 +
  41 + // 查询
  42 + assertNotNull(sysNoticeService.getNotice(new Long(noticeId)));
  43 + }
  44 +
  45 + @Test
  46 + void testCreateNotice_success() {
  47 + // 准备参数
  48 + SysNoticeCreateReqVO reqVO = randomSysNoticeCreateReqVO();
  49 +
  50 + // 校验插入是否成功
  51 + Long noticeId = sysNoticeService.createNotice(reqVO);
  52 + assertNotNull(noticeId);
  53 +
  54 + // 校验插入属性是否正确
  55 + SysNoticeDO notice = sysNoticeMapper.selectById(noticeId);
  56 + assertPojoEquals(reqVO, notice);
  57 + }
  58 +
  59 + @Test
  60 + void testUpdateNotice_success() {
  61 + // 插入前置数据
  62 + int noticeId = sysNoticeMapper.insert(randomSysNoticeDO());
  63 +
  64 + // 准备更新参数
  65 + SysNoticeUpdateReqVO reqVO = randomSysNoticeUpdateReqVO(o -> o.setId(new Long(noticeId)));
  66 +
  67 + // 更新
  68 + sysNoticeService.updateNotice(reqVO);
  69 +
  70 + // 检验是否更新成功
  71 + SysNoticeDO notice = sysNoticeMapper.selectById(noticeId);
  72 + assertPojoEquals(reqVO, notice);
  73 + }
  74 +
  75 + @Test
  76 + void testDeleteNotice_success() {
  77 + // 插入前置数据
  78 + int noticeId = sysNoticeMapper.insert(randomSysNoticeDO());
  79 +
  80 + // 删除
  81 + sysNoticeService.deleteNotice(new Long(noticeId));
  82 +
  83 + // 检查是否删除成功
  84 + assertNull(sysNoticeMapper.selectById(noticeId));
  85 + }
  86 +
  87 + @SafeVarargs
  88 + private static SysNoticeDO randomSysNoticeDO(Consumer<SysNoticeDO>... consumers) {
  89 + SysNoticeDO notice = randomPojo(SysNoticeDO.class, consumers);
  90 + notice.setType(randomEle(SysNoticeTypeEnum.values()).getType());
  91 + notice.setStatus(CommonStatusEnum.ENABLE.getStatus());
  92 + return notice;
  93 + }
  94 +
  95 + @SafeVarargs
  96 + private static SysNoticeUpdateReqVO randomSysNoticeUpdateReqVO(Consumer<SysNoticeUpdateReqVO>... consumers) {
  97 + SysNoticeUpdateReqVO reqVO = randomPojo(SysNoticeUpdateReqVO.class, consumers);
  98 + reqVO.setType(randomEle(SysNoticeTypeEnum.values()).getType());
  99 + reqVO.setStatus(CommonStatusEnum.ENABLE.getStatus());
  100 + return reqVO;
  101 + }
  102 +
  103 + private static SysNoticeCreateReqVO randomSysNoticeCreateReqVO() {
  104 + SysNoticeCreateReqVO reqVO = randomPojo(SysNoticeCreateReqVO.class);
  105 + reqVO.setType(randomEle(SysNoticeTypeEnum.values()).getType());
  106 + reqVO.setStatus(CommonStatusEnum.ENABLE.getStatus());
  107 + return reqVO;
  108 + }
  109 +
  110 +
  111 +}
0 112 \ No newline at end of file
... ...
src/test/resources/sql/create_tables.sql
... ... @@ -100,3 +100,17 @@ CREATE TABLE IF NOT EXISTS &quot;sys_menu&quot; (
100 100 "deleted" bit NOT NULL DEFAULT FALSE,
101 101 PRIMARY KEY ("id")
102 102 ) COMMENT '菜单权限表';
  103 +
  104 +CREATE TABLE IF NOT EXISTS "sys_notice" (
  105 + "id" bigint NOT NULL GENERATED BY DEFAULT AS IDENTITY,
  106 + "title" varchar(50) NOT NULL,
  107 + "content" text NOT NULL,
  108 + "notice_type" tinyint(4) NOT NULL,
  109 + "status" tinyint(4) NOT NULL DEFAULT '0',
  110 + "create_by" varchar(64) DEFAULT '',
  111 + "create_time" datetime NOT NULL DEFAULT CURRENT_TIMESTAMP,
  112 + "update_by" varchar(64) DEFAULT '',
  113 + "update_time" datetime NOT NULL DEFAULT CURRENT_TIMESTAMP ON UPDATE CURRENT_TIMESTAMP,
  114 + "deleted" bit NOT NULL DEFAULT '0',
  115 + PRIMARY KEY ("id")
  116 +) COMMENT='通知公告表';
... ...