Commit 97fd7a7187d916cd1f16a3e200b18213f3e4a046

Authored by YunaiV
1 parent d7f86afd

完善 SmsChannelServiceImpl 单元测试

yudao-module-system/yudao-module-system-biz/src/main/java/cn/iocoder/yudao/module/system/controller/admin/sms/SmsChannelController.java
... ... @@ -70,7 +70,7 @@ public class SmsChannelController {
70 70  
71 71 @GetMapping("/list-all-simple")
72 72 @ApiOperation(value = "获得短信渠道精简列表", notes = "包含被禁用的短信渠道")
73   - public CommonResult<List<SmsChannelSimpleRespVO>> getSimpleSmsChannels() {
  73 + public CommonResult<List<SmsChannelSimpleRespVO>> getSimpleSmsChannelList() {
74 74 List<SmsChannelDO> list = smsChannelService.getSmsChannelList();
75 75 // 排序后,返回给前端
76 76 list.sort(Comparator.comparing(SmsChannelDO::getId));
... ...
yudao-module-system/yudao-module-system-biz/src/main/java/cn/iocoder/yudao/module/system/service/sms/SmsChannelService.java
1 1 package cn.iocoder.yudao.module.system.service.sms;
2 2  
3   -import cn.iocoder.yudao.module.system.dal.dataobject.sms.SmsChannelDO;
4 3 import cn.iocoder.yudao.framework.common.pojo.PageResult;
5 4 import cn.iocoder.yudao.module.system.controller.admin.sms.vo.channel.SmsChannelCreateReqVO;
6 5 import cn.iocoder.yudao.module.system.controller.admin.sms.vo.channel.SmsChannelPageReqVO;
7 6 import cn.iocoder.yudao.module.system.controller.admin.sms.vo.channel.SmsChannelUpdateReqVO;
  7 +import cn.iocoder.yudao.module.system.dal.dataobject.sms.SmsChannelDO;
8 8  
9 9 import javax.validation.Valid;
10   -import java.util.Collection;
11 10 import java.util.List;
12 11  
13 12 /**
... ... @@ -54,14 +53,6 @@ public interface SmsChannelService {
54 53 SmsChannelDO getSmsChannel(Long id);
55 54  
56 55 /**
57   - * 获得短信渠道列表
58   - *
59   - * @param ids 编号
60   - * @return 短信渠道列表
61   - */
62   - List<SmsChannelDO> getSmsChannelList(Collection<Long> ids);
63   -
64   - /**
65 56 * 获得所有短信渠道列表
66 57 *
67 58 * @return 短信渠道列表
... ...
yudao-module-system/yudao-module-system-biz/src/main/java/cn/iocoder/yudao/module/system/service/sms/SmsChannelServiceImpl.java
... ... @@ -15,7 +15,6 @@ import org.springframework.stereotype.Service;
15 15  
16 16 import javax.annotation.PostConstruct;
17 17 import javax.annotation.Resource;
18   -import java.util.Collection;
19 18 import java.util.List;
20 19  
21 20 import static cn.iocoder.yudao.framework.common.exception.util.ServiceExceptionUtil.exception;
... ... @@ -103,11 +102,6 @@ public class SmsChannelServiceImpl implements SmsChannelService {
103 102 }
104 103  
105 104 @Override
106   - public List<SmsChannelDO> getSmsChannelList(Collection<Long> ids) {
107   - return smsChannelMapper.selectBatchIds(ids);
108   - }
109   -
110   - @Override
111 105 public List<SmsChannelDO> getSmsChannelList() {
112 106 return smsChannelMapper.selectList();
113 107 }
... ...
yudao-module-system/yudao-module-system-biz/src/test/java/cn/iocoder/yudao/module/system/service/sms/SmsChannelServiceTest.java
... ... @@ -2,8 +2,6 @@ package cn.iocoder.yudao.module.system.service.sms;
2 2  
3 3 import cn.iocoder.yudao.framework.common.enums.CommonStatusEnum;
4 4 import cn.iocoder.yudao.framework.common.pojo.PageResult;
5   -import cn.iocoder.yudao.framework.common.util.collection.ArrayUtils;
6   -import cn.iocoder.yudao.framework.common.util.object.ObjectUtils;
7 5 import cn.iocoder.yudao.framework.sms.core.client.SmsClientFactory;
8 6 import cn.iocoder.yudao.framework.test.core.ut.BaseDbUnitTest;
9 7 import cn.iocoder.yudao.module.system.controller.admin.sms.vo.channel.SmsChannelCreateReqVO;
... ... @@ -17,11 +15,12 @@ import org.springframework.boot.test.mock.mockito.MockBean;
17 15 import org.springframework.context.annotation.Import;
18 16  
19 17 import javax.annotation.Resource;
20   -import java.time.LocalDateTime;
21   -import java.util.function.Consumer;
22 18  
23   -import static cn.hutool.core.util.RandomUtil.randomEle;
  19 +import java.util.List;
  20 +
  21 +import static cn.iocoder.yudao.framework.common.util.date.LocalDateTimeUtils.buildBetweenTime;
24 22 import static cn.iocoder.yudao.framework.common.util.date.LocalDateTimeUtils.buildTime;
  23 +import static cn.iocoder.yudao.framework.common.util.object.ObjectUtils.cloneIgnoreId;
25 24 import static cn.iocoder.yudao.framework.test.core.util.AssertUtils.*;
26 25 import static cn.iocoder.yudao.framework.test.core.util.RandomUtils.*;
27 26 import static cn.iocoder.yudao.module.system.enums.ErrorCodeConstants.SMS_CHANNEL_HAS_CHILDREN;
... ... @@ -49,9 +48,9 @@ public class SmsChannelServiceTest extends BaseDbUnitTest {
49 48 @Test
50 49 public void testInitLocalCache_success() {
51 50 // mock 数据
52   - SmsChannelDO smsChannelDO01 = randomSmsChannelDO();
  51 + SmsChannelDO smsChannelDO01 = randomPojo(SmsChannelDO.class);
53 52 smsChannelMapper.insert(smsChannelDO01);
54   - SmsChannelDO smsChannelDO02 = randomSmsChannelDO();
  53 + SmsChannelDO smsChannelDO02 = randomPojo(SmsChannelDO.class);
55 54 smsChannelMapper.insert(smsChannelDO02);
56 55  
57 56 // 调用
... ... @@ -82,7 +81,7 @@ public class SmsChannelServiceTest extends BaseDbUnitTest {
82 81 @Test
83 82 public void testUpdateSmsChannel_success() {
84 83 // mock 数据
85   - SmsChannelDO dbSmsChannel = randomSmsChannelDO();
  84 + SmsChannelDO dbSmsChannel = randomPojo(SmsChannelDO.class);
86 85 smsChannelMapper.insert(dbSmsChannel);// @Sql: 先插入出一条存在的数据
87 86 // 准备参数
88 87 SmsChannelUpdateReqVO reqVO = randomPojo(SmsChannelUpdateReqVO.class, o -> {
... ... @@ -112,7 +111,7 @@ public class SmsChannelServiceTest extends BaseDbUnitTest {
112 111 @Test
113 112 public void testDeleteSmsChannel_success() {
114 113 // mock 数据
115   - SmsChannelDO dbSmsChannel = randomSmsChannelDO();
  114 + SmsChannelDO dbSmsChannel = randomPojo(SmsChannelDO.class);
116 115 smsChannelMapper.insert(dbSmsChannel);// @Sql: 先插入出一条存在的数据
117 116 // 准备参数
118 117 Long id = dbSmsChannel.getId();
... ... @@ -137,7 +136,7 @@ public class SmsChannelServiceTest extends BaseDbUnitTest {
137 136 @Test
138 137 public void testDeleteSmsChannel_hasChildren() {
139 138 // mock 数据
140   - SmsChannelDO dbSmsChannel = randomSmsChannelDO();
  139 + SmsChannelDO dbSmsChannel = randomPojo(SmsChannelDO.class);
141 140 smsChannelMapper.insert(dbSmsChannel);// @Sql: 先插入出一条存在的数据
142 141 // 准备参数
143 142 Long id = dbSmsChannel.getId();
... ... @@ -149,6 +148,35 @@ public class SmsChannelServiceTest extends BaseDbUnitTest {
149 148 }
150 149  
151 150 @Test
  151 + public void testGetSmsChannel() {
  152 + // mock 数据
  153 + SmsChannelDO dbSmsChannel = randomPojo(SmsChannelDO.class);
  154 + smsChannelMapper.insert(dbSmsChannel); // @Sql: 先插入出一条存在的数据
  155 + // 准备参数
  156 + Long id = dbSmsChannel.getId();
  157 +
  158 + // 调用,并断言
  159 + assertPojoEquals(dbSmsChannel, smsChannelService.getSmsChannel(id));
  160 + }
  161 +
  162 + @Test
  163 + public void testGetSmsChannelList() {
  164 + // mock 数据
  165 + SmsChannelDO dbSmsChannel01 = randomPojo(SmsChannelDO.class);
  166 + smsChannelMapper.insert(dbSmsChannel01);
  167 + SmsChannelDO dbSmsChannel02 = randomPojo(SmsChannelDO.class);
  168 + smsChannelMapper.insert(dbSmsChannel02);
  169 + // 准备参数
  170 +
  171 + // 调用
  172 + List<SmsChannelDO> list = smsChannelService.getSmsChannelList();
  173 + // 断言
  174 + assertEquals(2, list.size());
  175 + assertPojoEquals(dbSmsChannel01, list.get(0));
  176 + assertPojoEquals(dbSmsChannel02, list.get(1));
  177 + }
  178 +
  179 + @Test
152 180 public void testGetSmsChannelPage() {
153 181 // mock 数据
154 182 SmsChannelDO dbSmsChannel = randomPojo(SmsChannelDO.class, o -> { // 等会查询到
... ... @@ -158,16 +186,16 @@ public class SmsChannelServiceTest extends BaseDbUnitTest {
158 186 });
159 187 smsChannelMapper.insert(dbSmsChannel);
160 188 // 测试 signature 不匹配
161   - smsChannelMapper.insert(ObjectUtils.cloneIgnoreId(dbSmsChannel, o -> o.setSignature("源码")));
  189 + smsChannelMapper.insert(cloneIgnoreId(dbSmsChannel, o -> o.setSignature("源码")));
162 190 // 测试 status 不匹配
163   - smsChannelMapper.insert(ObjectUtils.cloneIgnoreId(dbSmsChannel, o -> o.setStatus(CommonStatusEnum.DISABLE.getStatus())));
  191 + smsChannelMapper.insert(cloneIgnoreId(dbSmsChannel, o -> o.setStatus(CommonStatusEnum.DISABLE.getStatus())));
164 192 // 测试 createTime 不匹配
165   - smsChannelMapper.insert(ObjectUtils.cloneIgnoreId(dbSmsChannel, o -> o.setCreateTime(buildTime(2020, 11, 11))));
  193 + smsChannelMapper.insert(cloneIgnoreId(dbSmsChannel, o -> o.setCreateTime(buildTime(2020, 11, 11))));
166 194 // 准备参数
167 195 SmsChannelPageReqVO reqVO = new SmsChannelPageReqVO();
168 196 reqVO.setSignature("芋道");
169 197 reqVO.setStatus(CommonStatusEnum.ENABLE.getStatus());
170   - reqVO.setCreateTime((new LocalDateTime[]{buildTime(2020, 12, 1),buildTime(2020, 12, 24)}));
  198 + reqVO.setCreateTime(buildBetweenTime(2020, 12, 1, 2020, 12, 24));
171 199  
172 200 // 调用
173 201 PageResult<SmsChannelDO> pageResult = smsChannelService.getSmsChannelPage(reqVO);
... ... @@ -177,14 +205,4 @@ public class SmsChannelServiceTest extends BaseDbUnitTest {
177 205 assertPojoEquals(dbSmsChannel, pageResult.getList().get(0));
178 206 }
179 207  
180   - // ========== 随机对象 ==========
181   -
182   - @SafeVarargs
183   - private static SmsChannelDO randomSmsChannelDO(Consumer<SmsChannelDO>... consumers) {
184   - Consumer<SmsChannelDO> consumer = (o) -> {
185   - o.setStatus(randomEle(CommonStatusEnum.values()).getStatus()); // 保证 status 的范围
186   - };
187   - return randomPojo(SmsChannelDO.class, ArrayUtils.append(consumer, consumers));
188   - }
189   -
190 208 }
... ...