1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39
| var userList = new[] { new MyUser { Path = "", Name = "A1" }, new MyUser { Path = "", Name = "A2" }, new MyUser { Path = "demo", Name = "B1" } };
var actual = _treeBuilder.ReduceTree(userList, x => x.Path, x => _treeBuilder.GetParentPath(x), x => _treeBuilder.QueryParentPaths(x.Path) ).ToList();
var expected = new List<TreeBuilder.TreeItem<MyUser, string>> { new TreeBuilder.TreeItem<MyUser, string>() { Id = "", ParentId = null, Item = new MyUser {Path = "", Name = "A1"}, Children = new List<TreeBuilder.TreeItem<MyUser, string>>() }, new TreeBuilder.TreeItem<MyUser, string>() { Id = "", ParentId = null, Item = new MyUser {Path = "", Name = "A2"}, Children = new List<TreeBuilder.TreeItem<MyUser, string>>() }, new TreeBuilder.TreeItem<MyUser, string>() { Id = "demo", ParentId = null, Item = new MyUser {Path = "demo", Name = "B1"}, Children = new List<TreeBuilder.TreeItem<MyUser, string>>() }, };
expected.ToExpectedObject().ShouldEqual(actual);
|