|
@@ -0,0 +1,212 @@
|
|
|
+package com.citu.module.menduner.system.service.talent;
|
|
|
+
|
|
|
+
|
|
|
+import com.citu.framework.common.pojo.PageResult;
|
|
|
+import com.citu.framework.test.core.ut.BaseDbUnitTest;
|
|
|
+import com.citu.module.menduner.system.controller.base.talent.info.TalentMapInfoPageReqVO;
|
|
|
+import com.citu.module.menduner.system.controller.base.talent.info.TalentMapInfoSaveReqVO;
|
|
|
+import com.citu.module.menduner.system.dal.dataobject.talent.TalentMapInfoDO;
|
|
|
+import com.citu.module.menduner.system.dal.mysql.talent.TalentMapInfoMapper;
|
|
|
+import org.junit.jupiter.api.Disabled;
|
|
|
+import org.junit.jupiter.api.Test;
|
|
|
+import org.springframework.context.annotation.Import;
|
|
|
+
|
|
|
+import javax.annotation.Resource;
|
|
|
+
|
|
|
+import static com.citu.framework.common.util.date.LocalDateTimeUtils.buildBetweenTime;
|
|
|
+import static com.citu.framework.common.util.object.ObjectUtils.cloneIgnoreId;
|
|
|
+import static com.citu.framework.test.core.util.AssertUtils.assertPojoEquals;
|
|
|
+import static com.citu.framework.test.core.util.AssertUtils.assertServiceException;
|
|
|
+import static com.citu.framework.test.core.util.RandomUtils.randomLongId;
|
|
|
+import static com.citu.framework.test.core.util.RandomUtils.randomPojo;
|
|
|
+import static com.citu.module.menduner.system.enums.ErrorCodeConstants.TALENT_MAP_INFO_NOT_EXISTS;
|
|
|
+import static org.junit.jupiter.api.Assertions.*;
|
|
|
+
|
|
|
+/**
|
|
|
+ * {@link TalentMapInfoServiceImpl} 的单元测试类
|
|
|
+ *
|
|
|
+ * @author Rayson
|
|
|
+ */
|
|
|
+@Import(TalentMapInfoServiceImpl.class)
|
|
|
+public class TalentMapInfoServiceImplTest extends BaseDbUnitTest {
|
|
|
+
|
|
|
+ @Resource
|
|
|
+ private TalentMapInfoServiceImpl talentMapInfoService;
|
|
|
+
|
|
|
+ @Resource
|
|
|
+ private TalentMapInfoMapper talentMapInfoMapper;
|
|
|
+
|
|
|
+ @Test
|
|
|
+ public void testCreateTalentMapInfo_success() {
|
|
|
+ // 准备参数
|
|
|
+ TalentMapInfoSaveReqVO createReqVO = randomPojo(TalentMapInfoSaveReqVO.class).setId(null);
|
|
|
+
|
|
|
+ // 调用
|
|
|
+ Long talentMapInfoId = talentMapInfoService.createTalentMapInfo(createReqVO);
|
|
|
+ // 断言
|
|
|
+ assertNotNull(talentMapInfoId);
|
|
|
+ // 校验记录的属性是否正确
|
|
|
+ TalentMapInfoDO talentMapInfo = talentMapInfoMapper.selectById(talentMapInfoId);
|
|
|
+ assertPojoEquals(createReqVO, talentMapInfo, "id");
|
|
|
+ }
|
|
|
+
|
|
|
+ @Test
|
|
|
+ public void testUpdateTalentMapInfo_success() {
|
|
|
+ // mock 数据
|
|
|
+ TalentMapInfoDO dbTalentMapInfo = randomPojo(TalentMapInfoDO.class);
|
|
|
+ talentMapInfoMapper.insert(dbTalentMapInfo);// @Sql: 先插入出一条存在的数据
|
|
|
+ // 准备参数
|
|
|
+ TalentMapInfoSaveReqVO updateReqVO = randomPojo(TalentMapInfoSaveReqVO.class, o -> {
|
|
|
+ o.setId(dbTalentMapInfo.getId()); // 设置更新的 ID
|
|
|
+ });
|
|
|
+
|
|
|
+ // 调用
|
|
|
+ talentMapInfoService.updateTalentMapInfo(updateReqVO);
|
|
|
+ // 校验是否更新正确
|
|
|
+ TalentMapInfoDO talentMapInfo = talentMapInfoMapper.selectById(updateReqVO.getId()); // 获取最新的
|
|
|
+ assertPojoEquals(updateReqVO, talentMapInfo);
|
|
|
+ }
|
|
|
+
|
|
|
+ @Test
|
|
|
+ public void testUpdateTalentMapInfo_notExists() {
|
|
|
+ // 准备参数
|
|
|
+ TalentMapInfoSaveReqVO updateReqVO = randomPojo(TalentMapInfoSaveReqVO.class);
|
|
|
+
|
|
|
+ // 调用, 并断言异常
|
|
|
+ assertServiceException(() -> talentMapInfoService.updateTalentMapInfo(updateReqVO), TALENT_MAP_INFO_NOT_EXISTS);
|
|
|
+ }
|
|
|
+
|
|
|
+ @Test
|
|
|
+ public void testDeleteTalentMapInfo_success() {
|
|
|
+ // mock 数据
|
|
|
+ TalentMapInfoDO dbTalentMapInfo = randomPojo(TalentMapInfoDO.class);
|
|
|
+ talentMapInfoMapper.insert(dbTalentMapInfo);// @Sql: 先插入出一条存在的数据
|
|
|
+ // 准备参数
|
|
|
+ Long id = dbTalentMapInfo.getId();
|
|
|
+
|
|
|
+ // 调用
|
|
|
+ talentMapInfoService.deleteTalentMapInfo(id);
|
|
|
+ // 校验数据不存在了
|
|
|
+ assertNull(talentMapInfoMapper.selectById(id));
|
|
|
+ }
|
|
|
+
|
|
|
+ @Test
|
|
|
+ public void testDeleteTalentMapInfo_notExists() {
|
|
|
+ // 准备参数
|
|
|
+ Long id = randomLongId();
|
|
|
+
|
|
|
+ // 调用, 并断言异常
|
|
|
+ assertServiceException(() -> talentMapInfoService.deleteTalentMapInfo(id), TALENT_MAP_INFO_NOT_EXISTS);
|
|
|
+ }
|
|
|
+
|
|
|
+ @Test
|
|
|
+ @Disabled // TODO 请修改 null 为需要的值,然后删除 @Disabled 注解
|
|
|
+ public void testGetTalentMapInfoPage() {
|
|
|
+ // mock 数据
|
|
|
+ TalentMapInfoDO dbTalentMapInfo = randomPojo(TalentMapInfoDO.class, o -> { // 等会查询到
|
|
|
+ o.setUserId(null);
|
|
|
+ o.setName(null);
|
|
|
+ o.setForeignName(null);
|
|
|
+ o.setSex(null);
|
|
|
+ o.setPhone(null);
|
|
|
+ o.setEmail(null);
|
|
|
+ o.setWxCode(null);
|
|
|
+ o.setPartyMember(null);
|
|
|
+ o.setNationality(null);
|
|
|
+ o.setMaritalStatus(null);
|
|
|
+ o.setAreaId(null);
|
|
|
+ o.setAreaStr(null);
|
|
|
+ o.setRegId(null);
|
|
|
+ o.setRegStr(null);
|
|
|
+ o.setJobType(null);
|
|
|
+ o.setJobStatus(null);
|
|
|
+ o.setFirstWorkTime(null);
|
|
|
+ o.setExpType(null);
|
|
|
+ o.setEduType(null);
|
|
|
+ o.setPrepareExp(null);
|
|
|
+ o.setSpouseHometownId(null);
|
|
|
+ o.setSpouseHometownStr(null);
|
|
|
+ o.setCreateTime(null);
|
|
|
+ });
|
|
|
+ talentMapInfoMapper.insert(dbTalentMapInfo);
|
|
|
+ // 测试 userId 不匹配
|
|
|
+ talentMapInfoMapper.insert(cloneIgnoreId(dbTalentMapInfo, o -> o.setUserId(null)));
|
|
|
+ // 测试 name 不匹配
|
|
|
+ talentMapInfoMapper.insert(cloneIgnoreId(dbTalentMapInfo, o -> o.setName(null)));
|
|
|
+ // 测试 foreignName 不匹配
|
|
|
+ talentMapInfoMapper.insert(cloneIgnoreId(dbTalentMapInfo, o -> o.setForeignName(null)));
|
|
|
+ // 测试 sex 不匹配
|
|
|
+ talentMapInfoMapper.insert(cloneIgnoreId(dbTalentMapInfo, o -> o.setSex(null)));
|
|
|
+ // 测试 phone 不匹配
|
|
|
+ talentMapInfoMapper.insert(cloneIgnoreId(dbTalentMapInfo, o -> o.setPhone(null)));
|
|
|
+ // 测试 email 不匹配
|
|
|
+ talentMapInfoMapper.insert(cloneIgnoreId(dbTalentMapInfo, o -> o.setEmail(null)));
|
|
|
+ // 测试 wxCode 不匹配
|
|
|
+ talentMapInfoMapper.insert(cloneIgnoreId(dbTalentMapInfo, o -> o.setWxCode(null)));
|
|
|
+ // 测试 partyMember 不匹配
|
|
|
+ talentMapInfoMapper.insert(cloneIgnoreId(dbTalentMapInfo, o -> o.setPartyMember(null)));
|
|
|
+ // 测试 nationality 不匹配
|
|
|
+ talentMapInfoMapper.insert(cloneIgnoreId(dbTalentMapInfo, o -> o.setNationality(null)));
|
|
|
+ // 测试 maritalStatus 不匹配
|
|
|
+ talentMapInfoMapper.insert(cloneIgnoreId(dbTalentMapInfo, o -> o.setMaritalStatus(null)));
|
|
|
+ // 测试 areaId 不匹配
|
|
|
+ talentMapInfoMapper.insert(cloneIgnoreId(dbTalentMapInfo, o -> o.setAreaId(null)));
|
|
|
+ // 测试 areaStr 不匹配
|
|
|
+ talentMapInfoMapper.insert(cloneIgnoreId(dbTalentMapInfo, o -> o.setAreaStr(null)));
|
|
|
+ // 测试 regId 不匹配
|
|
|
+ talentMapInfoMapper.insert(cloneIgnoreId(dbTalentMapInfo, o -> o.setRegId(null)));
|
|
|
+ // 测试 regStr 不匹配
|
|
|
+ talentMapInfoMapper.insert(cloneIgnoreId(dbTalentMapInfo, o -> o.setRegStr(null)));
|
|
|
+ // 测试 jobType 不匹配
|
|
|
+ talentMapInfoMapper.insert(cloneIgnoreId(dbTalentMapInfo, o -> o.setJobType(null)));
|
|
|
+ // 测试 jobStatus 不匹配
|
|
|
+ talentMapInfoMapper.insert(cloneIgnoreId(dbTalentMapInfo, o -> o.setJobStatus(null)));
|
|
|
+ // 测试 firstWorkTime 不匹配
|
|
|
+ talentMapInfoMapper.insert(cloneIgnoreId(dbTalentMapInfo, o -> o.setFirstWorkTime(null)));
|
|
|
+ // 测试 expType 不匹配
|
|
|
+ talentMapInfoMapper.insert(cloneIgnoreId(dbTalentMapInfo, o -> o.setExpType(null)));
|
|
|
+ // 测试 eduType 不匹配
|
|
|
+ talentMapInfoMapper.insert(cloneIgnoreId(dbTalentMapInfo, o -> o.setEduType(null)));
|
|
|
+ // 测试 prepareExp 不匹配
|
|
|
+ talentMapInfoMapper.insert(cloneIgnoreId(dbTalentMapInfo, o -> o.setPrepareExp(null)));
|
|
|
+ // 测试 spouseHometownId 不匹配
|
|
|
+ talentMapInfoMapper.insert(cloneIgnoreId(dbTalentMapInfo, o -> o.setSpouseHometownId(null)));
|
|
|
+ // 测试 spouseHometownStr 不匹配
|
|
|
+ talentMapInfoMapper.insert(cloneIgnoreId(dbTalentMapInfo, o -> o.setSpouseHometownStr(null)));
|
|
|
+ // 测试 createTime 不匹配
|
|
|
+ talentMapInfoMapper.insert(cloneIgnoreId(dbTalentMapInfo, o -> o.setCreateTime(null)));
|
|
|
+ // 准备参数
|
|
|
+ TalentMapInfoPageReqVO reqVO = new TalentMapInfoPageReqVO();
|
|
|
+ reqVO.setUserId(null);
|
|
|
+ reqVO.setName(null);
|
|
|
+ reqVO.setForeignName(null);
|
|
|
+ reqVO.setSex(null);
|
|
|
+ reqVO.setPhone(null);
|
|
|
+ reqVO.setEmail(null);
|
|
|
+ reqVO.setWxCode(null);
|
|
|
+ reqVO.setPartyMember(null);
|
|
|
+ reqVO.setNationality(null);
|
|
|
+ reqVO.setMaritalStatus(null);
|
|
|
+ reqVO.setAreaId(null);
|
|
|
+ reqVO.setAreaStr(null);
|
|
|
+ reqVO.setRegId(null);
|
|
|
+ reqVO.setRegStr(null);
|
|
|
+ reqVO.setJobType(null);
|
|
|
+ reqVO.setJobStatus(null);
|
|
|
+ reqVO.setFirstWorkTime(buildBetweenTime(2023, 2, 1, 2023, 2, 28));
|
|
|
+ reqVO.setExpType(null);
|
|
|
+ reqVO.setEduType(null);
|
|
|
+ reqVO.setPrepareExp(null);
|
|
|
+ reqVO.setSpouseHometownId(null);
|
|
|
+ reqVO.setSpouseHometownStr(null);
|
|
|
+ reqVO.setCreateTime(buildBetweenTime(2023, 2, 1, 2023, 2, 28));
|
|
|
+
|
|
|
+ // 调用
|
|
|
+ PageResult<TalentMapInfoDO> pageResult = talentMapInfoService.getTalentMapInfoPage(reqVO);
|
|
|
+ // 断言
|
|
|
+ assertEquals(1, pageResult.getTotal());
|
|
|
+ assertEquals(1, pageResult.getList().size());
|
|
|
+ assertPojoEquals(dbTalentMapInfo, pageResult.getList().get(0));
|
|
|
+ }
|
|
|
+
|
|
|
+}
|