mirror of
https://gitee.com/chinabugotech/hutool.git
synced 2025-08-18 20:38:02 +08:00
TreeUtil.buildSingle指定rootId节点存在时,作为根节点
This commit is contained in:
@@ -0,0 +1,60 @@
|
||||
package cn.hutool.core.lang.tree;
|
||||
|
||||
import cn.hutool.core.lang.tree.parser.NodeParser;
|
||||
import lombok.Data;
|
||||
import org.junit.jupiter.api.Test;
|
||||
|
||||
import java.util.ArrayList;
|
||||
import java.util.List;
|
||||
|
||||
import static org.junit.jupiter.api.Assertions.assertEquals;
|
||||
|
||||
/**
|
||||
* 如果指定rootId的节点已经存在,直接作为根节点
|
||||
*/
|
||||
public class IssueIAUSHRTest {
|
||||
|
||||
@Test
|
||||
void buildSingleTest() {
|
||||
final List<TestDept> list= new ArrayList<>();
|
||||
TestDept sysDept = new TestDept();
|
||||
sysDept.setDeptId(1L);
|
||||
sysDept.setDeptName("A");
|
||||
sysDept.setParentId(null);
|
||||
list.add(sysDept);
|
||||
|
||||
sysDept = new TestDept();
|
||||
sysDept.setDeptId(2L);
|
||||
sysDept.setDeptName("B");
|
||||
sysDept.setParentId(1L);
|
||||
list.add(sysDept);
|
||||
|
||||
sysDept = new TestDept();
|
||||
sysDept.setDeptId(3L);
|
||||
sysDept.setDeptName("C");
|
||||
sysDept.setParentId(1L);
|
||||
list.add(sysDept);
|
||||
|
||||
TreeNodeConfig treeNodeConfig = new TreeNodeConfig();
|
||||
treeNodeConfig.setIdKey("deptId");
|
||||
treeNodeConfig.setNameKey("deptName");
|
||||
treeNodeConfig.setParentIdKey("parentId");
|
||||
NodeParser<TestDept,Long> nodeParser= (dept, tree) ->
|
||||
tree.setId(dept.getDeptId())
|
||||
.setParentId(dept.getParentId())
|
||||
.setName(dept.getDeptName());
|
||||
Tree<Long> longTree = TreeUtil.buildSingle(list, 1L, treeNodeConfig, nodeParser);
|
||||
|
||||
assertEquals("A", longTree.getName());
|
||||
assertEquals(2, longTree.getChildren().size());
|
||||
assertEquals("B", longTree.getChildren().get(0).getName());
|
||||
assertEquals("C", longTree.getChildren().get(1).getName());
|
||||
}
|
||||
|
||||
@Data
|
||||
public static class TestDept {
|
||||
private Long deptId;
|
||||
private String deptName;
|
||||
private Long parentId;
|
||||
}
|
||||
}
|
Reference in New Issue
Block a user