| | |
| | | package cn.lihu.jh.module.ecg.service.appointment; |
| | | |
| | | import org.junit.jupiter.api.Disabled; |
| | | import org.junit.jupiter.api.Test; |
| | | import org.springframework.boot.test.mock.mockito.MockBean; |
| | | |
| | | import jakarta.annotation.Resource; |
| | | |
| | | import cn.lihu.jh.framework.test.core.ut.BaseDbUnitTest; |
| | | |
| | | import cn.lihu.jh.module.ecg.controller.admin.appointment.vo.*; |
| | | import cn.lihu.jh.module.ecg.dal.dataobject.appointment.AppointmentDO; |
| | | import cn.lihu.jh.module.ecg.dal.mysql.appointment.AppointmentMapper; |
| | | import cn.lihu.jh.framework.common.pojo.PageResult; |
| | | |
| | | import jakarta.annotation.Resource; |
| | | import org.springframework.context.annotation.Import; |
| | | import java.util.*; |
| | | import java.time.LocalDateTime; |
| | | |
| | | import static cn.hutool.core.util.RandomUtil.*; |
| | | import static cn.lihu.jh.module.ecg.enums.ErrorCodeConstants.*; |
| | | import static cn.lihu.jh.framework.test.core.util.AssertUtils.*; |
| | | import static cn.lihu.jh.framework.test.core.util.RandomUtils.*; |
| | | import static cn.lihu.jh.framework.common.util.date.LocalDateTimeUtils.*; |
| | | import static cn.lihu.jh.framework.common.util.object.ObjectUtils.*; |
| | | import static cn.lihu.jh.framework.common.util.date.DateUtils.*; |
| | | import static org.junit.jupiter.api.Assertions.*; |
| | | import static org.mockito.Mockito.*; |
| | | |
| | | /** |
| | | * {@link AppointmentServiceImpl} 的单元测试类 |
| | | * |
| | | * @author 马剑波 |
| | | */ |
| | | @Import(AppointmentServiceImpl.class) |
| | | public class AppointmentServiceImplTest extends BaseDbUnitTest { |
| | | |
| | | @Resource |
| | | private AppointmentServiceImpl appointmentService; |
| | | |
| | | @Resource |
| | | private AppointmentMapper appointmentMapper; |
| | | |
| | | @Test |
| | | public void testCreateAppointment_success() { |
| | | // 准备参数 |
| | | AppointmentSaveReqVO createReqVO = randomPojo(AppointmentSaveReqVO.class).setId(null); |
| | | |
| | | // 调用 |
| | | Integer appointmentId = appointmentService.createAppointment(createReqVO); |
| | | // 断言 |
| | | assertNotNull(appointmentId); |
| | | // 校验记录的属性是否正确 |
| | | AppointmentDO appointment = appointmentMapper.selectById(appointmentId); |
| | | assertPojoEquals(createReqVO, appointment, "id"); |
| | | } |
| | | |
| | | @Test |
| | | public void testUpdateAppointment_success() { |
| | | // mock 数据 |
| | | AppointmentDO dbAppointment = randomPojo(AppointmentDO.class); |
| | | appointmentMapper.insert(dbAppointment);// @Sql: 先插入出一条存在的数据 |
| | | // 准备参数 |
| | | AppointmentSaveReqVO updateReqVO = randomPojo(AppointmentSaveReqVO.class, o -> { |
| | | o.setId(dbAppointment.getId()); // 设置更新的 ID |
| | | }); |
| | | |
| | | // 调用 |
| | | appointmentService.updateAppointment(updateReqVO); |
| | | // 校验是否更新正确 |
| | | AppointmentDO appointment = appointmentMapper.selectById(updateReqVO.getId()); // 获取最新的 |
| | | assertPojoEquals(updateReqVO, appointment); |
| | | } |
| | | |
| | | @Test |
| | | public void testUpdateAppointment_notExists() { |
| | | // 准备参数 |
| | | AppointmentSaveReqVO updateReqVO = randomPojo(AppointmentSaveReqVO.class); |
| | | |
| | | // 调用, 并断言异常 |
| | | assertServiceException(() -> appointmentService.updateAppointment(updateReqVO), APPOINTMENT_NOT_EXISTS); |
| | | } |
| | | |
| | | @Test |
| | | public void testDeleteAppointment_success() { |
| | | // mock 数据 |
| | | AppointmentDO dbAppointment = randomPojo(AppointmentDO.class); |
| | | appointmentMapper.insert(dbAppointment);// @Sql: 先插入出一条存在的数据 |
| | | // 准备参数 |
| | | Integer id = dbAppointment.getId(); |
| | | |
| | | // 调用 |
| | | appointmentService.deleteAppointment(id); |
| | | // 校验数据不存在了 |
| | | assertNull(appointmentMapper.selectById(id)); |
| | | } |
| | | |
| | | @Test |
| | | public void testDeleteAppointment_notExists() { |
| | | // 准备参数 |
| | | Integer id = randomIntegerId(); |
| | | |
| | | // 调用, 并断言异常 |
| | | assertServiceException(() -> appointmentService.deleteAppointment(id), APPOINTMENT_NOT_EXISTS); |
| | | } |
| | | |
| | | @Test |
| | | @Disabled // TODO 请修改 null 为需要的值,然后删除 @Disabled 注解 |
| | | public void testGetAppointmentPage() { |
| | | // mock 数据 |
| | | AppointmentDO dbAppointment = randomPojo(AppointmentDO.class, o -> { // 等会查询到 |
| | | o.setPatId(null); |
| | | o.setPatName(null); |
| | | o.setPatGender(null); |
| | | o.setPatBirthday(null); |
| | | o.setPatMobile(null); |
| | | o.setPatPhone(null); |
| | | o.setPatIdentityId(null); |
| | | o.setPatAddr(null); |
| | | o.setPatDeptCode(null); |
| | | o.setPatDeptDesc(null); |
| | | o.setPatWardCode(null); |
| | | o.setPatWardDesc(null); |
| | | o.setPatBedNo(null); |
| | | o.setBookId(null); |
| | | o.setBookPeriodStart(null); |
| | | o.setBookPeriodEnd(null); |
| | | o.setBookTime(null); |
| | | o.setBookCheckType(null); |
| | | o.setBookSrc(null); |
| | | }); |
| | | appointmentMapper.insert(dbAppointment); |
| | | // 测试 patId 不匹配 |
| | | appointmentMapper.insert(cloneIgnoreId(dbAppointment, o -> o.setPatId(null))); |
| | | // 测试 patName 不匹配 |
| | | appointmentMapper.insert(cloneIgnoreId(dbAppointment, o -> o.setPatName(null))); |
| | | // 测试 patGender 不匹配 |
| | | appointmentMapper.insert(cloneIgnoreId(dbAppointment, o -> o.setPatGender(null))); |
| | | // 测试 patBirthday 不匹配 |
| | | appointmentMapper.insert(cloneIgnoreId(dbAppointment, o -> o.setPatBirthday(null))); |
| | | // 测试 patMobile 不匹配 |
| | | appointmentMapper.insert(cloneIgnoreId(dbAppointment, o -> o.setPatMobile(null))); |
| | | // 测试 patPhone 不匹配 |
| | | appointmentMapper.insert(cloneIgnoreId(dbAppointment, o -> o.setPatPhone(null))); |
| | | // 测试 patIdentityId 不匹配 |
| | | appointmentMapper.insert(cloneIgnoreId(dbAppointment, o -> o.setPatIdentityId(null))); |
| | | // 测试 patAddr 不匹配 |
| | | appointmentMapper.insert(cloneIgnoreId(dbAppointment, o -> o.setPatAddr(null))); |
| | | // 测试 patDeptCode 不匹配 |
| | | appointmentMapper.insert(cloneIgnoreId(dbAppointment, o -> o.setPatDeptCode(null))); |
| | | // 测试 patDeptDesc 不匹配 |
| | | appointmentMapper.insert(cloneIgnoreId(dbAppointment, o -> o.setPatDeptDesc(null))); |
| | | // 测试 patWardCode 不匹配 |
| | | appointmentMapper.insert(cloneIgnoreId(dbAppointment, o -> o.setPatWardCode(null))); |
| | | // 测试 patWardDesc 不匹配 |
| | | appointmentMapper.insert(cloneIgnoreId(dbAppointment, o -> o.setPatWardDesc(null))); |
| | | // 测试 patBedNo 不匹配 |
| | | appointmentMapper.insert(cloneIgnoreId(dbAppointment, o -> o.setPatBedNo(null))); |
| | | // 测试 bookId 不匹配 |
| | | appointmentMapper.insert(cloneIgnoreId(dbAppointment, o -> o.setBookId(null))); |
| | | // 测试 bookPeriodStart 不匹配 |
| | | appointmentMapper.insert(cloneIgnoreId(dbAppointment, o -> o.setBookPeriodStart(null))); |
| | | // 测试 bookPeriodEnd 不匹配 |
| | | appointmentMapper.insert(cloneIgnoreId(dbAppointment, o -> o.setBookPeriodEnd(null))); |
| | | // 测试 bookTime 不匹配 |
| | | appointmentMapper.insert(cloneIgnoreId(dbAppointment, o -> o.setBookTime(null))); |
| | | // 测试 bookCheckType 不匹配 |
| | | appointmentMapper.insert(cloneIgnoreId(dbAppointment, o -> o.setBookCheckType(null))); |
| | | // 测试 bookSrc 不匹配 |
| | | appointmentMapper.insert(cloneIgnoreId(dbAppointment, o -> o.setBookSrc(null))); |
| | | // 准备参数 |
| | | AppointmentPageReqVO reqVO = new AppointmentPageReqVO(); |
| | | reqVO.setPatId(null); |
| | | reqVO.setPatName(null); |
| | | reqVO.setPatGender(null); |
| | | reqVO.setPatBirthday(null); |
| | | reqVO.setPatMobile(null); |
| | | reqVO.setPatPhone(null); |
| | | reqVO.setPatIdentityId(null); |
| | | reqVO.setPatAddr(null); |
| | | reqVO.setPatDeptCode(null); |
| | | reqVO.setPatDeptDesc(null); |
| | | reqVO.setPatWardCode(null); |
| | | reqVO.setPatWardDesc(null); |
| | | reqVO.setPatBedNo(null); |
| | | reqVO.setBookId(null); |
| | | reqVO.setBookPeriodStart(null); |
| | | reqVO.setBookPeriodEnd(null); |
| | | reqVO.setBookTime(buildBetweenTime(2023, 2, 1, 2023, 2, 28)); |
| | | reqVO.setBookCheckType(null); |
| | | reqVO.setBookSrc(null); |
| | | |
| | | // 调用 |
| | | PageResult<AppointmentDO> pageResult = appointmentService.getAppointmentPage(reqVO); |
| | | // 断言 |
| | | assertEquals(1, pageResult.getTotal()); |
| | | assertEquals(1, pageResult.getList().size()); |
| | | assertPojoEquals(dbAppointment, pageResult.getList().get(0)); |
| | | } |
| | | |
| | | } |
| | | //package cn.lihu.jh.module.ecg.service.appointment; |
| | | // |
| | | //import org.junit.jupiter.api.Disabled; |
| | | //import org.junit.jupiter.api.Test; |
| | | //import org.springframework.boot.test.mock.mockito.MockBean; |
| | | // |
| | | //import jakarta.annotation.Resource; |
| | | // |
| | | //import cn.lihu.jh.framework.test.core.ut.BaseDbUnitTest; |
| | | // |
| | | //import cn.lihu.jh.module.ecg.controller.admin.appointment.vo.*; |
| | | //import cn.lihu.jh.module.ecg.dal.dataobject.appointment.AppointmentDO; |
| | | //import cn.lihu.jh.module.ecg.dal.mysql.appointment.AppointmentMapper; |
| | | //import cn.lihu.jh.framework.common.pojo.PageResult; |
| | | // |
| | | //import jakarta.annotation.Resource; |
| | | //import org.springframework.context.annotation.Import; |
| | | //import java.util.*; |
| | | //import java.time.LocalDateTime; |
| | | // |
| | | //import static cn.hutool.core.util.RandomUtil.*; |
| | | //import static cn.lihu.jh.module.ecg.enums.ErrorCodeConstants.*; |
| | | //import static cn.lihu.jh.framework.test.core.util.AssertUtils.*; |
| | | //import static cn.lihu.jh.framework.test.core.util.RandomUtils.*; |
| | | //import static cn.lihu.jh.framework.common.util.date.LocalDateTimeUtils.*; |
| | | //import static cn.lihu.jh.framework.common.util.object.ObjectUtils.*; |
| | | //import static cn.lihu.jh.framework.common.util.date.DateUtils.*; |
| | | //import static org.junit.jupiter.api.Assertions.*; |
| | | //import static org.mockito.Mockito.*; |
| | | // |
| | | ///** |
| | | // * {@link AppointmentServiceImpl} 的单元测试类 |
| | | // * |
| | | // * @author 马剑波 |
| | | // */ |
| | | //@Import(AppointmentServiceImpl.class) |
| | | //public class AppointmentServiceImplTest extends BaseDbUnitTest { |
| | | // |
| | | // @Resource |
| | | // private AppointmentServiceImpl appointmentService; |
| | | // |
| | | // @Resource |
| | | // private AppointmentMapper appointmentMapper; |
| | | // |
| | | // @Test |
| | | // public void testCreateAppointment_success() { |
| | | // // 准备参数 |
| | | // AppointmentSaveReqVO createReqVO = randomPojo(AppointmentSaveReqVO.class).setId(null); |
| | | // |
| | | // // 调用 |
| | | // Integer appointmentId = appointmentService.createAppointment(createReqVO); |
| | | // // 断言 |
| | | // assertNotNull(appointmentId); |
| | | // // 校验记录的属性是否正确 |
| | | // AppointmentDO appointment = appointmentMapper.selectById(appointmentId); |
| | | // assertPojoEquals(createReqVO, appointment, "id"); |
| | | // } |
| | | // |
| | | // @Test |
| | | // public void testUpdateAppointment_success() { |
| | | // // mock 数据 |
| | | // AppointmentDO dbAppointment = randomPojo(AppointmentDO.class); |
| | | // appointmentMapper.insert(dbAppointment);// @Sql: 先插入出一条存在的数据 |
| | | // // 准备参数 |
| | | // AppointmentSaveReqVO updateReqVO = randomPojo(AppointmentSaveReqVO.class, o -> { |
| | | // o.setId(dbAppointment.getId()); // 设置更新的 ID |
| | | // }); |
| | | // |
| | | // // 调用 |
| | | // appointmentService.updateAppointment(updateReqVO); |
| | | // // 校验是否更新正确 |
| | | // AppointmentDO appointment = appointmentMapper.selectById(updateReqVO.getId()); // 获取最新的 |
| | | // assertPojoEquals(updateReqVO, appointment); |
| | | // } |
| | | // |
| | | // @Test |
| | | // public void testUpdateAppointment_notExists() { |
| | | // // 准备参数 |
| | | // AppointmentSaveReqVO updateReqVO = randomPojo(AppointmentSaveReqVO.class); |
| | | // |
| | | // // 调用, 并断言异常 |
| | | // assertServiceException(() -> appointmentService.updateAppointment(updateReqVO), APPOINTMENT_NOT_EXISTS); |
| | | // } |
| | | // |
| | | // @Test |
| | | // public void testDeleteAppointment_success() { |
| | | // // mock 数据 |
| | | // AppointmentDO dbAppointment = randomPojo(AppointmentDO.class); |
| | | // appointmentMapper.insert(dbAppointment);// @Sql: 先插入出一条存在的数据 |
| | | // // 准备参数 |
| | | // Integer id = dbAppointment.getId(); |
| | | // |
| | | // // 调用 |
| | | // appointmentService.deleteAppointment(id); |
| | | // // 校验数据不存在了 |
| | | // assertNull(appointmentMapper.selectById(id)); |
| | | // } |
| | | // |
| | | // @Test |
| | | // public void testDeleteAppointment_notExists() { |
| | | // // 准备参数 |
| | | // Integer id = randomIntegerId(); |
| | | // |
| | | // // 调用, 并断言异常 |
| | | // assertServiceException(() -> appointmentService.deleteAppointment(id), APPOINTMENT_NOT_EXISTS); |
| | | // } |
| | | // |
| | | // @Test |
| | | // @Disabled // TODO 请修改 null 为需要的值,然后删除 @Disabled 注解 |
| | | // public void testGetAppointmentPage() { |
| | | // // mock 数据 |
| | | // AppointmentDO dbAppointment = randomPojo(AppointmentDO.class, o -> { // 等会查询到 |
| | | // o.setPatId(null); |
| | | // o.setPatName(null); |
| | | // o.setPatGender(null); |
| | | // o.setPatBirthday(null); |
| | | // o.setPatMobile(null); |
| | | // o.setPatPhone(null); |
| | | // o.setPatIdentityId(null); |
| | | // o.setPatAddr(null); |
| | | // o.setPatDeptCode(null); |
| | | // o.setPatDeptDesc(null); |
| | | // o.setPatWardCode(null); |
| | | // o.setPatWardDesc(null); |
| | | // o.setPatBedNo(null); |
| | | // o.setBookId(null); |
| | | // o.setBookPeriodStart(null); |
| | | // o.setBookPeriodEnd(null); |
| | | // o.setBookTime(null); |
| | | // o.setBookCheckType(null); |
| | | // o.setBookSrc(null); |
| | | // }); |
| | | // appointmentMapper.insert(dbAppointment); |
| | | // // 测试 patId 不匹配 |
| | | // appointmentMapper.insert(cloneIgnoreId(dbAppointment, o -> o.setPatId(null))); |
| | | // // 测试 patName 不匹配 |
| | | // appointmentMapper.insert(cloneIgnoreId(dbAppointment, o -> o.setPatName(null))); |
| | | // // 测试 patGender 不匹配 |
| | | // appointmentMapper.insert(cloneIgnoreId(dbAppointment, o -> o.setPatGender(null))); |
| | | // // 测试 patBirthday 不匹配 |
| | | // appointmentMapper.insert(cloneIgnoreId(dbAppointment, o -> o.setPatBirthday(null))); |
| | | // // 测试 patMobile 不匹配 |
| | | // appointmentMapper.insert(cloneIgnoreId(dbAppointment, o -> o.setPatMobile(null))); |
| | | // // 测试 patPhone 不匹配 |
| | | // appointmentMapper.insert(cloneIgnoreId(dbAppointment, o -> o.setPatPhone(null))); |
| | | // // 测试 patIdentityId 不匹配 |
| | | // appointmentMapper.insert(cloneIgnoreId(dbAppointment, o -> o.setPatIdentityId(null))); |
| | | // // 测试 patAddr 不匹配 |
| | | // appointmentMapper.insert(cloneIgnoreId(dbAppointment, o -> o.setPatAddr(null))); |
| | | // // 测试 patDeptCode 不匹配 |
| | | // appointmentMapper.insert(cloneIgnoreId(dbAppointment, o -> o.setPatDeptCode(null))); |
| | | // // 测试 patDeptDesc 不匹配 |
| | | // appointmentMapper.insert(cloneIgnoreId(dbAppointment, o -> o.setPatDeptDesc(null))); |
| | | // // 测试 patWardCode 不匹配 |
| | | // appointmentMapper.insert(cloneIgnoreId(dbAppointment, o -> o.setPatWardCode(null))); |
| | | // // 测试 patWardDesc 不匹配 |
| | | // appointmentMapper.insert(cloneIgnoreId(dbAppointment, o -> o.setPatWardDesc(null))); |
| | | // // 测试 patBedNo 不匹配 |
| | | // appointmentMapper.insert(cloneIgnoreId(dbAppointment, o -> o.setPatBedNo(null))); |
| | | // // 测试 bookId 不匹配 |
| | | // appointmentMapper.insert(cloneIgnoreId(dbAppointment, o -> o.setBookId(null))); |
| | | // // 测试 bookPeriodStart 不匹配 |
| | | // appointmentMapper.insert(cloneIgnoreId(dbAppointment, o -> o.setBookPeriodStart(null))); |
| | | // // 测试 bookPeriodEnd 不匹配 |
| | | // appointmentMapper.insert(cloneIgnoreId(dbAppointment, o -> o.setBookPeriodEnd(null))); |
| | | // // 测试 bookTime 不匹配 |
| | | // appointmentMapper.insert(cloneIgnoreId(dbAppointment, o -> o.setBookTime(null))); |
| | | // // 测试 bookCheckType 不匹配 |
| | | // appointmentMapper.insert(cloneIgnoreId(dbAppointment, o -> o.setBookCheckType(null))); |
| | | // // 测试 bookSrc 不匹配 |
| | | // appointmentMapper.insert(cloneIgnoreId(dbAppointment, o -> o.setBookSrc(null))); |
| | | // // 准备参数 |
| | | // AppointmentPageReqVO reqVO = new AppointmentPageReqVO(); |
| | | // reqVO.setPatId(null); |
| | | // reqVO.setPatName(null); |
| | | // reqVO.setPatGender(null); |
| | | // reqVO.setPatBirthday(null); |
| | | // reqVO.setPatMobile(null); |
| | | // reqVO.setPatPhone(null); |
| | | // reqVO.setPatIdentityId(null); |
| | | // reqVO.setPatAddr(null); |
| | | // reqVO.setPatDeptCode(null); |
| | | // reqVO.setPatDeptDesc(null); |
| | | // reqVO.setPatWardCode(null); |
| | | // reqVO.setPatWardDesc(null); |
| | | // reqVO.setPatBedNo(null); |
| | | // reqVO.setBookId(null); |
| | | // reqVO.setBookPeriodStart(null); |
| | | // reqVO.setBookPeriodEnd(null); |
| | | // reqVO.setBookTime(buildBetweenTime(2023, 2, 1, 2023, 2, 28)); |
| | | // reqVO.setBookCheckType(null); |
| | | // reqVO.setBookSrc(null); |
| | | // |
| | | // // 调用 |
| | | // PageResult<AppointmentDO> pageResult = appointmentService.getAppointmentPage(reqVO); |
| | | // // 断言 |
| | | // assertEquals(1, pageResult.getTotal()); |
| | | // assertEquals(1, pageResult.getList().size()); |
| | | // assertPojoEquals(dbAppointment, pageResult.getList().get(0)); |
| | | // } |
| | | // |
| | | //} |