add method for Tree

This commit is contained in:
Looly
2021-11-11 22:57:07 +08:00
parent bb1e4ba76a
commit ab1d8e84e4
4 changed files with 137 additions and 5 deletions

View File

@@ -76,4 +76,48 @@ public class TreeTest {
Assert .assertEquals(7, ids.size());
}
@Test
public void cloneTreeTest(){
final Tree<String> tree = TreeUtil.buildSingle(nodeList, "0");
final Tree<String> cloneTree = tree.cloneTree();
List<String> ids = new ArrayList<>();
cloneTree.walk((tr)-> ids.add(tr.getId()));
Assert .assertEquals(7, ids.size());
}
@Test
public void filterTest(){
// 经过过滤,丢掉"用户添加"节点
final Tree<String> tree = TreeUtil.buildSingle(nodeList, "0");
tree.filter((t)->{
final CharSequence name = t.getName();
return null != name && name.toString().contains("管理");
});
List<String> ids = new ArrayList<>();
tree.walk((tr)-> ids.add(tr.getId()));
Assert .assertEquals(6, ids.size());
}
@Test
public void filterNewTest(){
final Tree<String> tree = TreeUtil.buildSingle(nodeList, "0");
// 经过过滤,生成新的树
Tree<String> newTree = tree.filterNew((t)->{
final CharSequence name = t.getName();
return null != name && name.toString().contains("管理");
});
List<String> ids = new ArrayList<>();
newTree.walk((tr)-> ids.add(tr.getId()));
Assert .assertEquals(6, ids.size());
List<String> ids2 = new ArrayList<>();
tree.walk((tr)-> ids2.add(tr.getId()));
Assert .assertEquals(7, ids2.size());
}
}