[fix] 优化合同管理功能

This commit is contained in:
wyw
2024-07-23 17:30:02 +08:00
parent 5c4b2e1271
commit c44b48ec3f
28 changed files with 92 additions and 614 deletions

View File

@@ -0,0 +1,26 @@
package cn.iocoder.yudao.module.cms.service.contact;
import cn.iocoder.yudao.framework.test.core.ut.BaseDbUnitTest;
import cn.iocoder.yudao.module.cms.dal.mysql.contract.ContractMapper;
import cn.iocoder.yudao.module.cms.service.contract.ContractService;
import cn.iocoder.yudao.module.cms.service.contract.ContractServiceImpl;
import jakarta.annotation.Resource;
import org.junit.jupiter.api.Test;
import org.springframework.boot.test.context.SpringBootTest;
import org.springframework.context.annotation.Import;
@Import(ContractServiceImpl.class)
@SpringBootTest(classes = ContractServiceImpl.class)
public class ContactServiceTest extends BaseDbUnitTest {
@Resource
private ContractService contractService;
@Resource
private ContractMapper contractMapper;
@Test
public void createContact() {
}
}

View File

@@ -1,146 +0,0 @@
package cn.iocoder.yudao.module.cms.service.customerCompany;
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.iocoder.yudao.framework.test.core.ut.BaseDbUnitTest;
import cn.iocoder.yudao.module.cms.controller.admin.customerCompany.vo.*;
import cn.iocoder.yudao.module.cms.dal.dataobject.customerCompany.CustomerCompanyDO;
import cn.iocoder.yudao.module.cms.dal.mysql.customerCompany.CustomerCompanyMapper;
import cn.iocoder.yudao.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.iocoder.yudao.module.cms.enums.ErrorCodeConstants.*;
import static cn.iocoder.yudao.framework.test.core.util.AssertUtils.*;
import static cn.iocoder.yudao.framework.test.core.util.RandomUtils.*;
import static cn.iocoder.yudao.framework.common.util.date.LocalDateTimeUtils.*;
import static cn.iocoder.yudao.framework.common.util.object.ObjectUtils.*;
import static cn.iocoder.yudao.framework.common.util.date.DateUtils.*;
import static org.junit.jupiter.api.Assertions.*;
import static org.mockito.Mockito.*;
/**
* {@link CustomerCompanyServiceImpl} 的单元测试类
*
* @author hhyykk
*/
@Import(CustomerCompanyServiceImpl.class)
public class CustomerCompanyServiceImplTest extends BaseDbUnitTest {
@Resource
private CustomerCompanyServiceImpl customerCompanyService;
@Resource
private CustomerCompanyMapper customerCompanyMapper;
@Test
public void testCreateCustomerCompany_success() {
// 准备参数
CustomerCompanySaveReqVO createReqVO = randomPojo(CustomerCompanySaveReqVO.class).setId(null);
// 调用
Long customerCompanyId = customerCompanyService.createCustomerCompany(createReqVO);
// 断言
assertNotNull(customerCompanyId);
// 校验记录的属性是否正确
CustomerCompanyDO customerCompany = customerCompanyMapper.selectById(customerCompanyId);
assertPojoEquals(createReqVO, customerCompany, "id");
}
@Test
public void testUpdateCustomerCompany_success() {
// mock 数据
CustomerCompanyDO dbCustomerCompany = randomPojo(CustomerCompanyDO.class);
customerCompanyMapper.insert(dbCustomerCompany);// @Sql: 先插入出一条存在的数据
// 准备参数
CustomerCompanySaveReqVO updateReqVO = randomPojo(CustomerCompanySaveReqVO.class, o -> {
o.setId(dbCustomerCompany.getId()); // 设置更新的 ID
});
// 调用
customerCompanyService.updateCustomerCompany(updateReqVO);
// 校验是否更新正确
CustomerCompanyDO customerCompany = customerCompanyMapper.selectById(updateReqVO.getId()); // 获取最新的
assertPojoEquals(updateReqVO, customerCompany);
}
@Test
public void testUpdateCustomerCompany_notExists() {
// 准备参数
CustomerCompanySaveReqVO updateReqVO = randomPojo(CustomerCompanySaveReqVO.class);
// 调用, 并断言异常
assertServiceException(() -> customerCompanyService.updateCustomerCompany(updateReqVO), CUSTOMER_COMPANY_NOT_EXISTS);
}
@Test
public void testDeleteCustomerCompany_success() {
// mock 数据
CustomerCompanyDO dbCustomerCompany = randomPojo(CustomerCompanyDO.class);
customerCompanyMapper.insert(dbCustomerCompany);// @Sql: 先插入出一条存在的数据
// 准备参数
Long id = dbCustomerCompany.getId();
// 调用
customerCompanyService.deleteCustomerCompany(id);
// 校验数据不存在了
assertNull(customerCompanyMapper.selectById(id));
}
@Test
public void testDeleteCustomerCompany_notExists() {
// 准备参数
Long id = randomLongId();
// 调用, 并断言异常
assertServiceException(() -> customerCompanyService.deleteCustomerCompany(id), CUSTOMER_COMPANY_NOT_EXISTS);
}
@Test
@Disabled // TODO 请修改 null 为需要的值,然后删除 @Disabled 注解
public void testGetCustomerCompanyPage() {
// mock 数据
CustomerCompanyDO dbCustomerCompany = randomPojo(CustomerCompanyDO.class, o -> { // 等会查询到
o.setContacts(null);
o.setCreateTime(null);
o.setName(null);
o.setAddress(null);
o.setPhone(null);
});
customerCompanyMapper.insert(dbCustomerCompany);
// 测试 contacts 不匹配
customerCompanyMapper.insert(cloneIgnoreId(dbCustomerCompany, o -> o.setContacts(null)));
// 测试 createTime 不匹配
customerCompanyMapper.insert(cloneIgnoreId(dbCustomerCompany, o -> o.setCreateTime(null)));
// 测试 name 不匹配
customerCompanyMapper.insert(cloneIgnoreId(dbCustomerCompany, o -> o.setName(null)));
// 测试 address 不匹配
customerCompanyMapper.insert(cloneIgnoreId(dbCustomerCompany, o -> o.setAddress(null)));
// 测试 phone 不匹配
customerCompanyMapper.insert(cloneIgnoreId(dbCustomerCompany, o -> o.setPhone(null)));
// 准备参数
CustomerCompanyPageReqVO reqVO = new CustomerCompanyPageReqVO();
reqVO.setContacts(null);
reqVO.setCreateTime(null);
reqVO.setName(null);
reqVO.setAddress(null);
reqVO.setPhone(null);
// 调用
PageResult<CustomerCompanyDO> pageResult = customerCompanyService.getCustomerCompanyPage(reqVO);
// 断言
assertEquals(1, pageResult.getTotal());
assertEquals(1, pageResult.getList().size());
assertPojoEquals(dbCustomerCompany, pageResult.getList().get(0));
}
}

View File

@@ -0,0 +1,4 @@
<configuration>
<!-- 引用 Spring Boot 的 logback 基础配置 -->
<include resource="org/springframework/boot/logging/logback/defaults.xml" />
</configuration>

View File

@@ -0,0 +1,2 @@
-- 将该删表 SQL 语句,添加到 yudao-module-cms-biz 模块的 test/resources/sql/clean.sql 文件里
DELETE FROM "cms_contract";