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,7 +70,7 @@ public class SmsChannelController {
70 70
71 @GetMapping("/list-all-simple") 71 @GetMapping("/list-all-simple")
72 @ApiOperation(value = "获得短信渠道精简列表", notes = "包含被禁用的短信渠道") 72 @ApiOperation(value = "获得短信渠道精简列表", notes = "包含被禁用的短信渠道")
73 - public CommonResult<List<SmsChannelSimpleRespVO>> getSimpleSmsChannels() { 73 + public CommonResult<List<SmsChannelSimpleRespVO>> getSimpleSmsChannelList() {
74 List<SmsChannelDO> list = smsChannelService.getSmsChannelList(); 74 List<SmsChannelDO> list = smsChannelService.getSmsChannelList();
75 // 排序后,返回给前端 75 // 排序后,返回给前端
76 list.sort(Comparator.comparing(SmsChannelDO::getId)); 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 package cn.iocoder.yudao.module.system.service.sms; 1 package cn.iocoder.yudao.module.system.service.sms;
2 2
3 -import cn.iocoder.yudao.module.system.dal.dataobject.sms.SmsChannelDO;  
4 import cn.iocoder.yudao.framework.common.pojo.PageResult; 3 import cn.iocoder.yudao.framework.common.pojo.PageResult;
5 import cn.iocoder.yudao.module.system.controller.admin.sms.vo.channel.SmsChannelCreateReqVO; 4 import cn.iocoder.yudao.module.system.controller.admin.sms.vo.channel.SmsChannelCreateReqVO;
6 import cn.iocoder.yudao.module.system.controller.admin.sms.vo.channel.SmsChannelPageReqVO; 5 import cn.iocoder.yudao.module.system.controller.admin.sms.vo.channel.SmsChannelPageReqVO;
7 import cn.iocoder.yudao.module.system.controller.admin.sms.vo.channel.SmsChannelUpdateReqVO; 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 import javax.validation.Valid; 9 import javax.validation.Valid;
10 -import java.util.Collection;  
11 import java.util.List; 10 import java.util.List;
12 11
13 /** 12 /**
@@ -54,14 +53,6 @@ public interface SmsChannelService { @@ -54,14 +53,6 @@ public interface SmsChannelService {
54 SmsChannelDO getSmsChannel(Long id); 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 * @return 短信渠道列表 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,7 +15,6 @@ import org.springframework.stereotype.Service;
15 15
16 import javax.annotation.PostConstruct; 16 import javax.annotation.PostConstruct;
17 import javax.annotation.Resource; 17 import javax.annotation.Resource;
18 -import java.util.Collection;  
19 import java.util.List; 18 import java.util.List;
20 19
21 import static cn.iocoder.yudao.framework.common.exception.util.ServiceExceptionUtil.exception; 20 import static cn.iocoder.yudao.framework.common.exception.util.ServiceExceptionUtil.exception;
@@ -103,11 +102,6 @@ public class SmsChannelServiceImpl implements SmsChannelService { @@ -103,11 +102,6 @@ public class SmsChannelServiceImpl implements SmsChannelService {
103 } 102 }
104 103
105 @Override 104 @Override
106 - public List<SmsChannelDO> getSmsChannelList(Collection<Long> ids) {  
107 - return smsChannelMapper.selectBatchIds(ids);  
108 - }  
109 -  
110 - @Override  
111 public List<SmsChannelDO> getSmsChannelList() { 105 public List<SmsChannelDO> getSmsChannelList() {
112 return smsChannelMapper.selectList(); 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,8 +2,6 @@ package cn.iocoder.yudao.module.system.service.sms;
2 2
3 import cn.iocoder.yudao.framework.common.enums.CommonStatusEnum; 3 import cn.iocoder.yudao.framework.common.enums.CommonStatusEnum;
4 import cn.iocoder.yudao.framework.common.pojo.PageResult; 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 import cn.iocoder.yudao.framework.sms.core.client.SmsClientFactory; 5 import cn.iocoder.yudao.framework.sms.core.client.SmsClientFactory;
8 import cn.iocoder.yudao.framework.test.core.ut.BaseDbUnitTest; 6 import cn.iocoder.yudao.framework.test.core.ut.BaseDbUnitTest;
9 import cn.iocoder.yudao.module.system.controller.admin.sms.vo.channel.SmsChannelCreateReqVO; 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,11 +15,12 @@ import org.springframework.boot.test.mock.mockito.MockBean;
17 import org.springframework.context.annotation.Import; 15 import org.springframework.context.annotation.Import;
18 16
19 import javax.annotation.Resource; 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 import static cn.iocoder.yudao.framework.common.util.date.LocalDateTimeUtils.buildTime; 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 import static cn.iocoder.yudao.framework.test.core.util.AssertUtils.*; 24 import static cn.iocoder.yudao.framework.test.core.util.AssertUtils.*;
26 import static cn.iocoder.yudao.framework.test.core.util.RandomUtils.*; 25 import static cn.iocoder.yudao.framework.test.core.util.RandomUtils.*;
27 import static cn.iocoder.yudao.module.system.enums.ErrorCodeConstants.SMS_CHANNEL_HAS_CHILDREN; 26 import static cn.iocoder.yudao.module.system.enums.ErrorCodeConstants.SMS_CHANNEL_HAS_CHILDREN;
@@ -49,9 +48,9 @@ public class SmsChannelServiceTest extends BaseDbUnitTest { @@ -49,9 +48,9 @@ public class SmsChannelServiceTest extends BaseDbUnitTest {
49 @Test 48 @Test
50 public void testInitLocalCache_success() { 49 public void testInitLocalCache_success() {
51 // mock 数据 50 // mock 数据
52 - SmsChannelDO smsChannelDO01 = randomSmsChannelDO(); 51 + SmsChannelDO smsChannelDO01 = randomPojo(SmsChannelDO.class);
53 smsChannelMapper.insert(smsChannelDO01); 52 smsChannelMapper.insert(smsChannelDO01);
54 - SmsChannelDO smsChannelDO02 = randomSmsChannelDO(); 53 + SmsChannelDO smsChannelDO02 = randomPojo(SmsChannelDO.class);
55 smsChannelMapper.insert(smsChannelDO02); 54 smsChannelMapper.insert(smsChannelDO02);
56 55
57 // 调用 56 // 调用
@@ -82,7 +81,7 @@ public class SmsChannelServiceTest extends BaseDbUnitTest { @@ -82,7 +81,7 @@ public class SmsChannelServiceTest extends BaseDbUnitTest {
82 @Test 81 @Test
83 public void testUpdateSmsChannel_success() { 82 public void testUpdateSmsChannel_success() {
84 // mock 数据 83 // mock 数据
85 - SmsChannelDO dbSmsChannel = randomSmsChannelDO(); 84 + SmsChannelDO dbSmsChannel = randomPojo(SmsChannelDO.class);
86 smsChannelMapper.insert(dbSmsChannel);// @Sql: 先插入出一条存在的数据 85 smsChannelMapper.insert(dbSmsChannel);// @Sql: 先插入出一条存在的数据
87 // 准备参数 86 // 准备参数
88 SmsChannelUpdateReqVO reqVO = randomPojo(SmsChannelUpdateReqVO.class, o -> { 87 SmsChannelUpdateReqVO reqVO = randomPojo(SmsChannelUpdateReqVO.class, o -> {
@@ -112,7 +111,7 @@ public class SmsChannelServiceTest extends BaseDbUnitTest { @@ -112,7 +111,7 @@ public class SmsChannelServiceTest extends BaseDbUnitTest {
112 @Test 111 @Test
113 public void testDeleteSmsChannel_success() { 112 public void testDeleteSmsChannel_success() {
114 // mock 数据 113 // mock 数据
115 - SmsChannelDO dbSmsChannel = randomSmsChannelDO(); 114 + SmsChannelDO dbSmsChannel = randomPojo(SmsChannelDO.class);
116 smsChannelMapper.insert(dbSmsChannel);// @Sql: 先插入出一条存在的数据 115 smsChannelMapper.insert(dbSmsChannel);// @Sql: 先插入出一条存在的数据
117 // 准备参数 116 // 准备参数
118 Long id = dbSmsChannel.getId(); 117 Long id = dbSmsChannel.getId();
@@ -137,7 +136,7 @@ public class SmsChannelServiceTest extends BaseDbUnitTest { @@ -137,7 +136,7 @@ public class SmsChannelServiceTest extends BaseDbUnitTest {
137 @Test 136 @Test
138 public void testDeleteSmsChannel_hasChildren() { 137 public void testDeleteSmsChannel_hasChildren() {
139 // mock 数据 138 // mock 数据
140 - SmsChannelDO dbSmsChannel = randomSmsChannelDO(); 139 + SmsChannelDO dbSmsChannel = randomPojo(SmsChannelDO.class);
141 smsChannelMapper.insert(dbSmsChannel);// @Sql: 先插入出一条存在的数据 140 smsChannelMapper.insert(dbSmsChannel);// @Sql: 先插入出一条存在的数据
142 // 准备参数 141 // 准备参数
143 Long id = dbSmsChannel.getId(); 142 Long id = dbSmsChannel.getId();
@@ -149,6 +148,35 @@ public class SmsChannelServiceTest extends BaseDbUnitTest { @@ -149,6 +148,35 @@ public class SmsChannelServiceTest extends BaseDbUnitTest {
149 } 148 }
150 149
151 @Test 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 public void testGetSmsChannelPage() { 180 public void testGetSmsChannelPage() {
153 // mock 数据 181 // mock 数据
154 SmsChannelDO dbSmsChannel = randomPojo(SmsChannelDO.class, o -> { // 等会查询到 182 SmsChannelDO dbSmsChannel = randomPojo(SmsChannelDO.class, o -> { // 等会查询到
@@ -158,16 +186,16 @@ public class SmsChannelServiceTest extends BaseDbUnitTest { @@ -158,16 +186,16 @@ public class SmsChannelServiceTest extends BaseDbUnitTest {
158 }); 186 });
159 smsChannelMapper.insert(dbSmsChannel); 187 smsChannelMapper.insert(dbSmsChannel);
160 // 测试 signature 不匹配 188 // 测试 signature 不匹配
161 - smsChannelMapper.insert(ObjectUtils.cloneIgnoreId(dbSmsChannel, o -> o.setSignature("源码"))); 189 + smsChannelMapper.insert(cloneIgnoreId(dbSmsChannel, o -> o.setSignature("源码")));
162 // 测试 status 不匹配 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 // 测试 createTime 不匹配 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 SmsChannelPageReqVO reqVO = new SmsChannelPageReqVO(); 195 SmsChannelPageReqVO reqVO = new SmsChannelPageReqVO();
168 reqVO.setSignature("芋道"); 196 reqVO.setSignature("芋道");
169 reqVO.setStatus(CommonStatusEnum.ENABLE.getStatus()); 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 PageResult<SmsChannelDO> pageResult = smsChannelService.getSmsChannelPage(reqVO); 201 PageResult<SmsChannelDO> pageResult = smsChannelService.getSmsChannelPage(reqVO);
@@ -177,14 +205,4 @@ public class SmsChannelServiceTest extends BaseDbUnitTest { @@ -177,14 +205,4 @@ public class SmsChannelServiceTest extends BaseDbUnitTest {
177 assertPojoEquals(dbSmsChannel, pageResult.getList().get(0)); 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 }