@@ -28,6 +28,8 @@ public void RemoveFolder()
2828 Assert . NotNull ( folderNested ) ;
2929 Assert . NotNull ( folderFolder ) ;
3030
31+ SolutionProjectModel projectInIs = solution . AddProject ( "ProjectInThis.csproj" , folder : folderIs ) ;
32+ Assert . NotNull ( projectInIs ) ;
3133 SolutionProjectModel projectInA = solution . AddProject ( "ProjectInA.csproj" , folder : folderA ) ;
3234 Assert . NotNull ( projectInA ) ;
3335 SolutionProjectModel projectInFolder = solution . AddProject ( "ProjectInFolder.csproj" , folder : folderFolder ) ;
@@ -36,28 +38,31 @@ public void RemoveFolder()
3638 // Remove the middle 'A' folder.
3739 Assert . True ( solution . RemoveFolder ( folderA ) ) ;
3840
39- // Make sure remaining folders have updated references .
41+ // Make sure child folders were removed .
4042 Assert . Equal ( "/This/" , folderThis . ItemRef ) ;
4143 Assert . Equal ( "/This/Is/" , folderIs . ItemRef ) ;
42- Assert . Equal ( "/This/Is/Nested/" , folderNested . ItemRef ) ;
43- Assert . Equal ( "/This/Is/Nested/Folder/" , folderFolder . ItemRef ) ;
44-
45- // Make sure projects have updated references.
46- Assert . NotNull ( projectInA . Parent ) ;
47- Assert . Equal ( "/This/Is/" , projectInA . Parent . ItemRef ) ;
48-
49- Assert . NotNull ( projectInFolder . Parent ) ;
50- Assert . Equal ( "/This/Is/Nested/Folder/" , projectInFolder . Parent . ItemRef ) ;
51-
52- // Remove all folders.
53- Assert . True ( solution . RemoveFolder ( folderThis ) ) ;
44+ Assert . Null ( solution . FindFolder ( folderNested . ItemRef ) ) ;
45+ Assert . Null ( solution . FindFolder ( folderFolder . ItemRef ) ) ;
46+
47+ // Make sure child projects were removed.
48+ Assert . Null ( solution . FindProject ( projectInA . ItemRef ) ) ;
49+ Assert . Null ( solution . FindProject ( projectInFolder . ItemRef ) ) ;
50+
51+ // Make sure project in 'Is' folder was not removed.
52+ Assert . NotNull ( projectInIs . Parent ) ;
53+ Assert . NotNull ( solution . FindProject ( projectInIs . ItemRef ) ) ;
54+ Assert . NotNull ( projectInIs . Parent ) ;
55+ Assert . Equal ( "/This/Is/" , projectInIs . Parent . ItemRef ) ;
56+
57+ // Remove all folders in reverse.
58+ Assert . False ( solution . RemoveFolder ( folderFolder ) ) ;
59+ Assert . False ( solution . RemoveFolder ( folderNested ) ) ;
5460 Assert . True ( solution . RemoveFolder ( folderIs ) ) ;
55- Assert . True ( solution . RemoveFolder ( folderNested ) ) ;
56- Assert . True ( solution . RemoveFolder ( folderFolder ) ) ;
61+ Assert . True ( solution . RemoveFolder ( folderThis ) ) ;
5762
58- // Make sure projects are in root.
59- Assert . Null ( projectInA . Parent ) ;
60- Assert . Null ( projectInFolder . Parent ) ;
63+ Assert . Empty ( solution . SolutionItems ) ;
64+ Assert . Empty ( solution . SolutionProjects ) ;
65+ Assert . Empty ( solution . SolutionFolders ) ;
6166 }
6267
6368 /// <summary>
0 commit comments