iot-gateway/src/test/java/com/zsc/edu/gateway/service/DeptServiceTest.java
2024-12-20 14:53:56 +08:00

139 lines
4.4 KiB
Java

package com.zsc.edu.gateway.service;
import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper;
import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper;
import com.zsc.edu.gateway.domain.DeptBuilder;
import com.zsc.edu.gateway.exception.ConstraintException;
import com.zsc.edu.gateway.modules.system.dto.DeptDto;
import com.zsc.edu.gateway.modules.system.entity.Dept;
import com.zsc.edu.gateway.modules.system.repo.DeptRepository;
import com.zsc.edu.gateway.modules.system.service.DeptService;
import org.junit.jupiter.api.AfterEach;
import org.junit.jupiter.api.BeforeEach;
import org.junit.jupiter.api.Test;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.boot.test.context.SpringBootTest;
import org.springframework.dao.DuplicateKeyException;
import jakarta.annotation.Resource;
import static org.junit.jupiter.api.Assertions.*;
/**
* @author pengzheng
*/
//@ActiveProfiles("test")
@SpringBootTest
class DeptServiceTest {
@Autowired
private DeptService service;
@Resource
private DeptRepository repo;
private Dept dept1;
private Dept dept2;
private Dept dept3;
private Dept dept4;
@BeforeEach
void setUp() {
dept1 = DeptBuilder.aDept().name("测试部门1").build();
repo.insert(dept1);
dept2 = DeptBuilder.aDept().name("测试部门2").pid(dept1.id).build();
repo.insert(dept2);
dept3 = DeptBuilder.aDept().name("测试部门3").pid(dept1.id).build();
repo.insert(dept3);
dept4 = DeptBuilder.aDept().name("测试部门4").pid(dept3.id).build();
repo.insert(dept4);
}
@AfterEach
void tearDown() {
repo.delete(new QueryWrapper<>());
}
@Test
void list() {
LambdaQueryWrapper<Dept> queryWrapper = new LambdaQueryWrapper<>();
assertEquals(1, service.list(queryWrapper.like(Dept::getName, "测试部门1")).size());
// assertEquals(1, service.list(queryWrapper.eq(Dept::getName, dept1.getName())).size());
// assertEquals(4, service.list().size());
}
// @Test
// void listTree() {
// Dept result = service.listTree(dept1.id);
// int count = result.children.size();
// assertEquals(2, count);
// }
@Test
void createAdmin() {
Dept dept = new Dept();
dept.setName("东菱经销商3");
dept.setRemark("remark...");
dept.setPid(dept1.id);
service.save(dept);
assertEquals(5, service.list().size());
// 不能创建其他已存在的同名同代码部门
assertThrows(DuplicateKeyException.class, () -> service.save(dept1));
}
@Test
void create() {
// Dept dept = new Dept();
// dept.setName("东菱经销商5");
// dept.setRemark("remark...");
// dept.setPid(dept1.id);
DeptDto dto = new DeptDto();
dto.setName("东菱经销商5");
dto.setRemark("remark...");
dto.setPid(dept1.id);
DeptDto dto2 = new DeptDto();
dto2.setName(dept2.getName());
dto2.setRemark("remark...");
dto2.setPid(dept1.id);
Dept dept = service.create(dto);
assertNotNull(dept.getId());
assertEquals(6, service.list().size());
// 不能创建其他已存在的同名同代码部门
assertThrows(ConstraintException.class, () -> service.create(dto2));
}
@Test
void updateAdmin() {
DeptDto dto = new DeptDto();
dto.setName("东菱经销商5");
dto.setRemark("remark...");
assertTrue(service.edit(dto, dept2.id));
Dept tmp = service.getOne(new LambdaQueryWrapper<Dept>().eq(Dept::getName, dto.getName()));
assertEquals(tmp.getName(), dto.getName());
assertEquals(tmp.getId(), dept2.id);
// 不能改为其他已存在的同名同代码部门
assertThrows(ConstraintException.class,
() -> service.edit(new DeptDto(dept3.getName(), "remark",null), dept2.id));
}
// @Test
// void tree() {
// Dept result = service.listTree(dept3.id);
// HashSet<Long> deptPath = DeptTreeUtil.getDeptPath(result);
// System.out.println(deptPath);
// assertEquals(2, deptPath.size());
// }
// @Test
// void findTreeChild() {
// Dept result = service.listTree(dept1.id);
// Dept childNode = DeptTreeUtil.getChildNode(result.children, dept2.id);
// System.out.println(childNode.id);
// assertEquals(dept2.id, childNode.id);
// }
}