|
@@ -1,27 +1,37 @@
|
|
|
package cn.iocoder.dashboard.modules.system.service.sms;
|
|
package cn.iocoder.dashboard.modules.system.service.sms;
|
|
|
|
|
|
|
|
import cn.iocoder.dashboard.BaseDbUnitTest;
|
|
import cn.iocoder.dashboard.BaseDbUnitTest;
|
|
|
|
|
+import cn.iocoder.dashboard.common.enums.CommonStatusEnum;
|
|
|
import cn.iocoder.dashboard.common.pojo.PageResult;
|
|
import cn.iocoder.dashboard.common.pojo.PageResult;
|
|
|
import cn.iocoder.dashboard.modules.system.controller.sms.vo.template.SysSmsTemplateCreateReqVO;
|
|
import cn.iocoder.dashboard.modules.system.controller.sms.vo.template.SysSmsTemplateCreateReqVO;
|
|
|
import cn.iocoder.dashboard.modules.system.controller.sms.vo.template.SysSmsTemplateExportReqVO;
|
|
import cn.iocoder.dashboard.modules.system.controller.sms.vo.template.SysSmsTemplateExportReqVO;
|
|
|
import cn.iocoder.dashboard.modules.system.controller.sms.vo.template.SysSmsTemplatePageReqVO;
|
|
import cn.iocoder.dashboard.modules.system.controller.sms.vo.template.SysSmsTemplatePageReqVO;
|
|
|
import cn.iocoder.dashboard.modules.system.controller.sms.vo.template.SysSmsTemplateUpdateReqVO;
|
|
import cn.iocoder.dashboard.modules.system.controller.sms.vo.template.SysSmsTemplateUpdateReqVO;
|
|
|
|
|
+import cn.iocoder.dashboard.modules.system.dal.dataobject.sms.SysSmsChannelDO;
|
|
|
import cn.iocoder.dashboard.modules.system.dal.dataobject.sms.SysSmsTemplateDO;
|
|
import cn.iocoder.dashboard.modules.system.dal.dataobject.sms.SysSmsTemplateDO;
|
|
|
import cn.iocoder.dashboard.modules.system.dal.mysql.sms.SysSmsTemplateMapper;
|
|
import cn.iocoder.dashboard.modules.system.dal.mysql.sms.SysSmsTemplateMapper;
|
|
|
|
|
+import cn.iocoder.dashboard.modules.system.enums.sms.SysSmsTemplateTypeEnum;
|
|
|
import cn.iocoder.dashboard.modules.system.service.sms.impl.SysSmsTemplateServiceImpl;
|
|
import cn.iocoder.dashboard.modules.system.service.sms.impl.SysSmsTemplateServiceImpl;
|
|
|
|
|
+import cn.iocoder.dashboard.util.collection.ArrayUtils;
|
|
|
import cn.iocoder.dashboard.util.object.ObjectUtils;
|
|
import cn.iocoder.dashboard.util.object.ObjectUtils;
|
|
|
|
|
+import com.google.common.collect.Lists;
|
|
|
import org.junit.jupiter.api.Test;
|
|
import org.junit.jupiter.api.Test;
|
|
|
|
|
+import org.springframework.boot.test.mock.mockito.MockBean;
|
|
|
import org.springframework.context.annotation.Import;
|
|
import org.springframework.context.annotation.Import;
|
|
|
|
|
|
|
|
import javax.annotation.Resource;
|
|
import javax.annotation.Resource;
|
|
|
import java.util.List;
|
|
import java.util.List;
|
|
|
|
|
+import java.util.function.Consumer;
|
|
|
|
|
|
|
|
|
|
+import static cn.hutool.core.util.RandomUtil.randomEle;
|
|
|
import static cn.iocoder.dashboard.modules.system.enums.SysErrorCodeConstants.SMS_TEMPLATE_NOT_EXISTS;
|
|
import static cn.iocoder.dashboard.modules.system.enums.SysErrorCodeConstants.SMS_TEMPLATE_NOT_EXISTS;
|
|
|
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.AssertUtils.assertServiceException;
|
|
|
import static cn.iocoder.dashboard.util.RandomUtils.randomLongId;
|
|
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.*;
|
|
import static org.junit.jupiter.api.Assertions.*;
|
|
|
|
|
+import static org.mockito.ArgumentMatchers.eq;
|
|
|
|
|
+import static org.mockito.Mockito.when;
|
|
|
|
|
|
|
|
/**
|
|
/**
|
|
|
* {@link SysSmsTemplateServiceImpl} 的单元测试类
|
|
* {@link SysSmsTemplateServiceImpl} 的单元测试类
|
|
@@ -37,10 +47,35 @@ public class SysSmsTemplateServiceTest extends BaseDbUnitTest {
|
|
|
@Resource
|
|
@Resource
|
|
|
private SysSmsTemplateMapper smsTemplateMapper;
|
|
private SysSmsTemplateMapper smsTemplateMapper;
|
|
|
|
|
|
|
|
|
|
+ @MockBean
|
|
|
|
|
+ private SysSmsChannelService smsChannelService;
|
|
|
|
|
+
|
|
|
|
|
+ @Test
|
|
|
|
|
+ public void testParseTemplateContentParams() {
|
|
|
|
|
+ // 准备参数
|
|
|
|
|
+ String content = "正在进行登录操作{operation},您的验证码是{code}";
|
|
|
|
|
+ // mock 方法
|
|
|
|
|
+
|
|
|
|
|
+ // 调用
|
|
|
|
|
+ List<String> params = smsTemplateService.parseTemplateContentParams(content);
|
|
|
|
|
+ // 断言
|
|
|
|
|
+ assertEquals(Lists.newArrayList("operation", "code"), params);
|
|
|
|
|
+ }
|
|
|
|
|
+
|
|
|
@Test
|
|
@Test
|
|
|
public void testCreateSmsTemplate_success() {
|
|
public void testCreateSmsTemplate_success() {
|
|
|
// 准备参数
|
|
// 准备参数
|
|
|
- SysSmsTemplateCreateReqVO reqVO = randomPojo(SysSmsTemplateCreateReqVO.class);
|
|
|
|
|
|
|
+ SysSmsTemplateCreateReqVO reqVO = randomPojo(SysSmsTemplateCreateReqVO.class, o -> {
|
|
|
|
|
+ o.setContent("正在进行登录操作{operation},您的验证码是{code}");
|
|
|
|
|
+ o.setStatus(randomEle(CommonStatusEnum.values()).getStatus()); // 保证 status 的范围
|
|
|
|
|
+ o.setType(randomEle(SysSmsTemplateTypeEnum.values()).getType()); // 保证 type 的泛微
|
|
|
|
|
+ });
|
|
|
|
|
+ // mock 方法
|
|
|
|
|
+ SysSmsChannelDO channelDO = randomPojo(SysSmsChannelDO.class, o -> {
|
|
|
|
|
+ o.setId(reqVO.getChannelId());
|
|
|
|
|
+ o.setStatus(CommonStatusEnum.ENABLE.getStatus()); // 保证 status 开启,创建必须处于这个状态
|
|
|
|
|
+ });
|
|
|
|
|
+ when(smsChannelService.getSmsChannel(eq(channelDO.getId()))).thenReturn(channelDO);
|
|
|
|
|
|
|
|
// 调用
|
|
// 调用
|
|
|
Long smsTemplateId = smsTemplateService.createSmsTemplate(reqVO);
|
|
Long smsTemplateId = smsTemplateService.createSmsTemplate(reqVO);
|
|
@@ -49,6 +84,8 @@ public class SysSmsTemplateServiceTest extends BaseDbUnitTest {
|
|
|
// 校验记录的属性是否正确
|
|
// 校验记录的属性是否正确
|
|
|
SysSmsTemplateDO smsTemplate = smsTemplateMapper.selectById(smsTemplateId);
|
|
SysSmsTemplateDO smsTemplate = smsTemplateMapper.selectById(smsTemplateId);
|
|
|
assertPojoEquals(reqVO, smsTemplate);
|
|
assertPojoEquals(reqVO, smsTemplate);
|
|
|
|
|
+ assertEquals(Lists.newArrayList("operation", "code"), smsTemplate.getParams());
|
|
|
|
|
+ assertEquals(channelDO.getCode(), smsTemplate.getChannelCode());
|
|
|
}
|
|
}
|
|
|
|
|
|
|
|
@Test
|
|
@Test
|
|
@@ -80,7 +117,7 @@ public class SysSmsTemplateServiceTest extends BaseDbUnitTest {
|
|
|
@Test
|
|
@Test
|
|
|
public void testDeleteSmsTemplate_success() {
|
|
public void testDeleteSmsTemplate_success() {
|
|
|
// mock 数据
|
|
// mock 数据
|
|
|
- SysSmsTemplateDO dbSmsTemplate = randomPojo(SysSmsTemplateDO.class);
|
|
|
|
|
|
|
+ SysSmsTemplateDO dbSmsTemplate = randomSmsTemplateDO();
|
|
|
smsTemplateMapper.insert(dbSmsTemplate);// @Sql: 先插入出一条存在的数据
|
|
smsTemplateMapper.insert(dbSmsTemplate);// @Sql: 先插入出一条存在的数据
|
|
|
// 准备参数
|
|
// 准备参数
|
|
|
Long id = dbSmsTemplate.getId();
|
|
Long id = dbSmsTemplate.getId();
|
|
@@ -191,4 +228,13 @@ public class SysSmsTemplateServiceTest extends BaseDbUnitTest {
|
|
|
assertPojoEquals(dbSmsTemplate, list.get(0));
|
|
assertPojoEquals(dbSmsTemplate, list.get(0));
|
|
|
}
|
|
}
|
|
|
|
|
|
|
|
|
|
+ @SafeVarargs
|
|
|
|
|
+ private static SysSmsTemplateDO randomSmsTemplateDO(Consumer<SysSmsTemplateDO>... consumers) {
|
|
|
|
|
+ Consumer<SysSmsTemplateDO> consumer = (o) -> {
|
|
|
|
|
+ o.setStatus(randomEle(CommonStatusEnum.values()).getStatus()); // 保证 status 的范围
|
|
|
|
|
+ o.setType(randomEle(SysSmsTemplateTypeEnum.values()).getType()); // 保证 type 的泛微
|
|
|
|
|
+ };
|
|
|
|
|
+ return randomPojo(SysSmsTemplateDO.class, ArrayUtils.append(consumer, consumers));
|
|
|
|
|
+ }
|
|
|
|
|
+
|
|
|
}
|
|
}
|