diff --git a/src/BootstrapBlazor/Extensions/TreeItemExtensions.cs b/src/BootstrapBlazor/Extensions/TreeItemExtensions.cs index 802e7368a7997c8e3ad1bd9a74942a4287a86b3a..626a662dd95269135aa37dcf213e4423e1460955 100644 --- a/src/BootstrapBlazor/Extensions/TreeItemExtensions.cs +++ b/src/BootstrapBlazor/Extensions/TreeItemExtensions.cs @@ -35,7 +35,8 @@ public static class TreeItemExtensions /// public static IEnumerable> GetAllItems(this IEnumerable> source) { - return GetAllSubItems(source).Append(source.First()); + //return GetAllSubItems(source).Append(source.First()); + return GetAllSubItems(source).Union(source); } /// diff --git a/test/UnitTest/Extensions/TreeItemExtensionsTest.cs b/test/UnitTest/Extensions/TreeItemExtensionsTest.cs new file mode 100644 index 0000000000000000000000000000000000000000..b8b9e7a8299461acfc7718778ec2f7f6a45851ef --- /dev/null +++ b/test/UnitTest/Extensions/TreeItemExtensionsTest.cs @@ -0,0 +1,74 @@ +// Copyright (c) Argo Zhang (argo@163.com). All rights reserved. +// Licensed under the Apache License, Version 2.0. See License.txt in the project root for license information. +// Website: https://www.blazor.zone or https://argozhang.github.io/ + +using System.Diagnostics; + +namespace UnitTest.Extensions; + +public class TreeItemExtensionsTest +{ + + /// + /// 单一顶级树节点 + /// + [Fact] + public async Task 单一顶级树节点() + { + //GetAllItems存在错误。 + var sourceItems = new List>() + { + new TreeViewItem("01") + { + Text="01",Items = new List>() + { + new TreeViewItem("0101") { Text="0101" }, + new TreeViewItem("0102") { Text="0102" }, + } + } + }; + + var items = sourceItems.GetAllItems(); + var list = items.Select(x => x.Text ?? "").ToList(); + + Assert.True(items.Count() == 3); + + await Task.CompletedTask; + } + + + /// + /// 多顶级树节点 + /// + [Fact] + public async Task 多顶级树节点() + { + //GetAllItems存在错误。 + var sourceItems = new List>() + { + new TreeViewItem("01") + { + Text="01",Items = new List>() + { + new TreeViewItem("0101") { Text="0101" }, + new TreeViewItem("0102") { Text="0102" }, + } + }, + new TreeViewItem("02") + { + Text="02",Items = new List>() + { + new TreeViewItem("0201") { Text="0201" }, + new TreeViewItem("0202") { Text="0202" }, + } + }, + }; + + var items = sourceItems.GetAllItems(); + var list = items.Select(x => x.Text ?? "").ToList(); + + Assert.True(items.Count() == 6); + + await Task.CompletedTask; + } +}