mirror of
				https://gitee.com/hhyykk/ipms-sjy.git
				synced 2025-11-01 02:38:43 +08:00 
			
		
		
		
	完善 notify 单元测试
This commit is contained in:
		| @@ -181,7 +181,7 @@ public class MailTemplateServiceImplTest extends BaseDbUnitTest { | ||||
|     } | ||||
|  | ||||
|     @Test | ||||
|     public void testGetTemplate() { | ||||
|     public void testGetMailTemplate() { | ||||
|         // mock 数据 | ||||
|         MailTemplateDO dbMailTemplate = randomPojo(MailTemplateDO.class); | ||||
|         mailTemplateMapper.insert(dbMailTemplate); | ||||
|   | ||||
| @@ -108,6 +108,20 @@ public class NotifyMessageServiceImplTest extends BaseDbUnitTest { | ||||
|        assertPojoEquals(dbNotifyMessage, pageResult.getList().get(0)); | ||||
|     } | ||||
|  | ||||
|     @Test | ||||
|     public void testGetNotifyMessage() { | ||||
|         // mock 数据 | ||||
|         NotifyMessageDO dbNotifyMessage = randomPojo(NotifyMessageDO.class, | ||||
|                 o -> o.setTemplateParams(randomTemplateParams())); | ||||
|         notifyMessageMapper.insert(dbNotifyMessage); | ||||
|         // 准备参数 | ||||
|         Long id = dbNotifyMessage.getId(); | ||||
|  | ||||
|         // 调用 | ||||
|         NotifyMessageDO notifyMessage = notifyMessageService.getNotifyMessage(id); | ||||
|         assertPojoEquals(dbNotifyMessage, notifyMessage); | ||||
|     } | ||||
|  | ||||
|     @Test | ||||
|     public void testGetMyNotifyMessagePage() { | ||||
|         // mock 数据 | ||||
|   | ||||
| @@ -4,8 +4,6 @@ import cn.hutool.core.map.MapUtil; | ||||
| import cn.iocoder.yudao.framework.common.enums.CommonStatusEnum; | ||||
| import cn.iocoder.yudao.framework.common.enums.UserTypeEnum; | ||||
| import cn.iocoder.yudao.framework.test.core.ut.BaseMockitoUnitTest; | ||||
| import cn.iocoder.yudao.module.system.dal.dataobject.mail.MailAccountDO; | ||||
| import cn.iocoder.yudao.module.system.dal.dataobject.mail.MailTemplateDO; | ||||
| import cn.iocoder.yudao.module.system.dal.dataobject.notify.NotifyTemplateDO; | ||||
| import org.assertj.core.util.Lists; | ||||
| import org.junit.jupiter.api.Test; | ||||
| @@ -18,7 +16,8 @@ import java.util.Map; | ||||
| import static cn.hutool.core.util.RandomUtil.randomEle; | ||||
| import static cn.iocoder.yudao.framework.test.core.util.AssertUtils.assertServiceException; | ||||
| import static cn.iocoder.yudao.framework.test.core.util.RandomUtils.*; | ||||
| import static cn.iocoder.yudao.module.system.enums.ErrorCodeConstants.*; | ||||
| import static cn.iocoder.yudao.module.system.enums.ErrorCodeConstants.NOTICE_NOT_FOUND; | ||||
| import static cn.iocoder.yudao.module.system.enums.ErrorCodeConstants.NOTIFY_SEND_TEMPLATE_PARAM_MISS; | ||||
| import static org.junit.jupiter.api.Assertions.assertEquals; | ||||
| import static org.junit.jupiter.api.Assertions.assertNull; | ||||
| import static org.mockito.ArgumentMatchers.eq; | ||||
| @@ -34,6 +33,62 @@ class NotifySendServiceImplTest extends BaseMockitoUnitTest { | ||||
|     @Mock | ||||
|     private NotifyMessageService notifyMessageService; | ||||
|  | ||||
|     @Test | ||||
|     public void testSendSingleNotifyToAdmin() { | ||||
|         // 准备参数 | ||||
|         Long userId = randomLongId(); | ||||
|         String templateCode = randomString(); | ||||
|         Map<String, Object> templateParams = MapUtil.<String, Object>builder().put("code", "1234") | ||||
|                 .put("op", "login").build(); | ||||
|         // mock NotifyTemplateService 的方法 | ||||
|         NotifyTemplateDO template = randomPojo(NotifyTemplateDO.class, o -> { | ||||
|             o.setStatus(CommonStatusEnum.ENABLE.getStatus()); | ||||
|             o.setContent("验证码为{code}, 操作为{op}"); | ||||
|             o.setParams(Lists.newArrayList("code", "op")); | ||||
|         }); | ||||
|         when(notifyTemplateService.getNotifyTemplateByCodeFromCache(eq(templateCode))).thenReturn(template); | ||||
|         String content = randomString(); | ||||
|         when(notifyTemplateService.formatNotifyTemplateContent(eq(template.getContent()), eq(templateParams))) | ||||
|                 .thenReturn(content); | ||||
|         // mock NotifyMessageService 的方法 | ||||
|         Long messageId = randomLongId(); | ||||
|         when(notifyMessageService.createNotifyMessage(eq(userId), eq(UserTypeEnum.ADMIN.getValue()), | ||||
|                 eq(template), eq(content), eq(templateParams))).thenReturn(messageId); | ||||
|  | ||||
|         // 调用 | ||||
|         Long resultMessageId = notifySendService.sendSingleNotifyToAdmin(userId, templateCode, templateParams); | ||||
|         // 断言 | ||||
|         assertEquals(messageId, resultMessageId); | ||||
|     } | ||||
|  | ||||
|     @Test | ||||
|     public void testSendSingleNotifyToMember() { | ||||
|         // 准备参数 | ||||
|         Long userId = randomLongId(); | ||||
|         String templateCode = randomString(); | ||||
|         Map<String, Object> templateParams = MapUtil.<String, Object>builder().put("code", "1234") | ||||
|                 .put("op", "login").build(); | ||||
|         // mock NotifyTemplateService 的方法 | ||||
|         NotifyTemplateDO template = randomPojo(NotifyTemplateDO.class, o -> { | ||||
|             o.setStatus(CommonStatusEnum.ENABLE.getStatus()); | ||||
|             o.setContent("验证码为{code}, 操作为{op}"); | ||||
|             o.setParams(Lists.newArrayList("code", "op")); | ||||
|         }); | ||||
|         when(notifyTemplateService.getNotifyTemplateByCodeFromCache(eq(templateCode))).thenReturn(template); | ||||
|         String content = randomString(); | ||||
|         when(notifyTemplateService.formatNotifyTemplateContent(eq(template.getContent()), eq(templateParams))) | ||||
|                 .thenReturn(content); | ||||
|         // mock NotifyMessageService 的方法 | ||||
|         Long messageId = randomLongId(); | ||||
|         when(notifyMessageService.createNotifyMessage(eq(userId), eq(UserTypeEnum.MEMBER.getValue()), | ||||
|                 eq(template), eq(content), eq(templateParams))).thenReturn(messageId); | ||||
|  | ||||
|         // 调用 | ||||
|         Long resultMessageId = notifySendService.sendSingleNotifyToMember(userId, templateCode, templateParams); | ||||
|         // 断言 | ||||
|         assertEquals(messageId, resultMessageId); | ||||
|     } | ||||
|  | ||||
|     /** | ||||
|      * 发送成功,当短信模板开启时 | ||||
|      */ | ||||
| @@ -100,7 +155,7 @@ class NotifySendServiceImplTest extends BaseMockitoUnitTest { | ||||
|         // mock 方法 | ||||
|  | ||||
|         // 调用,并断言异常 | ||||
|         assertServiceException(() -> notifySendService.checkNotifyTemplateValid(templateCode), | ||||
|         assertServiceException(() -> notifySendService.validateNotifyTemplate(templateCode), | ||||
|                 NOTICE_NOT_FOUND); | ||||
|     } | ||||
|  | ||||
| @@ -113,7 +168,7 @@ class NotifySendServiceImplTest extends BaseMockitoUnitTest { | ||||
|         // mock 方法 | ||||
|  | ||||
|         // 调用,并断言异常 | ||||
|         assertServiceException(() -> notifySendService.checkTemplateParams(template, templateParams), | ||||
|         assertServiceException(() -> notifySendService.validateTemplateParams(template, templateParams), | ||||
|                 NOTIFY_SEND_TEMPLATE_PARAM_MISS, "code"); | ||||
|     } | ||||
|  | ||||
|   | ||||
| @@ -14,6 +14,8 @@ import org.springframework.boot.test.mock.mockito.MockBean; | ||||
| import org.springframework.context.annotation.Import; | ||||
|  | ||||
| import javax.annotation.Resource; | ||||
| import java.util.HashMap; | ||||
| import java.util.Map; | ||||
|  | ||||
| import static cn.iocoder.yudao.framework.common.util.date.LocalDateTimeUtils.buildBetweenTime; | ||||
| import static cn.iocoder.yudao.framework.common.util.date.LocalDateTimeUtils.buildTime; | ||||
| @@ -143,4 +145,44 @@ public class NotifyTemplateServiceImplTest extends BaseDbUnitTest { | ||||
|        assertPojoEquals(dbNotifyTemplate, pageResult.getList().get(0)); | ||||
|     } | ||||
|  | ||||
|     @Test | ||||
|     public void testGetNotifyTemplate() { | ||||
|         // mock 数据 | ||||
|         NotifyTemplateDO dbNotifyTemplate = randomPojo(NotifyTemplateDO.class); | ||||
|         notifyTemplateMapper.insert(dbNotifyTemplate); | ||||
|         // 准备参数 | ||||
|         Long id = dbNotifyTemplate.getId(); | ||||
|  | ||||
|         // 调用 | ||||
|         NotifyTemplateDO notifyTemplate = notifyTemplateService.getNotifyTemplate(id); | ||||
|         // 断言 | ||||
|         assertPojoEquals(dbNotifyTemplate, notifyTemplate); | ||||
|     } | ||||
|  | ||||
|     @Test | ||||
|     public void testGetNotifyTemplateByCodeFromCache() { | ||||
|         // mock 数据 | ||||
|         NotifyTemplateDO dbNotifyTemplate = randomPojo(NotifyTemplateDO.class); | ||||
|         notifyTemplateMapper.insert(dbNotifyTemplate); | ||||
|         notifyTemplateService.initLocalCache(); | ||||
|         // 准备参数 | ||||
|         String code = dbNotifyTemplate.getCode(); | ||||
|  | ||||
|         // 调用 | ||||
|         NotifyTemplateDO notifyTemplate = notifyTemplateService.getNotifyTemplateByCodeFromCache(code); | ||||
|         // 断言 | ||||
|         assertPojoEquals(dbNotifyTemplate, notifyTemplate); | ||||
|     } | ||||
|      | ||||
|     @Test | ||||
|     public void testFormatNotifyTemplateContent() { | ||||
|         // 准备参数 | ||||
|         Map<String, Object> params = new HashMap<>(); | ||||
|         params.put("name", "小红"); | ||||
|         params.put("what", "饭"); | ||||
|  | ||||
|         // 调用,并断言 | ||||
|         assertEquals("小红,你好,饭吃了吗?", | ||||
|                 notifyTemplateService.formatNotifyTemplateContent("{name},你好,{what}吃了吗?", params)); | ||||
|     } | ||||
| } | ||||
|   | ||||
		Reference in New Issue
	
	Block a user
	 YunaiV
					YunaiV