Forge
csharp4405de34
1using System.Collections.ObjectModel;
2using CascadeIDE.Features.Workspace.Application;
3using CascadeIDE.Models;
4using Xunit;
5
6namespace CascadeIDE.Tests;
7
8public sealed class SolutionTreeExpansionPolicyTests
9{
10 [Fact]
11 public void ApplyDefaultExpansion_expands_solution_and_project_only()
12 {
13 var root = SolutionItem.CreateSolution("s", @"C:\x.sln");
14 var proj = SolutionItem.CreateProject("p", @"C:\x\p.csproj");
15 var folder = SolutionItem.CreateFolder("src");
16 folder.Children.Add(SolutionItem.CreateFile("f", @"C:\x\p\f.cs"));
17 proj.Children.Add(folder);
18 root.Children.Add(proj);
19
20 SolutionTreeExpansionPolicy.ApplyDefaultExpansion([root]);
21
22 Assert.True(root.IsExpanded);
23 Assert.True(proj.IsExpanded);
24 Assert.False(folder.IsExpanded);
25 }
26
27 [Fact]
28 public void TryExpandPathTo_expands_ancestors()
29 {
30 var root = SolutionItem.CreateSolution("s", @"C:\x.sln");
31 var proj = SolutionItem.CreateProject("p", @"C:\x\p.csproj");
32 var file = SolutionItem.CreateFile("f", @"C:\x\p\f.cs");
33 proj.Children.Add(file);
34 root.Children.Add(proj);
35 var roots = new ObservableCollection<SolutionItem> { root };
36
37 proj.IsExpanded = false;
38 root.IsExpanded = false;
39
40 Assert.True(SolutionTreeExpansionPolicy.TryExpandPathTo(roots, file));
41 Assert.True(root.IsExpanded);
42 Assert.True(proj.IsExpanded);
43 }
44}
45
View only · write via MCP/CIDE