Commit 05374216552e0178ebb04f6ce37e49aae42bddf8
1 parent
bef06ef9
完善 DictDataServiceImpl 单元测试
Showing
7 changed files
with
166 additions
and
49 deletions
yudao-module-bpm/yudao-module-bpm-biz/src/main/java/cn/iocoder/yudao/module/bpm/service/definition/BpmTaskAssignRuleServiceImpl.java
| ... | ... | @@ -224,7 +224,7 @@ public class BpmTaskAssignRuleServiceImpl implements BpmTaskAssignRuleService { |
| 224 | 224 | } else if (Objects.equals(type, BpmTaskAssignRuleTypeEnum.USER_GROUP.getType())) { |
| 225 | 225 | userGroupService.validUserGroups(options); |
| 226 | 226 | } else if (Objects.equals(type, BpmTaskAssignRuleTypeEnum.SCRIPT.getType())) { |
| 227 | - dictDataApi.validDictDatas(DictTypeConstants.TASK_ASSIGN_SCRIPT, | |
| 227 | + dictDataApi.validateDictDataList(DictTypeConstants.TASK_ASSIGN_SCRIPT, | |
| 228 | 228 | CollectionUtils.convertSet(options, String::valueOf)); |
| 229 | 229 | } else { |
| 230 | 230 | throw new IllegalArgumentException(format("未知的规则类型({})", type)); | ... | ... |
yudao-module-system/yudao-module-system-api/src/main/java/cn/iocoder/yudao/module/system/api/dict/DictDataApi.java
| ... | ... | @@ -19,7 +19,7 @@ public interface DictDataApi { |
| 19 | 19 | * @param dictType 字典类型 |
| 20 | 20 | * @param values 字典数据值的数组 |
| 21 | 21 | */ |
| 22 | - void validDictDatas(String dictType, Collection<String> values); | |
| 22 | + void validateDictDataList(String dictType, Collection<String> values); | |
| 23 | 23 | |
| 24 | 24 | /** |
| 25 | 25 | * 获得指定的字典数据,从缓存中 | ... | ... |
yudao-module-system/yudao-module-system-biz/src/main/java/cn/iocoder/yudao/module/system/api/dict/DictDataApiImpl.java
| ... | ... | @@ -21,8 +21,8 @@ public class DictDataApiImpl implements DictDataApi { |
| 21 | 21 | private DictDataService dictDataService; |
| 22 | 22 | |
| 23 | 23 | @Override |
| 24 | - public void validDictDatas(String dictType, Collection<String> values) { | |
| 25 | - dictDataService.validDictDatas(dictType, values); | |
| 24 | + public void validateDictDataList(String dictType, Collection<String> values) { | |
| 25 | + dictDataService.validateDictDataList(dictType, values); | |
| 26 | 26 | } |
| 27 | 27 | |
| 28 | 28 | @Override | ... | ... |
yudao-module-system/yudao-module-system-biz/src/main/java/cn/iocoder/yudao/module/system/controller/admin/dict/DictDataController.java
| ... | ... | @@ -62,7 +62,7 @@ public class DictDataController { |
| 62 | 62 | @ApiOperation(value = "获得全部字典数据列表", notes = "一般用于管理后台缓存字典数据在本地") |
| 63 | 63 | // 无需添加权限认证,因为前端全局都需要 |
| 64 | 64 | public CommonResult<List<DictDataSimpleRespVO>> getSimpleDictDatas() { |
| 65 | - List<DictDataDO> list = dictDataService.getDictDatas(); | |
| 65 | + List<DictDataDO> list = dictDataService.getDictDataList(); | |
| 66 | 66 | return success(DictDataConvert.INSTANCE.convertList(list)); |
| 67 | 67 | } |
| 68 | 68 | |
| ... | ... | @@ -86,7 +86,7 @@ public class DictDataController { |
| 86 | 86 | @PreAuthorize("@ss.hasPermission('system:dict:export')") |
| 87 | 87 | @OperateLog(type = EXPORT) |
| 88 | 88 | public void export(HttpServletResponse response, @Valid DictDataExportReqVO reqVO) throws IOException { |
| 89 | - List<DictDataDO> list = dictDataService.getDictDatas(reqVO); | |
| 89 | + List<DictDataDO> list = dictDataService.getDictDataList(reqVO); | |
| 90 | 90 | List<DictDataExcelVO> data = DictDataConvert.INSTANCE.convertList02(list); |
| 91 | 91 | // 输出 |
| 92 | 92 | ExcelUtils.write(response, "字典数据.xls", "数据列表", DictDataExcelVO.class, data); | ... | ... |
yudao-module-system/yudao-module-system-biz/src/main/java/cn/iocoder/yudao/module/system/service/dict/DictDataService.java
| ... | ... | @@ -44,7 +44,7 @@ public interface DictDataService { |
| 44 | 44 | * |
| 45 | 45 | * @return 字典数据全列表 |
| 46 | 46 | */ |
| 47 | - List<DictDataDO> getDictDatas(); | |
| 47 | + List<DictDataDO> getDictDataList(); | |
| 48 | 48 | |
| 49 | 49 | /** |
| 50 | 50 | * 获得字典数据分页列表 |
| ... | ... | @@ -60,7 +60,7 @@ public interface DictDataService { |
| 60 | 60 | * @param reqVO 列表请求 |
| 61 | 61 | * @return 字典数据列表 |
| 62 | 62 | */ |
| 63 | - List<DictDataDO> getDictDatas(DictDataExportReqVO reqVO); | |
| 63 | + List<DictDataDO> getDictDataList(DictDataExportReqVO reqVO); | |
| 64 | 64 | |
| 65 | 65 | /** |
| 66 | 66 | * 获得字典数据详情 |
| ... | ... | @@ -86,7 +86,7 @@ public interface DictDataService { |
| 86 | 86 | * @param dictType 字典类型 |
| 87 | 87 | * @param values 字典数据值的数组 |
| 88 | 88 | */ |
| 89 | - void validDictDatas(String dictType, Collection<String> values); | |
| 89 | + void validateDictDataList(String dictType, Collection<String> values); | |
| 90 | 90 | |
| 91 | 91 | /** |
| 92 | 92 | * 获得指定的字典数据 | ... | ... |
yudao-module-system/yudao-module-system-biz/src/main/java/cn/iocoder/yudao/module/system/service/dict/DictDataServiceImpl.java
| ... | ... | @@ -48,7 +48,7 @@ public class DictDataServiceImpl implements DictDataService { |
| 48 | 48 | private DictDataMapper dictDataMapper; |
| 49 | 49 | |
| 50 | 50 | @Override |
| 51 | - public List<DictDataDO> getDictDatas() { | |
| 51 | + public List<DictDataDO> getDictDataList() { | |
| 52 | 52 | List<DictDataDO> list = dictDataMapper.selectList(); |
| 53 | 53 | list.sort(COMPARATOR_TYPE_AND_SORT); |
| 54 | 54 | return list; |
| ... | ... | @@ -60,7 +60,7 @@ public class DictDataServiceImpl implements DictDataService { |
| 60 | 60 | } |
| 61 | 61 | |
| 62 | 62 | @Override |
| 63 | - public List<DictDataDO> getDictDatas(DictDataExportReqVO reqVO) { | |
| 63 | + public List<DictDataDO> getDictDataList(DictDataExportReqVO reqVO) { | |
| 64 | 64 | List<DictDataDO> list = dictDataMapper.selectList(reqVO); |
| 65 | 65 | list.sort(COMPARATOR_TYPE_AND_SORT); |
| 66 | 66 | return list; |
| ... | ... | @@ -74,7 +74,7 @@ public class DictDataServiceImpl implements DictDataService { |
| 74 | 74 | @Override |
| 75 | 75 | public Long createDictData(DictDataCreateReqVO reqVO) { |
| 76 | 76 | // 校验正确性 |
| 77 | - checkCreateOrUpdate(null, reqVO.getValue(), reqVO.getDictType()); | |
| 77 | + validateDictDataForCreateOrUpdate(null, reqVO.getValue(), reqVO.getDictType()); | |
| 78 | 78 | |
| 79 | 79 | // 插入字典类型 |
| 80 | 80 | DictDataDO dictData = DictDataConvert.INSTANCE.convert(reqVO); |
| ... | ... | @@ -85,7 +85,7 @@ public class DictDataServiceImpl implements DictDataService { |
| 85 | 85 | @Override |
| 86 | 86 | public void updateDictData(DictDataUpdateReqVO reqVO) { |
| 87 | 87 | // 校验正确性 |
| 88 | - checkCreateOrUpdate(reqVO.getId(), reqVO.getValue(), reqVO.getDictType()); | |
| 88 | + validateDictDataForCreateOrUpdate(reqVO.getId(), reqVO.getValue(), reqVO.getDictType()); | |
| 89 | 89 | |
| 90 | 90 | // 更新字典类型 |
| 91 | 91 | DictDataDO updateObj = DictDataConvert.INSTANCE.convert(reqVO); |
| ... | ... | @@ -95,7 +95,7 @@ public class DictDataServiceImpl implements DictDataService { |
| 95 | 95 | @Override |
| 96 | 96 | public void deleteDictData(Long id) { |
| 97 | 97 | // 校验是否存在 |
| 98 | - checkDictDataExists(id); | |
| 98 | + validateDictDataExists(id); | |
| 99 | 99 | |
| 100 | 100 | // 删除字典数据 |
| 101 | 101 | dictDataMapper.deleteById(id); |
| ... | ... | @@ -106,18 +106,17 @@ public class DictDataServiceImpl implements DictDataService { |
| 106 | 106 | return dictDataMapper.selectCountByDictType(dictType); |
| 107 | 107 | } |
| 108 | 108 | |
| 109 | - | |
| 110 | - private void checkCreateOrUpdate(Long id, String value, String dictType) { | |
| 109 | + private void validateDictDataForCreateOrUpdate(Long id, String value, String dictType) { | |
| 111 | 110 | // 校验自己存在 |
| 112 | - checkDictDataExists(id); | |
| 111 | + validateDictDataExists(id); | |
| 113 | 112 | // 校验字典类型有效 |
| 114 | - checkDictTypeValid(dictType); | |
| 113 | + validateDictTypeExists(dictType); | |
| 115 | 114 | // 校验字典数据的值的唯一性 |
| 116 | - checkDictDataValueUnique(id, dictType, value); | |
| 115 | + validateDictDataValueUnique(id, dictType, value); | |
| 117 | 116 | } |
| 118 | 117 | |
| 119 | 118 | @VisibleForTesting |
| 120 | - public void checkDictDataValueUnique(Long id, String dictType, String value) { | |
| 119 | + public void validateDictDataValueUnique(Long id, String dictType, String value) { | |
| 121 | 120 | DictDataDO dictData = dictDataMapper.selectByDictTypeAndValue(dictType, value); |
| 122 | 121 | if (dictData == null) { |
| 123 | 122 | return; |
| ... | ... | @@ -132,7 +131,7 @@ public class DictDataServiceImpl implements DictDataService { |
| 132 | 131 | } |
| 133 | 132 | |
| 134 | 133 | @VisibleForTesting |
| 135 | - public void checkDictDataExists(Long id) { | |
| 134 | + public void validateDictDataExists(Long id) { | |
| 136 | 135 | if (id == null) { |
| 137 | 136 | return; |
| 138 | 137 | } |
| ... | ... | @@ -143,7 +142,7 @@ public class DictDataServiceImpl implements DictDataService { |
| 143 | 142 | } |
| 144 | 143 | |
| 145 | 144 | @VisibleForTesting |
| 146 | - public void checkDictTypeValid(String type) { | |
| 145 | + public void validateDictTypeExists(String type) { | |
| 147 | 146 | DictTypeDO dictType = dictTypeService.getDictType(type); |
| 148 | 147 | if (dictType == null) { |
| 149 | 148 | throw exception(DICT_TYPE_NOT_EXISTS); |
| ... | ... | @@ -154,7 +153,7 @@ public class DictDataServiceImpl implements DictDataService { |
| 154 | 153 | } |
| 155 | 154 | |
| 156 | 155 | @Override |
| 157 | - public void validDictDatas(String dictType, Collection<String> values) { | |
| 156 | + public void validateDictDataList(String dictType, Collection<String> values) { | |
| 158 | 157 | if (CollUtil.isEmpty(values)) { |
| 159 | 158 | return; |
| 160 | 159 | } | ... | ... |
yudao-module-system/yudao-module-system-biz/src/test/java/cn/iocoder/yudao/module/system/service/dict/DictDataServiceTest.java renamed to yudao-module-system/yudao-module-system-biz/src/test/java/cn/iocoder/yudao/module/system/service/dict/DictDataServiceImplTest.java
| ... | ... | @@ -3,7 +3,6 @@ package cn.iocoder.yudao.module.system.service.dict; |
| 3 | 3 | import cn.iocoder.yudao.framework.common.enums.CommonStatusEnum; |
| 4 | 4 | import cn.iocoder.yudao.framework.common.pojo.PageResult; |
| 5 | 5 | import cn.iocoder.yudao.framework.common.util.collection.ArrayUtils; |
| 6 | -import cn.iocoder.yudao.framework.common.util.object.ObjectUtils; | |
| 7 | 6 | import cn.iocoder.yudao.framework.test.core.ut.BaseDbUnitTest; |
| 8 | 7 | import cn.iocoder.yudao.module.system.controller.admin.dict.vo.data.DictDataCreateReqVO; |
| 9 | 8 | import cn.iocoder.yudao.module.system.controller.admin.dict.vo.data.DictDataExportReqVO; |
| ... | ... | @@ -20,16 +19,18 @@ import javax.annotation.Resource; |
| 20 | 19 | import java.util.List; |
| 21 | 20 | import java.util.function.Consumer; |
| 22 | 21 | |
| 22 | +import static cn.iocoder.yudao.framework.common.util.object.ObjectUtils.cloneIgnoreId; | |
| 23 | 23 | import static cn.iocoder.yudao.framework.test.core.util.AssertUtils.assertPojoEquals; |
| 24 | 24 | import static cn.iocoder.yudao.framework.test.core.util.AssertUtils.assertServiceException; |
| 25 | 25 | import static cn.iocoder.yudao.framework.test.core.util.RandomUtils.*; |
| 26 | 26 | import static cn.iocoder.yudao.module.system.enums.ErrorCodeConstants.*; |
| 27 | +import static java.util.Collections.singletonList; | |
| 27 | 28 | import static org.junit.jupiter.api.Assertions.*; |
| 28 | 29 | import static org.mockito.ArgumentMatchers.eq; |
| 29 | 30 | import static org.mockito.Mockito.when; |
| 30 | 31 | |
| 31 | 32 | @Import(DictDataServiceImpl.class) |
| 32 | -public class DictDataServiceTest extends BaseDbUnitTest { | |
| 33 | +public class DictDataServiceImplTest extends BaseDbUnitTest { | |
| 33 | 34 | |
| 34 | 35 | @Resource |
| 35 | 36 | private DictDataServiceImpl dictDataService; |
| ... | ... | @@ -40,6 +41,23 @@ public class DictDataServiceTest extends BaseDbUnitTest { |
| 40 | 41 | private DictTypeService dictTypeService; |
| 41 | 42 | |
| 42 | 43 | @Test |
| 44 | + public void testGetDictDataList() { | |
| 45 | + // mock 数据 | |
| 46 | + DictDataDO dictDataDO01 = randomDictDataDO().setDictType("yunai").setSort(2); | |
| 47 | + dictDataMapper.insert(dictDataDO01); | |
| 48 | + DictDataDO dictDataDO02 = randomDictDataDO().setDictType("yunai").setSort(1); | |
| 49 | + dictDataMapper.insert(dictDataDO02); | |
| 50 | + // 准备参数 | |
| 51 | + | |
| 52 | + // 调用 | |
| 53 | + List<DictDataDO> dictDataDOList = dictDataService.getDictDataList(); | |
| 54 | + // 断言 | |
| 55 | + assertEquals(2, dictDataDOList.size()); | |
| 56 | + assertPojoEquals(dictDataDO02, dictDataDOList.get(0)); | |
| 57 | + assertPojoEquals(dictDataDO01, dictDataDOList.get(1)); | |
| 58 | + } | |
| 59 | + | |
| 60 | + @Test | |
| 43 | 61 | public void testGetDictDataPage() { |
| 44 | 62 | // mock 数据 |
| 45 | 63 | DictDataDO dbDictData = randomPojo(DictDataDO.class, o -> { // 等会查询到 |
| ... | ... | @@ -49,11 +67,11 @@ public class DictDataServiceTest extends BaseDbUnitTest { |
| 49 | 67 | }); |
| 50 | 68 | dictDataMapper.insert(dbDictData); |
| 51 | 69 | // 测试 label 不匹配 |
| 52 | - dictDataMapper.insert(ObjectUtils.cloneIgnoreId(dbDictData, o -> o.setLabel("艿"))); | |
| 70 | + dictDataMapper.insert(cloneIgnoreId(dbDictData, o -> o.setLabel("艿"))); | |
| 53 | 71 | // 测试 dictType 不匹配 |
| 54 | - dictDataMapper.insert(ObjectUtils.cloneIgnoreId(dbDictData, o -> o.setDictType("nai"))); | |
| 72 | + dictDataMapper.insert(cloneIgnoreId(dbDictData, o -> o.setDictType("nai"))); | |
| 55 | 73 | // 测试 status 不匹配 |
| 56 | - dictDataMapper.insert(ObjectUtils.cloneIgnoreId(dbDictData, o -> o.setStatus(CommonStatusEnum.DISABLE.getStatus()))); | |
| 74 | + dictDataMapper.insert(cloneIgnoreId(dbDictData, o -> o.setStatus(CommonStatusEnum.DISABLE.getStatus()))); | |
| 57 | 75 | // 准备参数 |
| 58 | 76 | DictDataPageReqVO reqVO = new DictDataPageReqVO(); |
| 59 | 77 | reqVO.setLabel("芋"); |
| ... | ... | @@ -69,7 +87,7 @@ public class DictDataServiceTest extends BaseDbUnitTest { |
| 69 | 87 | } |
| 70 | 88 | |
| 71 | 89 | @Test |
| 72 | - public void testGetDictDataList() { | |
| 90 | + public void testGetDictDataList_export() { | |
| 73 | 91 | // mock 数据 |
| 74 | 92 | DictDataDO dbDictData = randomPojo(DictDataDO.class, o -> { // 等会查询到 |
| 75 | 93 | o.setLabel("芋艿"); |
| ... | ... | @@ -78,11 +96,11 @@ public class DictDataServiceTest extends BaseDbUnitTest { |
| 78 | 96 | }); |
| 79 | 97 | dictDataMapper.insert(dbDictData); |
| 80 | 98 | // 测试 label 不匹配 |
| 81 | - dictDataMapper.insert(ObjectUtils.cloneIgnoreId(dbDictData, o -> o.setLabel("艿"))); | |
| 99 | + dictDataMapper.insert(cloneIgnoreId(dbDictData, o -> o.setLabel("艿"))); | |
| 82 | 100 | // 测试 dictType 不匹配 |
| 83 | - dictDataMapper.insert(ObjectUtils.cloneIgnoreId(dbDictData, o -> o.setDictType("nai"))); | |
| 101 | + dictDataMapper.insert(cloneIgnoreId(dbDictData, o -> o.setDictType("nai"))); | |
| 84 | 102 | // 测试 status 不匹配 |
| 85 | - dictDataMapper.insert(ObjectUtils.cloneIgnoreId(dbDictData, o -> o.setStatus(CommonStatusEnum.DISABLE.getStatus()))); | |
| 103 | + dictDataMapper.insert(cloneIgnoreId(dbDictData, o -> o.setStatus(CommonStatusEnum.DISABLE.getStatus()))); | |
| 86 | 104 | // 准备参数 |
| 87 | 105 | DictDataExportReqVO reqVO = new DictDataExportReqVO(); |
| 88 | 106 | reqVO.setLabel("芋"); |
| ... | ... | @@ -90,13 +108,27 @@ public class DictDataServiceTest extends BaseDbUnitTest { |
| 90 | 108 | reqVO.setStatus(CommonStatusEnum.ENABLE.getStatus()); |
| 91 | 109 | |
| 92 | 110 | // 调用 |
| 93 | - List<DictDataDO> list = dictDataService.getDictDatas(reqVO); | |
| 111 | + List<DictDataDO> list = dictDataService.getDictDataList(reqVO); | |
| 94 | 112 | // 断言 |
| 95 | 113 | assertEquals(1, list.size()); |
| 96 | 114 | assertPojoEquals(dbDictData, list.get(0)); |
| 97 | 115 | } |
| 98 | 116 | |
| 99 | 117 | @Test |
| 118 | + public void testGetDictData() { | |
| 119 | + // mock 数据 | |
| 120 | + DictDataDO dbDictData = randomDictDataDO(); | |
| 121 | + dictDataMapper.insert(dbDictData); | |
| 122 | + // 准备参数 | |
| 123 | + Long id = dbDictData.getId(); | |
| 124 | + | |
| 125 | + // 调用 | |
| 126 | + DictDataDO dictData = dictDataService.getDictData(id); | |
| 127 | + // 断言 | |
| 128 | + assertPojoEquals(dbDictData, dictData); | |
| 129 | + } | |
| 130 | + | |
| 131 | + @Test | |
| 100 | 132 | public void testCreateDictData_success() { |
| 101 | 133 | // 准备参数 |
| 102 | 134 | DictDataCreateReqVO reqVO = randomPojo(DictDataCreateReqVO.class, |
| ... | ... | @@ -148,54 +180,54 @@ public class DictDataServiceTest extends BaseDbUnitTest { |
| 148 | 180 | } |
| 149 | 181 | |
| 150 | 182 | @Test |
| 151 | - public void testCheckDictDataExists_success() { | |
| 183 | + public void testValidateDictDataExists_success() { | |
| 152 | 184 | // mock 数据 |
| 153 | 185 | DictDataDO dbDictData = randomDictDataDO(); |
| 154 | 186 | dictDataMapper.insert(dbDictData);// @Sql: 先插入出一条存在的数据 |
| 155 | 187 | |
| 156 | 188 | // 调用成功 |
| 157 | - dictDataService.checkDictDataExists(dbDictData.getId()); | |
| 189 | + dictDataService.validateDictDataExists(dbDictData.getId()); | |
| 158 | 190 | } |
| 159 | 191 | |
| 160 | 192 | @Test |
| 161 | - public void testCheckDictDataExists_notExists() { | |
| 162 | - assertServiceException(() -> dictDataService.checkDictDataExists(randomLongId()), DICT_DATA_NOT_EXISTS); | |
| 193 | + public void testValidateDictDataExists_notExists() { | |
| 194 | + assertServiceException(() -> dictDataService.validateDictDataExists(randomLongId()), DICT_DATA_NOT_EXISTS); | |
| 163 | 195 | } |
| 164 | 196 | |
| 165 | 197 | @Test |
| 166 | - public void testCheckDictTypeValid_success() { | |
| 198 | + public void testValidateDictTypeExists_success() { | |
| 167 | 199 | // mock 方法,数据类型被禁用 |
| 168 | 200 | String type = randomString(); |
| 169 | 201 | when(dictTypeService.getDictType(eq(type))).thenReturn(randomDictTypeDO(type)); |
| 170 | 202 | |
| 171 | 203 | // 调用, 成功 |
| 172 | - dictDataService.checkDictTypeValid(type); | |
| 204 | + dictDataService.validateDictTypeExists(type); | |
| 173 | 205 | } |
| 174 | 206 | |
| 175 | 207 | @Test |
| 176 | - public void testCheckDictTypeValid_notExists() { | |
| 177 | - assertServiceException(() -> dictDataService.checkDictTypeValid(randomString()), DICT_TYPE_NOT_EXISTS); | |
| 208 | + public void testValidateDictTypeExists_notExists() { | |
| 209 | + assertServiceException(() -> dictDataService.validateDictTypeExists(randomString()), DICT_TYPE_NOT_EXISTS); | |
| 178 | 210 | } |
| 179 | 211 | |
| 180 | 212 | @Test |
| 181 | - public void testCheckDictTypeValid_notEnable() { | |
| 213 | + public void testValidateDictTypeExists_notEnable() { | |
| 182 | 214 | // mock 方法,数据类型被禁用 |
| 183 | 215 | String dictType = randomString(); |
| 184 | 216 | when(dictTypeService.getDictType(eq(dictType))).thenReturn( |
| 185 | 217 | randomPojo(DictTypeDO.class, o -> o.setStatus(CommonStatusEnum.DISABLE.getStatus()))); |
| 186 | 218 | |
| 187 | 219 | // 调用, 并断言异常 |
| 188 | - assertServiceException(() -> dictDataService.checkDictTypeValid(dictType), DICT_TYPE_NOT_ENABLE); | |
| 220 | + assertServiceException(() -> dictDataService.validateDictTypeExists(dictType), DICT_TYPE_NOT_ENABLE); | |
| 189 | 221 | } |
| 190 | 222 | |
| 191 | 223 | @Test |
| 192 | - public void testCheckDictDataValueUnique_success() { | |
| 224 | + public void testValidateDictDataValueUnique_success() { | |
| 193 | 225 | // 调用,成功 |
| 194 | - dictDataService.checkDictDataValueUnique(randomLongId(), randomString(), randomString()); | |
| 226 | + dictDataService.validateDictDataValueUnique(randomLongId(), randomString(), randomString()); | |
| 195 | 227 | } |
| 196 | 228 | |
| 197 | 229 | @Test |
| 198 | - public void testCheckDictDataValueUnique_valueDuplicateForCreate() { | |
| 230 | + public void testValidateDictDataValueUnique_valueDuplicateForCreate() { | |
| 199 | 231 | // 准备参数 |
| 200 | 232 | String dictType = randomString(); |
| 201 | 233 | String value = randomString(); |
| ... | ... | @@ -206,12 +238,12 @@ public class DictDataServiceTest extends BaseDbUnitTest { |
| 206 | 238 | })); |
| 207 | 239 | |
| 208 | 240 | // 调用,校验异常 |
| 209 | - assertServiceException(() -> dictDataService.checkDictDataValueUnique(null, dictType, value), | |
| 241 | + assertServiceException(() -> dictDataService.validateDictDataValueUnique(null, dictType, value), | |
| 210 | 242 | DICT_DATA_VALUE_DUPLICATE); |
| 211 | 243 | } |
| 212 | 244 | |
| 213 | 245 | @Test |
| 214 | - public void testCheckDictDataValueUnique_valueDuplicateForUpdate() { | |
| 246 | + public void testValidateDictDataValueUnique_valueDuplicateForUpdate() { | |
| 215 | 247 | // 准备参数 |
| 216 | 248 | Long id = randomLongId(); |
| 217 | 249 | String dictType = randomString(); |
| ... | ... | @@ -223,10 +255,96 @@ public class DictDataServiceTest extends BaseDbUnitTest { |
| 223 | 255 | })); |
| 224 | 256 | |
| 225 | 257 | // 调用,校验异常 |
| 226 | - assertServiceException(() -> dictDataService.checkDictDataValueUnique(id, dictType, value), | |
| 258 | + assertServiceException(() -> dictDataService.validateDictDataValueUnique(id, dictType, value), | |
| 227 | 259 | DICT_DATA_VALUE_DUPLICATE); |
| 228 | 260 | } |
| 229 | 261 | |
| 262 | + @Test | |
| 263 | + public void testCountByDictType() { | |
| 264 | + // mock 数据 | |
| 265 | + dictDataMapper.insert(randomDictDataDO(o -> o.setDictType("yunai"))); | |
| 266 | + dictDataMapper.insert(randomDictDataDO(o -> o.setDictType("tudou"))); | |
| 267 | + dictDataMapper.insert(randomDictDataDO(o -> o.setDictType("yunai"))); | |
| 268 | + // 准备参数 | |
| 269 | + String dictType = "yunai"; | |
| 270 | + | |
| 271 | + // 调用 | |
| 272 | + long count = dictDataService.countByDictType(dictType); | |
| 273 | + // 校验 | |
| 274 | + assertEquals(2L, count); | |
| 275 | + } | |
| 276 | + | |
| 277 | + @Test | |
| 278 | + public void testValidateDictDataList_success() { | |
| 279 | + // mock 数据 | |
| 280 | + DictDataDO dictDataDO = randomDictDataDO().setStatus(CommonStatusEnum.ENABLE.getStatus()); | |
| 281 | + dictDataMapper.insert(dictDataDO); | |
| 282 | + // 准备参数 | |
| 283 | + String dictType = dictDataDO.getDictType(); | |
| 284 | + List<String> values = singletonList(dictDataDO.getValue()); | |
| 285 | + | |
| 286 | + // 调用,无需断言 | |
| 287 | + dictDataService.validateDictDataList(dictType, values); | |
| 288 | + } | |
| 289 | + | |
| 290 | + @Test | |
| 291 | + public void testValidateDictDataList_notFound() { | |
| 292 | + // 准备参数 | |
| 293 | + String dictType = randomString(); | |
| 294 | + List<String> values = singletonList(randomString()); | |
| 295 | + | |
| 296 | + // 调用, 并断言异常 | |
| 297 | + assertServiceException(() -> dictDataService.validateDictDataList(dictType, values), DICT_DATA_NOT_EXISTS); | |
| 298 | + } | |
| 299 | + | |
| 300 | + @Test | |
| 301 | + public void testValidateDictDataList_notEnable() { | |
| 302 | + // mock 数据 | |
| 303 | + DictDataDO dictDataDO = randomDictDataDO().setStatus(CommonStatusEnum.DISABLE.getStatus()); | |
| 304 | + dictDataMapper.insert(dictDataDO); | |
| 305 | + // 准备参数 | |
| 306 | + String dictType = dictDataDO.getDictType(); | |
| 307 | + List<String> values = singletonList(dictDataDO.getValue()); | |
| 308 | + | |
| 309 | + // 调用, 并断言异常 | |
| 310 | + assertServiceException(() -> dictDataService.validateDictDataList(dictType, values), | |
| 311 | + DICT_DATA_NOT_ENABLE, dictDataDO.getLabel()); | |
| 312 | + } | |
| 313 | + | |
| 314 | + @Test | |
| 315 | + public void testGetDictData_dictType() { | |
| 316 | + // mock 数据 | |
| 317 | + DictDataDO dictDataDO = randomDictDataDO().setDictType("yunai").setValue("1"); | |
| 318 | + dictDataMapper.insert(dictDataDO); | |
| 319 | + DictDataDO dictDataDO02 = randomDictDataDO().setDictType("yunai").setValue("2"); | |
| 320 | + dictDataMapper.insert(dictDataDO02); | |
| 321 | + // 准备参数 | |
| 322 | + String dictType = "yunai"; | |
| 323 | + String value = "1"; | |
| 324 | + | |
| 325 | + // 调用 | |
| 326 | + DictDataDO dbDictData = dictDataService.getDictData(dictType, value); | |
| 327 | + // 断言 | |
| 328 | + assertEquals(dictDataDO, dbDictData); | |
| 329 | + } | |
| 330 | + | |
| 331 | + @Test | |
| 332 | + public void testParseDictData() { | |
| 333 | + // mock 数据 | |
| 334 | + DictDataDO dictDataDO = randomDictDataDO().setDictType("yunai").setLabel("1"); | |
| 335 | + dictDataMapper.insert(dictDataDO); | |
| 336 | + DictDataDO dictDataDO02 = randomDictDataDO().setDictType("yunai").setLabel("2"); | |
| 337 | + dictDataMapper.insert(dictDataDO02); | |
| 338 | + // 准备参数 | |
| 339 | + String dictType = "yunai"; | |
| 340 | + String label = "1"; | |
| 341 | + | |
| 342 | + // 调用 | |
| 343 | + DictDataDO dbDictData = dictDataService.parseDictData(dictType, label); | |
| 344 | + // 断言 | |
| 345 | + assertEquals(dictDataDO, dbDictData); | |
| 346 | + } | |
| 347 | + | |
| 230 | 348 | // ========== 随机对象 ========== |
| 231 | 349 | |
| 232 | 350 | @SafeVarargs | ... | ... |