[feat] 新增客户管理模块

This commit is contained in:
2024-07-03 15:35:27 +08:00
parent 442ed6b3a9
commit 2632866955
13 changed files with 578 additions and 1 deletions

View File

@@ -0,0 +1,146 @@
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));
}
}