完善 SmsChannelServiceImpl 单元测试
parent
458a042701
commit
36c8448ed5
|
@ -70,7 +70,7 @@ public class SmsChannelController {
|
||||||
|
|
||||||
@GetMapping("/list-all-simple")
|
@GetMapping("/list-all-simple")
|
||||||
@ApiOperation(value = "获得短信渠道精简列表", notes = "包含被禁用的短信渠道")
|
@ApiOperation(value = "获得短信渠道精简列表", notes = "包含被禁用的短信渠道")
|
||||||
public CommonResult<List<SmsChannelSimpleRespVO>> getSimpleSmsChannels() {
|
public CommonResult<List<SmsChannelSimpleRespVO>> getSimpleSmsChannelList() {
|
||||||
List<SmsChannelDO> list = smsChannelService.getSmsChannelList();
|
List<SmsChannelDO> list = smsChannelService.getSmsChannelList();
|
||||||
// 排序后,返回给前端
|
// 排序后,返回给前端
|
||||||
list.sort(Comparator.comparing(SmsChannelDO::getId));
|
list.sort(Comparator.comparing(SmsChannelDO::getId));
|
||||||
|
|
|
@ -1,13 +1,12 @@
|
||||||
package cn.iocoder.yudao.module.system.service.sms;
|
package cn.iocoder.yudao.module.system.service.sms;
|
||||||
|
|
||||||
import cn.iocoder.yudao.module.system.dal.dataobject.sms.SmsChannelDO;
|
|
||||||
import cn.iocoder.yudao.framework.common.pojo.PageResult;
|
import cn.iocoder.yudao.framework.common.pojo.PageResult;
|
||||||
import cn.iocoder.yudao.module.system.controller.admin.sms.vo.channel.SmsChannelCreateReqVO;
|
import cn.iocoder.yudao.module.system.controller.admin.sms.vo.channel.SmsChannelCreateReqVO;
|
||||||
import cn.iocoder.yudao.module.system.controller.admin.sms.vo.channel.SmsChannelPageReqVO;
|
import cn.iocoder.yudao.module.system.controller.admin.sms.vo.channel.SmsChannelPageReqVO;
|
||||||
import cn.iocoder.yudao.module.system.controller.admin.sms.vo.channel.SmsChannelUpdateReqVO;
|
import cn.iocoder.yudao.module.system.controller.admin.sms.vo.channel.SmsChannelUpdateReqVO;
|
||||||
|
import cn.iocoder.yudao.module.system.dal.dataobject.sms.SmsChannelDO;
|
||||||
|
|
||||||
import javax.validation.Valid;
|
import javax.validation.Valid;
|
||||||
import java.util.Collection;
|
|
||||||
import java.util.List;
|
import java.util.List;
|
||||||
|
|
||||||
/**
|
/**
|
||||||
|
@ -53,14 +52,6 @@ public interface SmsChannelService {
|
||||||
*/
|
*/
|
||||||
SmsChannelDO getSmsChannel(Long id);
|
SmsChannelDO getSmsChannel(Long id);
|
||||||
|
|
||||||
/**
|
|
||||||
* 获得短信渠道列表
|
|
||||||
*
|
|
||||||
* @param ids 编号
|
|
||||||
* @return 短信渠道列表
|
|
||||||
*/
|
|
||||||
List<SmsChannelDO> getSmsChannelList(Collection<Long> ids);
|
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* 获得所有短信渠道列表
|
* 获得所有短信渠道列表
|
||||||
*
|
*
|
||||||
|
|
|
@ -15,7 +15,6 @@ import org.springframework.stereotype.Service;
|
||||||
|
|
||||||
import javax.annotation.PostConstruct;
|
import javax.annotation.PostConstruct;
|
||||||
import javax.annotation.Resource;
|
import javax.annotation.Resource;
|
||||||
import java.util.Collection;
|
|
||||||
import java.util.List;
|
import java.util.List;
|
||||||
|
|
||||||
import static cn.iocoder.yudao.framework.common.exception.util.ServiceExceptionUtil.exception;
|
import static cn.iocoder.yudao.framework.common.exception.util.ServiceExceptionUtil.exception;
|
||||||
|
@ -81,7 +80,7 @@ public class SmsChannelServiceImpl implements SmsChannelService {
|
||||||
public void deleteSmsChannel(Long id) {
|
public void deleteSmsChannel(Long id) {
|
||||||
// 校验存在
|
// 校验存在
|
||||||
this.validateSmsChannelExists(id);
|
this.validateSmsChannelExists(id);
|
||||||
// 校验是否有字典数据
|
// 校验是否有在使用该账号的模版
|
||||||
if (smsTemplateService.countByChannelId(id) > 0) {
|
if (smsTemplateService.countByChannelId(id) > 0) {
|
||||||
throw exception(SMS_CHANNEL_HAS_CHILDREN);
|
throw exception(SMS_CHANNEL_HAS_CHILDREN);
|
||||||
}
|
}
|
||||||
|
@ -102,11 +101,6 @@ public class SmsChannelServiceImpl implements SmsChannelService {
|
||||||
return smsChannelMapper.selectById(id);
|
return smsChannelMapper.selectById(id);
|
||||||
}
|
}
|
||||||
|
|
||||||
@Override
|
|
||||||
public List<SmsChannelDO> getSmsChannelList(Collection<Long> ids) {
|
|
||||||
return smsChannelMapper.selectBatchIds(ids);
|
|
||||||
}
|
|
||||||
|
|
||||||
@Override
|
@Override
|
||||||
public List<SmsChannelDO> getSmsChannelList() {
|
public List<SmsChannelDO> getSmsChannelList() {
|
||||||
return smsChannelMapper.selectList();
|
return smsChannelMapper.selectList();
|
||||||
|
|
|
@ -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.enums.CommonStatusEnum;
|
||||||
import cn.iocoder.yudao.framework.common.pojo.PageResult;
|
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.sms.core.client.SmsClientFactory;
|
||||||
import cn.iocoder.yudao.framework.test.core.ut.BaseDbUnitTest;
|
import cn.iocoder.yudao.framework.test.core.ut.BaseDbUnitTest;
|
||||||
import cn.iocoder.yudao.module.system.controller.admin.sms.vo.channel.SmsChannelCreateReqVO;
|
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 org.springframework.context.annotation.Import;
|
||||||
|
|
||||||
import javax.annotation.Resource;
|
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.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.AssertUtils.*;
|
||||||
import static cn.iocoder.yudao.framework.test.core.util.RandomUtils.*;
|
import static cn.iocoder.yudao.framework.test.core.util.RandomUtils.*;
|
||||||
import static cn.iocoder.yudao.module.system.enums.ErrorCodeConstants.SMS_CHANNEL_HAS_CHILDREN;
|
import static cn.iocoder.yudao.module.system.enums.ErrorCodeConstants.SMS_CHANNEL_HAS_CHILDREN;
|
||||||
|
@ -49,9 +48,9 @@ public class SmsChannelServiceTest extends BaseDbUnitTest {
|
||||||
@Test
|
@Test
|
||||||
public void testInitLocalCache_success() {
|
public void testInitLocalCache_success() {
|
||||||
// mock 数据
|
// mock 数据
|
||||||
SmsChannelDO smsChannelDO01 = randomSmsChannelDO();
|
SmsChannelDO smsChannelDO01 = randomPojo(SmsChannelDO.class);
|
||||||
smsChannelMapper.insert(smsChannelDO01);
|
smsChannelMapper.insert(smsChannelDO01);
|
||||||
SmsChannelDO smsChannelDO02 = randomSmsChannelDO();
|
SmsChannelDO smsChannelDO02 = randomPojo(SmsChannelDO.class);
|
||||||
smsChannelMapper.insert(smsChannelDO02);
|
smsChannelMapper.insert(smsChannelDO02);
|
||||||
|
|
||||||
// 调用
|
// 调用
|
||||||
|
@ -82,7 +81,7 @@ public class SmsChannelServiceTest extends BaseDbUnitTest {
|
||||||
@Test
|
@Test
|
||||||
public void testUpdateSmsChannel_success() {
|
public void testUpdateSmsChannel_success() {
|
||||||
// mock 数据
|
// mock 数据
|
||||||
SmsChannelDO dbSmsChannel = randomSmsChannelDO();
|
SmsChannelDO dbSmsChannel = randomPojo(SmsChannelDO.class);
|
||||||
smsChannelMapper.insert(dbSmsChannel);// @Sql: 先插入出一条存在的数据
|
smsChannelMapper.insert(dbSmsChannel);// @Sql: 先插入出一条存在的数据
|
||||||
// 准备参数
|
// 准备参数
|
||||||
SmsChannelUpdateReqVO reqVO = randomPojo(SmsChannelUpdateReqVO.class, o -> {
|
SmsChannelUpdateReqVO reqVO = randomPojo(SmsChannelUpdateReqVO.class, o -> {
|
||||||
|
@ -112,7 +111,7 @@ public class SmsChannelServiceTest extends BaseDbUnitTest {
|
||||||
@Test
|
@Test
|
||||||
public void testDeleteSmsChannel_success() {
|
public void testDeleteSmsChannel_success() {
|
||||||
// mock 数据
|
// mock 数据
|
||||||
SmsChannelDO dbSmsChannel = randomSmsChannelDO();
|
SmsChannelDO dbSmsChannel = randomPojo(SmsChannelDO.class);
|
||||||
smsChannelMapper.insert(dbSmsChannel);// @Sql: 先插入出一条存在的数据
|
smsChannelMapper.insert(dbSmsChannel);// @Sql: 先插入出一条存在的数据
|
||||||
// 准备参数
|
// 准备参数
|
||||||
Long id = dbSmsChannel.getId();
|
Long id = dbSmsChannel.getId();
|
||||||
|
@ -137,7 +136,7 @@ public class SmsChannelServiceTest extends BaseDbUnitTest {
|
||||||
@Test
|
@Test
|
||||||
public void testDeleteSmsChannel_hasChildren() {
|
public void testDeleteSmsChannel_hasChildren() {
|
||||||
// mock 数据
|
// mock 数据
|
||||||
SmsChannelDO dbSmsChannel = randomSmsChannelDO();
|
SmsChannelDO dbSmsChannel = randomPojo(SmsChannelDO.class);
|
||||||
smsChannelMapper.insert(dbSmsChannel);// @Sql: 先插入出一条存在的数据
|
smsChannelMapper.insert(dbSmsChannel);// @Sql: 先插入出一条存在的数据
|
||||||
// 准备参数
|
// 准备参数
|
||||||
Long id = dbSmsChannel.getId();
|
Long id = dbSmsChannel.getId();
|
||||||
|
@ -148,6 +147,35 @@ public class SmsChannelServiceTest extends BaseDbUnitTest {
|
||||||
assertServiceException(() -> smsChannelService.deleteSmsChannel(id), SMS_CHANNEL_HAS_CHILDREN);
|
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
|
@Test
|
||||||
public void testGetSmsChannelPage() {
|
public void testGetSmsChannelPage() {
|
||||||
// mock 数据
|
// mock 数据
|
||||||
|
@ -158,16 +186,16 @@ public class SmsChannelServiceTest extends BaseDbUnitTest {
|
||||||
});
|
});
|
||||||
smsChannelMapper.insert(dbSmsChannel);
|
smsChannelMapper.insert(dbSmsChannel);
|
||||||
// 测试 signature 不匹配
|
// 测试 signature 不匹配
|
||||||
smsChannelMapper.insert(ObjectUtils.cloneIgnoreId(dbSmsChannel, o -> o.setSignature("源码")));
|
smsChannelMapper.insert(cloneIgnoreId(dbSmsChannel, o -> o.setSignature("源码")));
|
||||||
// 测试 status 不匹配
|
// 测试 status 不匹配
|
||||||
smsChannelMapper.insert(ObjectUtils.cloneIgnoreId(dbSmsChannel, o -> o.setStatus(CommonStatusEnum.DISABLE.getStatus())));
|
smsChannelMapper.insert(cloneIgnoreId(dbSmsChannel, o -> o.setStatus(CommonStatusEnum.DISABLE.getStatus())));
|
||||||
// 测试 createTime 不匹配
|
// 测试 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();
|
SmsChannelPageReqVO reqVO = new SmsChannelPageReqVO();
|
||||||
reqVO.setSignature("芋道");
|
reqVO.setSignature("芋道");
|
||||||
reqVO.setStatus(CommonStatusEnum.ENABLE.getStatus());
|
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);
|
PageResult<SmsChannelDO> pageResult = smsChannelService.getSmsChannelPage(reqVO);
|
||||||
|
@ -177,14 +205,4 @@ public class SmsChannelServiceTest extends BaseDbUnitTest {
|
||||||
assertPojoEquals(dbSmsChannel, pageResult.getList().get(0));
|
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));
|
|
||||||
}
|
|
||||||
|
|
||||||
}
|
}
|
||||||
|
|
Loading…
Reference in New Issue