完善 TenantPackageServiceImpl 单元测试
This commit is contained in:
parent
ac25dbe286
commit
9c216e5b7d
@ -140,7 +140,7 @@ public class DeptServiceImpl implements DeptService {
|
||||
}
|
||||
List<DeptDO> result = new ArrayList<>();
|
||||
// 递归,简单粗暴
|
||||
this.getDeptsByParentIdFromCache(result, parentId,
|
||||
getDeptsByParentIdFromCache(result, parentId,
|
||||
recursive ? Integer.MAX_VALUE : 1, // 如果递归获取,则无限;否则,只递归 1 次
|
||||
parentDeptCache);
|
||||
return result;
|
||||
@ -205,7 +205,7 @@ public class DeptServiceImpl implements DeptService {
|
||||
throw exception(DEPT_NOT_ENABLE);
|
||||
}
|
||||
// 父部门不能是原来的子部门
|
||||
List<DeptDO> children = this.getDeptListByParentIdFromCache(id, true);
|
||||
List<DeptDO> children = getDeptListByParentIdFromCache(id, true);
|
||||
if (children.stream().anyMatch(dept1 -> dept1.getId().equals(parentId))) {
|
||||
throw exception(DEPT_PARENT_IS_CHILD);
|
||||
}
|
||||
|
@ -58,7 +58,7 @@ public class ErrorCodeServiceImpl implements ErrorCodeService {
|
||||
@Override
|
||||
public void updateErrorCode(ErrorCodeUpdateReqVO updateReqVO) {
|
||||
// 校验存在
|
||||
this.validateErrorCodeExists(updateReqVO.getId());
|
||||
validateErrorCodeExists(updateReqVO.getId());
|
||||
// 校验 code 重复
|
||||
validateCodeDuplicate(updateReqVO.getCode(), updateReqVO.getId());
|
||||
|
||||
@ -71,7 +71,7 @@ public class ErrorCodeServiceImpl implements ErrorCodeService {
|
||||
@Override
|
||||
public void deleteErrorCode(Long id) {
|
||||
// 校验存在
|
||||
this.validateErrorCodeExists(id);
|
||||
validateErrorCodeExists(id);
|
||||
// 删除
|
||||
errorCodeMapper.deleteById(id);
|
||||
}
|
||||
|
@ -68,7 +68,7 @@ public class SmsChannelServiceImpl implements SmsChannelService {
|
||||
@Override
|
||||
public void updateSmsChannel(SmsChannelUpdateReqVO updateReqVO) {
|
||||
// 校验存在
|
||||
this.validateSmsChannelExists(updateReqVO.getId());
|
||||
validateSmsChannelExists(updateReqVO.getId());
|
||||
// 更新
|
||||
SmsChannelDO updateObj = SmsChannelConvert.INSTANCE.convert(updateReqVO);
|
||||
smsChannelMapper.updateById(updateObj);
|
||||
@ -79,7 +79,7 @@ public class SmsChannelServiceImpl implements SmsChannelService {
|
||||
@Override
|
||||
public void deleteSmsChannel(Long id) {
|
||||
// 校验存在
|
||||
this.validateSmsChannelExists(id);
|
||||
validateSmsChannelExists(id);
|
||||
// 校验是否有在使用该账号的模版
|
||||
if (smsTemplateService.countByChannelId(id) > 0) {
|
||||
throw exception(SMS_CHANNEL_HAS_CHILDREN);
|
||||
|
@ -90,7 +90,7 @@ public class SmsSendServiceImpl implements SmsSendService {
|
||||
// 校验手机号码是否存在
|
||||
mobile = validateMobile(mobile);
|
||||
// 构建有序的模板参数。为什么放在这个位置,是提前保证模板参数的正确性,而不是到了插入发送日志
|
||||
List<KeyValue<String, Object>> newTemplateParams = this.buildTemplateParams(template, templateParams);
|
||||
List<KeyValue<String, Object>> newTemplateParams = buildTemplateParams(template, templateParams);
|
||||
|
||||
// 创建发送日志。如果模板被禁用,则不发送短信,只记录日志
|
||||
Boolean isSend = CommonStatusEnum.ENABLE.getStatus().equals(template.getStatus())
|
||||
|
@ -125,7 +125,7 @@ public class SmsTemplateServiceImpl implements SmsTemplateService {
|
||||
@Override
|
||||
public void updateSmsTemplate(SmsTemplateUpdateReqVO updateReqVO) {
|
||||
// 校验存在
|
||||
this.validateSmsTemplateExists(updateReqVO.getId());
|
||||
validateSmsTemplateExists(updateReqVO.getId());
|
||||
// 校验短信渠道
|
||||
SmsChannelDO channelDO = checkSmsChannel(updateReqVO.getChannelId());
|
||||
// 校验短信编码是否重复
|
||||
@ -145,7 +145,7 @@ public class SmsTemplateServiceImpl implements SmsTemplateService {
|
||||
@Override
|
||||
public void deleteSmsTemplate(Long id) {
|
||||
// 校验存在
|
||||
this.validateSmsTemplateExists(id);
|
||||
validateSmsTemplateExists(id);
|
||||
// 更新
|
||||
smsTemplateMapper.deleteById(id);
|
||||
// 发送刷新消息
|
||||
|
@ -64,9 +64,9 @@ public class TenantPackageServiceImpl implements TenantPackageService {
|
||||
@Override
|
||||
public void deleteTenantPackage(Long id) {
|
||||
// 校验存在
|
||||
this.validateTenantPackageExists(id);
|
||||
validateTenantPackageExists(id);
|
||||
// 校验正在使用
|
||||
this.validateTenantUsed(id);
|
||||
validateTenantUsed(id);
|
||||
// 删除
|
||||
tenantPackageMapper.deleteById(id);
|
||||
}
|
||||
|
@ -25,12 +25,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.List;
|
||||
import java.util.Map;
|
||||
import java.util.function.Consumer;
|
||||
|
||||
import static cn.hutool.core.util.RandomUtil.randomEle;
|
||||
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.test.core.util.AssertUtils.assertPojoEquals;
|
||||
import static cn.iocoder.yudao.framework.test.core.util.AssertUtils.assertServiceException;
|
||||
@ -224,7 +224,7 @@ public class SmsTemplateServiceImplTest extends BaseDbUnitTest {
|
||||
reqVO.setContent("芋道");
|
||||
reqVO.setApiTemplateId("yu");
|
||||
reqVO.setChannelId(1L);
|
||||
reqVO.setCreateTime((new LocalDateTime[]{buildTime(2021, 11, 1),buildTime(2021, 12, 1)}));
|
||||
reqVO.setCreateTime(buildBetweenTime(2021, 11, 1, 2021, 12, 1));
|
||||
|
||||
// 调用
|
||||
PageResult<SmsTemplateDO> pageResult = smsTemplateService.getSmsTemplatePage(reqVO);
|
||||
@ -269,7 +269,7 @@ public class SmsTemplateServiceImplTest extends BaseDbUnitTest {
|
||||
reqVO.setContent("芋道");
|
||||
reqVO.setApiTemplateId("yu");
|
||||
reqVO.setChannelId(1L);
|
||||
reqVO.setCreateTime((new LocalDateTime[]{buildTime(2021, 11, 1),buildTime(2021, 12, 1)}));
|
||||
reqVO.setCreateTime(buildBetweenTime(2021, 11, 1, 2021, 12, 1));
|
||||
|
||||
// 调用
|
||||
List<SmsTemplateDO> list = smsTemplateService.getSmsTemplateList(reqVO);
|
||||
|
@ -35,7 +35,7 @@ import static org.junit.jupiter.api.Assertions.assertEquals;
|
||||
import static org.mockito.Mockito.*;
|
||||
|
||||
@Import(SocialUserServiceImpl.class)
|
||||
public class SocialUserServiceTest extends BaseDbAndRedisUnitTest {
|
||||
public class SocialUserServiceImplTest extends BaseDbAndRedisUnitTest {
|
||||
|
||||
@Resource
|
||||
private SocialUserServiceImpl socialUserService;
|
@ -2,22 +2,22 @@ package cn.iocoder.yudao.module.system.service.tenant;
|
||||
|
||||
import cn.iocoder.yudao.framework.common.enums.CommonStatusEnum;
|
||||
import cn.iocoder.yudao.framework.common.pojo.PageResult;
|
||||
import cn.iocoder.yudao.framework.test.core.ut.BaseDbUnitTest;
|
||||
import cn.iocoder.yudao.module.system.controller.admin.tenant.vo.packages.TenantPackageCreateReqVO;
|
||||
import cn.iocoder.yudao.module.system.controller.admin.tenant.vo.packages.TenantPackagePageReqVO;
|
||||
import cn.iocoder.yudao.module.system.controller.admin.tenant.vo.packages.TenantPackageUpdateReqVO;
|
||||
import cn.iocoder.yudao.module.system.dal.dataobject.tenant.TenantDO;
|
||||
import cn.iocoder.yudao.module.system.dal.dataobject.tenant.TenantPackageDO;
|
||||
import cn.iocoder.yudao.module.system.dal.mysql.tenant.TenantPackageMapper;
|
||||
import cn.iocoder.yudao.framework.test.core.ut.BaseDbUnitTest;
|
||||
import org.junit.jupiter.api.Test;
|
||||
import org.springframework.boot.test.mock.mockito.MockBean;
|
||||
import org.springframework.context.annotation.Import;
|
||||
|
||||
import javax.annotation.Resource;
|
||||
import java.util.List;
|
||||
|
||||
import java.time.LocalDateTime;
|
||||
|
||||
import static cn.iocoder.yudao.framework.common.util.date.DateUtils.buildLocalDateTime;
|
||||
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.assertPojoEquals;
|
||||
import static cn.iocoder.yudao.framework.test.core.util.AssertUtils.assertServiceException;
|
||||
@ -31,10 +31,10 @@ import static org.mockito.Mockito.verify;
|
||||
import static org.mockito.Mockito.when;
|
||||
|
||||
/**
|
||||
* {@link TenantPackageServiceImpl} 的单元测试类
|
||||
*
|
||||
* @author 芋道源码
|
||||
*/
|
||||
* {@link TenantPackageServiceImpl} 的单元测试类
|
||||
*
|
||||
* @author 芋道源码
|
||||
*/
|
||||
@Import(TenantPackageServiceImpl.class)
|
||||
public class TenantPackageServiceImplTest extends BaseDbUnitTest {
|
||||
|
||||
@ -108,8 +108,8 @@ public class TenantPackageServiceImplTest extends BaseDbUnitTest {
|
||||
|
||||
// 调用
|
||||
tenantPackageService.deleteTenantPackage(id);
|
||||
// 校验数据不存在了
|
||||
assertNull(tenantPackageMapper.selectById(id));
|
||||
// 校验数据不存在了
|
||||
assertNull(tenantPackageMapper.selectById(id));
|
||||
}
|
||||
|
||||
@Test
|
||||
@ -137,35 +137,35 @@ public class TenantPackageServiceImplTest extends BaseDbUnitTest {
|
||||
|
||||
@Test
|
||||
public void testGetTenantPackagePage() {
|
||||
// mock 数据
|
||||
TenantPackageDO dbTenantPackage = randomPojo(TenantPackageDO.class, o -> { // 等会查询到
|
||||
o.setName("芋道源码");
|
||||
o.setStatus(CommonStatusEnum.ENABLE.getStatus());
|
||||
o.setRemark("源码解析");
|
||||
o.setCreateTime(buildLocalDateTime(2022, 10, 10));
|
||||
});
|
||||
tenantPackageMapper.insert(dbTenantPackage);
|
||||
// 测试 name 不匹配
|
||||
tenantPackageMapper.insert(cloneIgnoreId(dbTenantPackage, o -> o.setName("源码")));
|
||||
// 测试 status 不匹配
|
||||
tenantPackageMapper.insert(cloneIgnoreId(dbTenantPackage, o -> o.setStatus(CommonStatusEnum.DISABLE.getStatus())));
|
||||
// 测试 remark 不匹配
|
||||
tenantPackageMapper.insert(cloneIgnoreId(dbTenantPackage, o -> o.setRemark("解析")));
|
||||
// 测试 createTime 不匹配
|
||||
tenantPackageMapper.insert(cloneIgnoreId(dbTenantPackage, o -> o.setCreateTime(buildLocalDateTime(2022, 11, 11))));
|
||||
// 准备参数
|
||||
TenantPackagePageReqVO reqVO = new TenantPackagePageReqVO();
|
||||
reqVO.setName("芋道");
|
||||
reqVO.setStatus(CommonStatusEnum.ENABLE.getStatus());
|
||||
reqVO.setRemark("源码");
|
||||
reqVO.setCreateTime((new LocalDateTime[]{buildLocalDateTime(2022, 10, 9),buildLocalDateTime(2022, 10, 11)}));
|
||||
// mock 数据
|
||||
TenantPackageDO dbTenantPackage = randomPojo(TenantPackageDO.class, o -> { // 等会查询到
|
||||
o.setName("芋道源码");
|
||||
o.setStatus(CommonStatusEnum.ENABLE.getStatus());
|
||||
o.setRemark("源码解析");
|
||||
o.setCreateTime(buildTime(2022, 10, 10));
|
||||
});
|
||||
tenantPackageMapper.insert(dbTenantPackage);
|
||||
// 测试 name 不匹配
|
||||
tenantPackageMapper.insert(cloneIgnoreId(dbTenantPackage, o -> o.setName("源码")));
|
||||
// 测试 status 不匹配
|
||||
tenantPackageMapper.insert(cloneIgnoreId(dbTenantPackage, o -> o.setStatus(CommonStatusEnum.DISABLE.getStatus())));
|
||||
// 测试 remark 不匹配
|
||||
tenantPackageMapper.insert(cloneIgnoreId(dbTenantPackage, o -> o.setRemark("解析")));
|
||||
// 测试 createTime 不匹配
|
||||
tenantPackageMapper.insert(cloneIgnoreId(dbTenantPackage, o -> o.setCreateTime(buildTime(2022, 11, 11))));
|
||||
// 准备参数
|
||||
TenantPackagePageReqVO reqVO = new TenantPackagePageReqVO();
|
||||
reqVO.setName("芋道");
|
||||
reqVO.setStatus(CommonStatusEnum.ENABLE.getStatus());
|
||||
reqVO.setRemark("源码");
|
||||
reqVO.setCreateTime(buildBetweenTime(2022, 10, 9, 2022, 10, 11));
|
||||
|
||||
// 调用
|
||||
PageResult<TenantPackageDO> pageResult = tenantPackageService.getTenantPackagePage(reqVO);
|
||||
// 断言
|
||||
assertEquals(1, pageResult.getTotal());
|
||||
assertEquals(1, pageResult.getList().size());
|
||||
assertPojoEquals(dbTenantPackage, pageResult.getList().get(0));
|
||||
// 调用
|
||||
PageResult<TenantPackageDO> pageResult = tenantPackageService.getTenantPackagePage(reqVO);
|
||||
// 断言
|
||||
assertEquals(1, pageResult.getTotal());
|
||||
assertEquals(1, pageResult.getList().size());
|
||||
assertPojoEquals(dbTenantPackage, pageResult.getList().get(0));
|
||||
}
|
||||
|
||||
@Test
|
||||
@ -201,4 +201,34 @@ public class TenantPackageServiceImplTest extends BaseDbUnitTest {
|
||||
assertServiceException(() -> tenantPackageService.validTenantPackage(dbTenantPackage.getId()),
|
||||
TENANT_PACKAGE_DISABLE, dbTenantPackage.getName());
|
||||
}
|
||||
|
||||
@Test
|
||||
public void testGetTenantPackage() {
|
||||
// mock 数据
|
||||
TenantPackageDO dbTenantPackage = randomPojo(TenantPackageDO.class);
|
||||
tenantPackageMapper.insert(dbTenantPackage);// @Sql: 先插入出一条存在的数据
|
||||
|
||||
// 调用
|
||||
TenantPackageDO result = tenantPackageService.getTenantPackage(dbTenantPackage.getId());
|
||||
// 断言
|
||||
assertPojoEquals(result, dbTenantPackage);
|
||||
}
|
||||
|
||||
@Test
|
||||
public void testGetTenantPackageListByStatus() {
|
||||
// mock 数据
|
||||
TenantPackageDO dbTenantPackage = randomPojo(TenantPackageDO.class,
|
||||
o -> o.setStatus(CommonStatusEnum.ENABLE.getStatus()));
|
||||
tenantPackageMapper.insert(dbTenantPackage);
|
||||
// 测试 status 不匹配
|
||||
tenantPackageMapper.insert(cloneIgnoreId(dbTenantPackage,
|
||||
o -> o.setStatus(CommonStatusEnum.DISABLE.getStatus())));
|
||||
|
||||
// 调用
|
||||
List<TenantPackageDO> list = tenantPackageService.getTenantPackageListByStatus(
|
||||
CommonStatusEnum.ENABLE.getStatus());
|
||||
assertEquals(1, list.size());
|
||||
assertPojoEquals(dbTenantPackage, list.get(0));
|
||||
}
|
||||
|
||||
}
|
||||
|
Loading…
Reference in New Issue
Block a user