mirror of
https://gitee.com/chinabugotech/hutool.git
synced 2025-08-18 20:38:02 +08:00
Tree add 类型校验
This commit is contained in:
@@ -0,0 +1,91 @@
|
||||
package cn.hutool.core.lang.tree;
|
||||
|
||||
import org.junit.Assert;
|
||||
|
||||
import java.util.ArrayList;
|
||||
import java.util.List;
|
||||
|
||||
public class Issues2538Test {
|
||||
|
||||
@org.junit.Test
|
||||
public void issues2538Test() {
|
||||
Test test1 = new Test();
|
||||
test1.setId(1);
|
||||
test1.setParentId(0);
|
||||
test1.setName("1");
|
||||
Test test2 = new Test();
|
||||
test2.setId(2);
|
||||
test2.setParentId(1);
|
||||
test2.setName("1");
|
||||
|
||||
List<Test> list = new ArrayList<>();
|
||||
|
||||
list.add(test1);
|
||||
list.add(test2);
|
||||
// 配置
|
||||
TreeNodeConfig treeNodeConfig = new TreeNodeConfig();
|
||||
// 自定义属性名 都要默认值的
|
||||
treeNodeConfig.setIdKey("id");
|
||||
treeNodeConfig.setDeep(Integer.MAX_VALUE);
|
||||
treeNodeConfig.setParentIdKey("parentId");
|
||||
|
||||
// 转换器
|
||||
List<Tree<Object>> treeNodes = TreeUtil.build(list, 0L,
|
||||
treeNodeConfig,
|
||||
(treeNode, tree) -> {
|
||||
tree.setId(treeNode.getId());
|
||||
tree.setParentId(treeNode.getParentId());
|
||||
tree.setName(treeNode.getName());
|
||||
tree.setWeight(null);
|
||||
});
|
||||
|
||||
Assert.assertNotNull(treeNodes);
|
||||
|
||||
try {
|
||||
// 转换器
|
||||
treeNodes = TreeUtil.build(list, "0",
|
||||
treeNodeConfig,
|
||||
(treeNode, tree) -> {
|
||||
tree.setId(treeNode.getId());
|
||||
tree.setParentId(treeNode.getParentId());
|
||||
tree.setName(treeNode.getName());
|
||||
tree.setWeight(null);
|
||||
});
|
||||
}catch (Exception e) {
|
||||
Assert.assertEquals(e.getClass(), IllegalArgumentException.class);
|
||||
}
|
||||
}
|
||||
|
||||
public static class Test {
|
||||
|
||||
private long id;
|
||||
|
||||
private long parentId;
|
||||
|
||||
private String name;
|
||||
|
||||
public long getId() {
|
||||
return id;
|
||||
}
|
||||
|
||||
public void setId(long id) {
|
||||
this.id = id;
|
||||
}
|
||||
|
||||
public long getParentId() {
|
||||
return parentId;
|
||||
}
|
||||
|
||||
public void setParentId(long parentId) {
|
||||
this.parentId = parentId;
|
||||
}
|
||||
|
||||
public String getName() {
|
||||
return name;
|
||||
}
|
||||
|
||||
public void setName(String name) {
|
||||
this.name = name;
|
||||
}
|
||||
}
|
||||
}
|
Reference in New Issue
Block a user