mirror of
				https://gitee.com/hhyykk/ipms-sjy.git
				synced 2025-10-30 09:48:43 +08:00 
			
		
		
		
	更新通知公告模块单测
This commit is contained in:
		| @@ -9,6 +9,7 @@ import cn.iocoder.dashboard.modules.system.convert.notice.SysNoticeConvert; | |||||||
| import cn.iocoder.dashboard.modules.system.dal.mysql.notice.SysNoticeMapper; | import cn.iocoder.dashboard.modules.system.dal.mysql.notice.SysNoticeMapper; | ||||||
| import cn.iocoder.dashboard.modules.system.dal.dataobject.notice.SysNoticeDO; | import cn.iocoder.dashboard.modules.system.dal.dataobject.notice.SysNoticeDO; | ||||||
| import cn.iocoder.dashboard.modules.system.service.notice.SysNoticeService; | import cn.iocoder.dashboard.modules.system.service.notice.SysNoticeService; | ||||||
|  | import com.google.common.annotations.VisibleForTesting; | ||||||
| import org.springframework.stereotype.Service; | import org.springframework.stereotype.Service; | ||||||
|  |  | ||||||
| import javax.annotation.Resource; | import javax.annotation.Resource; | ||||||
| @@ -60,7 +61,8 @@ public class SysNoticeServiceImpl implements SysNoticeService { | |||||||
|         noticeMapper.deleteById(id); |         noticeMapper.deleteById(id); | ||||||
|     } |     } | ||||||
|  |  | ||||||
|     private void checkNoticeExists(Long id) { |     @VisibleForTesting | ||||||
|  |     public void checkNoticeExists(Long id) { | ||||||
|         if (id == null) { |         if (id == null) { | ||||||
|             return; |             return; | ||||||
|         } |         } | ||||||
|   | |||||||
| @@ -1,49 +1,85 @@ | |||||||
| package cn.iocoder.dashboard.modules.system.service.notice; | package cn.iocoder.dashboard.modules.system.service.notice; | ||||||
|  |  | ||||||
| import cn.iocoder.dashboard.BaseSpringBootUnitTest; | import cn.iocoder.dashboard.BaseDbUnitTest; | ||||||
| import cn.iocoder.dashboard.common.enums.CommonStatusEnum; | import cn.iocoder.dashboard.common.enums.CommonStatusEnum; | ||||||
|  | import cn.iocoder.dashboard.common.pojo.PageResult; | ||||||
| import cn.iocoder.dashboard.modules.system.controller.notice.vo.SysNoticeCreateReqVO; | import cn.iocoder.dashboard.modules.system.controller.notice.vo.SysNoticeCreateReqVO; | ||||||
|  | import cn.iocoder.dashboard.modules.system.controller.notice.vo.SysNoticePageReqVO; | ||||||
| import cn.iocoder.dashboard.modules.system.controller.notice.vo.SysNoticeUpdateReqVO; | import cn.iocoder.dashboard.modules.system.controller.notice.vo.SysNoticeUpdateReqVO; | ||||||
| import cn.iocoder.dashboard.modules.system.dal.dataobject.notice.SysNoticeDO; | import cn.iocoder.dashboard.modules.system.dal.dataobject.notice.SysNoticeDO; | ||||||
| import cn.iocoder.dashboard.modules.system.dal.mysql.notice.SysNoticeMapper; | import cn.iocoder.dashboard.modules.system.dal.mysql.notice.SysNoticeMapper; | ||||||
| import cn.iocoder.dashboard.modules.system.enums.notice.SysNoticeTypeEnum; | import cn.iocoder.dashboard.modules.system.enums.notice.SysNoticeTypeEnum; | ||||||
|  | import cn.iocoder.dashboard.modules.system.service.notice.impl.SysNoticeServiceImpl; | ||||||
|  | import cn.iocoder.dashboard.util.object.ObjectUtils; | ||||||
| import org.junit.jupiter.api.Test; | import org.junit.jupiter.api.Test; | ||||||
|  | import org.springframework.context.annotation.Import; | ||||||
|  |  | ||||||
| import javax.annotation.Resource; | import javax.annotation.Resource; | ||||||
|  |  | ||||||
| import java.util.function.Consumer; | import java.util.function.Consumer; | ||||||
|  |  | ||||||
| import static cn.hutool.core.util.RandomUtil.randomEle; | import static cn.hutool.core.util.RandomUtil.randomEle; | ||||||
|  | import static cn.iocoder.dashboard.modules.system.enums.SysErrorCodeConstants.NOTICE_NOT_FOUND; | ||||||
| import static cn.iocoder.dashboard.util.AssertUtils.assertPojoEquals; | import static cn.iocoder.dashboard.util.AssertUtils.assertPojoEquals; | ||||||
|  | import static cn.iocoder.dashboard.util.AssertUtils.assertServiceException; | ||||||
|  | import static cn.iocoder.dashboard.util.RandomUtils.randomLongId; | ||||||
| import static cn.iocoder.dashboard.util.RandomUtils.randomPojo; | import static cn.iocoder.dashboard.util.RandomUtils.randomPojo; | ||||||
| import static org.junit.jupiter.api.Assertions.assertNotNull; | import static org.junit.jupiter.api.Assertions.*; | ||||||
| import static org.junit.jupiter.api.Assertions.assertNull; |  | ||||||
|  |  | ||||||
|  | @Import(SysNoticeServiceImpl.class) | ||||||
| class SysNoticeServiceImplTest extends BaseSpringBootUnitTest { | class SysNoticeServiceImplTest extends BaseDbUnitTest { | ||||||
|  |  | ||||||
|     @Resource |     @Resource | ||||||
|     private SysNoticeService sysNoticeService; |     private SysNoticeServiceImpl sysNoticeService; | ||||||
|  |  | ||||||
|     @Resource |     @Resource | ||||||
|     private SysNoticeMapper sysNoticeMapper; |     private SysNoticeMapper sysNoticeMapper; | ||||||
|  |  | ||||||
|     @Test |     @Test | ||||||
|     void testPageNotices_success() { |     public void testPageNotices_success() { | ||||||
|         // todo: 待更新 |  | ||||||
|     } |  | ||||||
|  |  | ||||||
|     @Test |  | ||||||
|     void testGetNotice_success() { |  | ||||||
|         // 插入前置数据 |         // 插入前置数据 | ||||||
|         int noticeId = sysNoticeMapper.insert(randomSysNoticeDO()); |         SysNoticeDO dbNotice = randomPojo(SysNoticeDO.class, o -> { | ||||||
|  |             o.setTitle("尼古拉斯赵四来啦!"); | ||||||
|  |             o.setStatus(CommonStatusEnum.ENABLE.getStatus()); | ||||||
|  |             o.setType(randomEle(SysNoticeTypeEnum.values()).getType()); | ||||||
|  |         }); | ||||||
|  |         sysNoticeMapper.insert(dbNotice); | ||||||
|  |  | ||||||
|  |         // 测试 title 不匹配 | ||||||
|  |         sysNoticeMapper.insert(ObjectUtils.clone(dbNotice, o -> o.setTitle("尼古拉斯凯奇也来啦!"))); | ||||||
|  |         // 测试 status 不匹配 | ||||||
|  |         sysNoticeMapper.insert(ObjectUtils.clone(dbNotice, o -> o.setStatus(CommonStatusEnum.DISABLE.getStatus()))); | ||||||
|  |  | ||||||
|  |  | ||||||
|         // 查询 |         // 查询 | ||||||
|         assertNotNull(sysNoticeService.getNotice(new Long(noticeId))); |         SysNoticePageReqVO reqVO = new SysNoticePageReqVO(); | ||||||
|  |         reqVO.setTitle("尼古拉斯赵四来啦!"); | ||||||
|  |         reqVO.setStatus(CommonStatusEnum.ENABLE.getStatus()); | ||||||
|  |         PageResult<SysNoticeDO> pageResult = sysNoticeService.pageNotices(reqVO); | ||||||
|  |  | ||||||
|  |         // 验证查询结果经过筛选 | ||||||
|  |         assertEquals(1, pageResult.getTotal()); | ||||||
|  |         assertEquals(1, pageResult.getList().size()); | ||||||
|  |         assertPojoEquals(dbNotice, pageResult.getList().get(0)); | ||||||
|  |  | ||||||
|     } |     } | ||||||
|  |  | ||||||
|     @Test |     @Test | ||||||
|     void testCreateNotice_success() { |     public void testGetNotice_success() { | ||||||
|  |         // 插入前置数据 | ||||||
|  |         SysNoticeDO dbNotice = randomSysNoticeDO(); | ||||||
|  |         sysNoticeMapper.insert(dbNotice); | ||||||
|  |  | ||||||
|  |         // 查询 | ||||||
|  |         SysNoticeDO notice = sysNoticeService.getNotice(dbNotice.getId()); | ||||||
|  |  | ||||||
|  |         // 验证插入与读取对象是否一致 | ||||||
|  |         assertNotNull(notice); | ||||||
|  |         assertPojoEquals(dbNotice, notice); | ||||||
|  |     } | ||||||
|  |  | ||||||
|  |     @Test | ||||||
|  |     public void testCreateNotice_success() { | ||||||
|         // 准备参数 |         // 准备参数 | ||||||
|         SysNoticeCreateReqVO reqVO = randomSysNoticeCreateReqVO(); |         SysNoticeCreateReqVO reqVO = randomSysNoticeCreateReqVO(); | ||||||
|  |  | ||||||
| @@ -57,31 +93,48 @@ class SysNoticeServiceImplTest extends BaseSpringBootUnitTest { | |||||||
|     } |     } | ||||||
|  |  | ||||||
|     @Test |     @Test | ||||||
|     void testUpdateNotice_success() { |     public void testUpdateNotice_success() { | ||||||
|         // 插入前置数据 |         // 插入前置数据 | ||||||
|         int noticeId = sysNoticeMapper.insert(randomSysNoticeDO()); |         SysNoticeDO dbNoticeDO = randomSysNoticeDO(); | ||||||
|  |         sysNoticeMapper.insert(dbNoticeDO); | ||||||
|  |  | ||||||
|         // 准备更新参数 |         // 准备更新参数 | ||||||
|         SysNoticeUpdateReqVO reqVO = randomSysNoticeUpdateReqVO(o -> o.setId(new Long(noticeId))); |         SysNoticeUpdateReqVO reqVO = randomSysNoticeUpdateReqVO(o -> o.setId(dbNoticeDO.getId())); | ||||||
|  |  | ||||||
|         // 更新 |         // 更新 | ||||||
|         sysNoticeService.updateNotice(reqVO); |         sysNoticeService.updateNotice(reqVO); | ||||||
|  |  | ||||||
|         // 检验是否更新成功 |         // 检验是否更新成功 | ||||||
|         SysNoticeDO notice = sysNoticeMapper.selectById(noticeId); |         SysNoticeDO notice = sysNoticeMapper.selectById(reqVO.getId()); | ||||||
|         assertPojoEquals(reqVO, notice); |         assertPojoEquals(reqVO, notice); | ||||||
|     } |     } | ||||||
|  |  | ||||||
|     @Test |     @Test | ||||||
|     void testDeleteNotice_success() { |     public void testDeleteNotice_success() { | ||||||
|         // 插入前置数据 |         // 插入前置数据 | ||||||
|         int noticeId = sysNoticeMapper.insert(randomSysNoticeDO()); |         SysNoticeDO dbNotice = randomSysNoticeDO(); | ||||||
|  |         sysNoticeMapper.insert(dbNotice); | ||||||
|  |  | ||||||
|         // 删除 |         // 删除 | ||||||
|         sysNoticeService.deleteNotice(new Long(noticeId)); |         sysNoticeService.deleteNotice(dbNotice.getId()); | ||||||
|  |  | ||||||
|         // 检查是否删除成功 |         // 检查是否删除成功 | ||||||
|         assertNull(sysNoticeMapper.selectById(noticeId)); |         assertNull(sysNoticeMapper.selectById(dbNotice.getId())); | ||||||
|  |     } | ||||||
|  |  | ||||||
|  |     @Test | ||||||
|  |     public void checkNoticeExists_success() { | ||||||
|  |         // 插入前置数据 | ||||||
|  |         SysNoticeDO dbNotice = randomSysNoticeDO(); | ||||||
|  |         sysNoticeMapper.insert(dbNotice); | ||||||
|  |  | ||||||
|  |         // 成功调用 | ||||||
|  |         sysNoticeService.checkNoticeExists(dbNotice.getId()); | ||||||
|  |     } | ||||||
|  |  | ||||||
|  |     @Test | ||||||
|  |     public void checkNoticeExists_noExists() { | ||||||
|  |         assertServiceException(() -> sysNoticeService.checkNoticeExists(randomLongId()), NOTICE_NOT_FOUND); | ||||||
|     } |     } | ||||||
|  |  | ||||||
|     @SafeVarargs |     @SafeVarargs | ||||||
|   | |||||||
| @@ -129,3 +129,18 @@ CREATE TABLE `sys_user_session` ( | |||||||
|     "deleted" bit NOT NULL DEFAULT FALSE, |     "deleted" bit NOT NULL DEFAULT FALSE, | ||||||
|     PRIMARY KEY (`id`) |     PRIMARY KEY (`id`) | ||||||
| ) COMMENT '用户在线 Session'; | ) COMMENT '用户在线 Session'; | ||||||
|  |  | ||||||
|  | CREATE TABLE IF NOT EXISTS "sys_notice" ( | ||||||
|  | 	"id" bigint NOT NULL GENERATED BY DEFAULT AS IDENTITY, | ||||||
|  | 	"title" varchar(50) NOT NULL COMMENT '公告标题', | ||||||
|  | 	"content" text NOT NULL COMMENT '公告内容', | ||||||
|  | 	"notice_type" tinyint NOT NULL COMMENT '公告类型(1通知 2公告)', | ||||||
|  | 	"status" tinyint NOT NULL DEFAULT '0' COMMENT '公告状态(0正常 1关闭)', | ||||||
|  | 	"creator" varchar(64) DEFAULT '' COMMENT '创建者', | ||||||
|  | 	"create_time" datetime NOT NULL DEFAULT CURRENT_TIMESTAMP COMMENT '创建时间', | ||||||
|  | 	"updater" varchar(64) DEFAULT '' COMMENT '更新者', | ||||||
|  | 	"update_time" datetime NOT NULL DEFAULT CURRENT_TIMESTAMP ON UPDATE CURRENT_TIMESTAMP COMMENT '更新时间', | ||||||
|  | 	"deleted" bit NOT NULL DEFAULT 0 COMMENT '是否删除', | ||||||
|  | 	PRIMARY KEY("id") | ||||||
|  | ) COMMENT '通知公告表'; | ||||||
|  |  | ||||||
|   | |||||||
		Reference in New Issue
	
	Block a user
	 budliang
					budliang