mirror of
https://gitee.com/hhyykk/ipms-sjy.git
synced 2025-07-17 12:35:07 +08:00
完善 SmsChannelServiceImpl 单元测试
This commit is contained in:
@ -2,8 +2,6 @@ package cn.iocoder.yudao.module.system.service.sms;
|
||||
|
||||
import cn.iocoder.yudao.framework.common.enums.CommonStatusEnum;
|
||||
import cn.iocoder.yudao.framework.common.pojo.PageResult;
|
||||
import cn.iocoder.yudao.framework.common.util.collection.ArrayUtils;
|
||||
import cn.iocoder.yudao.framework.common.util.object.ObjectUtils;
|
||||
import cn.iocoder.yudao.framework.sms.core.client.SmsClientFactory;
|
||||
import cn.iocoder.yudao.framework.test.core.ut.BaseDbUnitTest;
|
||||
import cn.iocoder.yudao.module.system.controller.admin.sms.vo.channel.SmsChannelCreateReqVO;
|
||||
@ -17,11 +15,12 @@ import org.springframework.boot.test.mock.mockito.MockBean;
|
||||
import org.springframework.context.annotation.Import;
|
||||
|
||||
import javax.annotation.Resource;
|
||||
import java.time.LocalDateTime;
|
||||
import java.util.function.Consumer;
|
||||
|
||||
import static cn.hutool.core.util.RandomUtil.randomEle;
|
||||
import java.util.List;
|
||||
|
||||
import static cn.iocoder.yudao.framework.common.util.date.LocalDateTimeUtils.buildBetweenTime;
|
||||
import static cn.iocoder.yudao.framework.common.util.date.LocalDateTimeUtils.buildTime;
|
||||
import static cn.iocoder.yudao.framework.common.util.object.ObjectUtils.cloneIgnoreId;
|
||||
import static cn.iocoder.yudao.framework.test.core.util.AssertUtils.*;
|
||||
import static cn.iocoder.yudao.framework.test.core.util.RandomUtils.*;
|
||||
import static cn.iocoder.yudao.module.system.enums.ErrorCodeConstants.SMS_CHANNEL_HAS_CHILDREN;
|
||||
@ -49,9 +48,9 @@ public class SmsChannelServiceTest extends BaseDbUnitTest {
|
||||
@Test
|
||||
public void testInitLocalCache_success() {
|
||||
// mock 数据
|
||||
SmsChannelDO smsChannelDO01 = randomSmsChannelDO();
|
||||
SmsChannelDO smsChannelDO01 = randomPojo(SmsChannelDO.class);
|
||||
smsChannelMapper.insert(smsChannelDO01);
|
||||
SmsChannelDO smsChannelDO02 = randomSmsChannelDO();
|
||||
SmsChannelDO smsChannelDO02 = randomPojo(SmsChannelDO.class);
|
||||
smsChannelMapper.insert(smsChannelDO02);
|
||||
|
||||
// 调用
|
||||
@ -82,7 +81,7 @@ public class SmsChannelServiceTest extends BaseDbUnitTest {
|
||||
@Test
|
||||
public void testUpdateSmsChannel_success() {
|
||||
// mock 数据
|
||||
SmsChannelDO dbSmsChannel = randomSmsChannelDO();
|
||||
SmsChannelDO dbSmsChannel = randomPojo(SmsChannelDO.class);
|
||||
smsChannelMapper.insert(dbSmsChannel);// @Sql: 先插入出一条存在的数据
|
||||
// 准备参数
|
||||
SmsChannelUpdateReqVO reqVO = randomPojo(SmsChannelUpdateReqVO.class, o -> {
|
||||
@ -112,7 +111,7 @@ public class SmsChannelServiceTest extends BaseDbUnitTest {
|
||||
@Test
|
||||
public void testDeleteSmsChannel_success() {
|
||||
// mock 数据
|
||||
SmsChannelDO dbSmsChannel = randomSmsChannelDO();
|
||||
SmsChannelDO dbSmsChannel = randomPojo(SmsChannelDO.class);
|
||||
smsChannelMapper.insert(dbSmsChannel);// @Sql: 先插入出一条存在的数据
|
||||
// 准备参数
|
||||
Long id = dbSmsChannel.getId();
|
||||
@ -137,7 +136,7 @@ public class SmsChannelServiceTest extends BaseDbUnitTest {
|
||||
@Test
|
||||
public void testDeleteSmsChannel_hasChildren() {
|
||||
// mock 数据
|
||||
SmsChannelDO dbSmsChannel = randomSmsChannelDO();
|
||||
SmsChannelDO dbSmsChannel = randomPojo(SmsChannelDO.class);
|
||||
smsChannelMapper.insert(dbSmsChannel);// @Sql: 先插入出一条存在的数据
|
||||
// 准备参数
|
||||
Long id = dbSmsChannel.getId();
|
||||
@ -148,6 +147,35 @@ public class SmsChannelServiceTest extends BaseDbUnitTest {
|
||||
assertServiceException(() -> smsChannelService.deleteSmsChannel(id), SMS_CHANNEL_HAS_CHILDREN);
|
||||
}
|
||||
|
||||
@Test
|
||||
public void testGetSmsChannel() {
|
||||
// mock 数据
|
||||
SmsChannelDO dbSmsChannel = randomPojo(SmsChannelDO.class);
|
||||
smsChannelMapper.insert(dbSmsChannel); // @Sql: 先插入出一条存在的数据
|
||||
// 准备参数
|
||||
Long id = dbSmsChannel.getId();
|
||||
|
||||
// 调用,并断言
|
||||
assertPojoEquals(dbSmsChannel, smsChannelService.getSmsChannel(id));
|
||||
}
|
||||
|
||||
@Test
|
||||
public void testGetSmsChannelList() {
|
||||
// mock 数据
|
||||
SmsChannelDO dbSmsChannel01 = randomPojo(SmsChannelDO.class);
|
||||
smsChannelMapper.insert(dbSmsChannel01);
|
||||
SmsChannelDO dbSmsChannel02 = randomPojo(SmsChannelDO.class);
|
||||
smsChannelMapper.insert(dbSmsChannel02);
|
||||
// 准备参数
|
||||
|
||||
// 调用
|
||||
List<SmsChannelDO> list = smsChannelService.getSmsChannelList();
|
||||
// 断言
|
||||
assertEquals(2, list.size());
|
||||
assertPojoEquals(dbSmsChannel01, list.get(0));
|
||||
assertPojoEquals(dbSmsChannel02, list.get(1));
|
||||
}
|
||||
|
||||
@Test
|
||||
public void testGetSmsChannelPage() {
|
||||
// mock 数据
|
||||
@ -158,16 +186,16 @@ public class SmsChannelServiceTest extends BaseDbUnitTest {
|
||||
});
|
||||
smsChannelMapper.insert(dbSmsChannel);
|
||||
// 测试 signature 不匹配
|
||||
smsChannelMapper.insert(ObjectUtils.cloneIgnoreId(dbSmsChannel, o -> o.setSignature("源码")));
|
||||
smsChannelMapper.insert(cloneIgnoreId(dbSmsChannel, o -> o.setSignature("源码")));
|
||||
// 测试 status 不匹配
|
||||
smsChannelMapper.insert(ObjectUtils.cloneIgnoreId(dbSmsChannel, o -> o.setStatus(CommonStatusEnum.DISABLE.getStatus())));
|
||||
smsChannelMapper.insert(cloneIgnoreId(dbSmsChannel, o -> o.setStatus(CommonStatusEnum.DISABLE.getStatus())));
|
||||
// 测试 createTime 不匹配
|
||||
smsChannelMapper.insert(ObjectUtils.cloneIgnoreId(dbSmsChannel, o -> o.setCreateTime(buildTime(2020, 11, 11))));
|
||||
smsChannelMapper.insert(cloneIgnoreId(dbSmsChannel, o -> o.setCreateTime(buildTime(2020, 11, 11))));
|
||||
// 准备参数
|
||||
SmsChannelPageReqVO reqVO = new SmsChannelPageReqVO();
|
||||
reqVO.setSignature("芋道");
|
||||
reqVO.setStatus(CommonStatusEnum.ENABLE.getStatus());
|
||||
reqVO.setCreateTime((new LocalDateTime[]{buildTime(2020, 12, 1),buildTime(2020, 12, 24)}));
|
||||
reqVO.setCreateTime(buildBetweenTime(2020, 12, 1, 2020, 12, 24));
|
||||
|
||||
// 调用
|
||||
PageResult<SmsChannelDO> pageResult = smsChannelService.getSmsChannelPage(reqVO);
|
||||
@ -177,14 +205,4 @@ public class SmsChannelServiceTest extends BaseDbUnitTest {
|
||||
assertPojoEquals(dbSmsChannel, pageResult.getList().get(0));
|
||||
}
|
||||
|
||||
// ========== 随机对象 ==========
|
||||
|
||||
@SafeVarargs
|
||||
private static SmsChannelDO randomSmsChannelDO(Consumer<SmsChannelDO>... consumers) {
|
||||
Consumer<SmsChannelDO> consumer = (o) -> {
|
||||
o.setStatus(randomEle(CommonStatusEnum.values()).getStatus()); // 保证 status 的范围
|
||||
};
|
||||
return randomPojo(SmsChannelDO.class, ArrayUtils.append(consumer, consumers));
|
||||
}
|
||||
|
||||
}
|
||||
|
Reference in New Issue
Block a user