mirror of
				https://gitee.com/hhyykk/ipms-sjy.git
				synced 2025-10-31 02:08: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.dataobject.notice.SysNoticeDO; | ||||
| import cn.iocoder.dashboard.modules.system.service.notice.SysNoticeService; | ||||
| import com.google.common.annotations.VisibleForTesting; | ||||
| import org.springframework.stereotype.Service; | ||||
|  | ||||
| import javax.annotation.Resource; | ||||
| @@ -60,7 +61,8 @@ public class SysNoticeServiceImpl implements SysNoticeService { | ||||
|         noticeMapper.deleteById(id); | ||||
|     } | ||||
|  | ||||
|     private void checkNoticeExists(Long id) { | ||||
|     @VisibleForTesting | ||||
|     public void checkNoticeExists(Long id) { | ||||
|         if (id == null) { | ||||
|             return; | ||||
|         } | ||||
|   | ||||
| @@ -1,49 +1,85 @@ | ||||
| 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.pojo.PageResult; | ||||
| 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.dal.dataobject.notice.SysNoticeDO; | ||||
| 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.service.notice.impl.SysNoticeServiceImpl; | ||||
| import cn.iocoder.dashboard.util.object.ObjectUtils; | ||||
| 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.dashboard.modules.system.enums.SysErrorCodeConstants.NOTICE_NOT_FOUND; | ||||
| 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 org.junit.jupiter.api.Assertions.assertNotNull; | ||||
| import static org.junit.jupiter.api.Assertions.assertNull; | ||||
| import static org.junit.jupiter.api.Assertions.*; | ||||
|  | ||||
|  | ||||
| class SysNoticeServiceImplTest extends BaseSpringBootUnitTest { | ||||
| @Import(SysNoticeServiceImpl.class) | ||||
| class SysNoticeServiceImplTest extends BaseDbUnitTest { | ||||
|  | ||||
|     @Resource | ||||
|     private SysNoticeService sysNoticeService; | ||||
|     private SysNoticeServiceImpl sysNoticeService; | ||||
|  | ||||
|     @Resource | ||||
|     private SysNoticeMapper sysNoticeMapper; | ||||
|  | ||||
|     @Test | ||||
|     void testPageNotices_success() { | ||||
|         // todo: 待更新 | ||||
|     } | ||||
|  | ||||
|     @Test | ||||
|     void testGetNotice_success() { | ||||
|     public void testPageNotices_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 | ||||
|     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(); | ||||
|  | ||||
| @@ -57,31 +93,48 @@ class SysNoticeServiceImplTest extends BaseSpringBootUnitTest { | ||||
|     } | ||||
|  | ||||
|     @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); | ||||
|  | ||||
|         // 检验是否更新成功 | ||||
|         SysNoticeDO notice = sysNoticeMapper.selectById(noticeId); | ||||
|         SysNoticeDO notice = sysNoticeMapper.selectById(reqVO.getId()); | ||||
|         assertPojoEquals(reqVO, notice); | ||||
|     } | ||||
|  | ||||
|     @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 | ||||
|   | ||||
| @@ -129,3 +129,18 @@ CREATE TABLE `sys_user_session` ( | ||||
|     "deleted" bit NOT NULL DEFAULT FALSE, | ||||
|     PRIMARY KEY (`id`) | ||||
| ) 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