11using System . Collections . Generic ;
2+ using BulkCrapUninstaller . Forms ;
23using Microsoft . VisualStudio . TestTools . UnitTesting ;
34using UninstallTools ;
45
@@ -17,10 +18,11 @@ public void MatchExecutablePathReturnsUniqueExactUninstallerMatch()
1718 CreateEntry ( "C:\\ Tools\\ Other\\ uninstall.exe" , "C:\\ Tools\\ Other" )
1819 } ;
1920
20- var result = ShortcutUninstallMatcher . MatchExecutablePath ( entries , "c:\\ tools\\ widget\\ UNINSTALL.EXE" ) ;
21+ var result = ShortcutUninstallMatcher . MatchExecutablePath ( entries , "c:\\ tools\\ widget\\ UNINSTALL.EXE" ,
22+ out var ambiguous ) ;
2123
22- Assert . AreEqual ( ShortcutUninstallMatchStatus . Unique , result . Status ) ;
23- Assert . AreSame ( expected , result . Entry ) ;
24+ Assert . IsFalse ( ambiguous ) ;
25+ Assert . AreSame ( expected , result ) ;
2426 }
2527
2628 [ TestMethod ]
@@ -30,10 +32,10 @@ public void MatchExecutablePathReturnsUniqueSortedExecutableMatch()
3032 expected . SortedExecutables = new [ ] { "C:\\ Launchers\\ Widget.exe" } ;
3133
3234 var result = ShortcutUninstallMatcher . MatchExecutablePath (
33- new List < ApplicationUninstallerEntry > { expected } , "c:\\ launchers\\ WIDGET.EXE" ) ;
35+ new List < ApplicationUninstallerEntry > { expected } , "c:\\ launchers\\ WIDGET.EXE" , out var ambiguous ) ;
3436
35- Assert . AreEqual ( ShortcutUninstallMatchStatus . Unique , result . Status ) ;
36- Assert . AreSame ( expected , result . Entry ) ;
37+ Assert . IsFalse ( ambiguous ) ;
38+ Assert . AreSame ( expected , result ) ;
3739 }
3840
3941 [ TestMethod ]
@@ -42,10 +44,10 @@ public void MatchExecutablePathReturnsUniqueEntryForExecutableInsideInstallLocat
4244 var expected = CreateEntry ( "C:\\ Apps\\ Widget\\ uninstall.exe" , "C:\\ Apps\\ Widget" ) ;
4345
4446 var result = ShortcutUninstallMatcher . MatchExecutablePath (
45- new List < ApplicationUninstallerEntry > { expected } , "C:\\ Apps\\ Widget\\ bin\\ Widget.exe" ) ;
47+ new List < ApplicationUninstallerEntry > { expected } , "C:\\ Apps\\ Widget\\ bin\\ Widget.exe" , out var ambiguous ) ;
4648
47- Assert . AreEqual ( ShortcutUninstallMatchStatus . Unique , result . Status ) ;
48- Assert . AreSame ( expected , result . Entry ) ;
49+ Assert . IsFalse ( ambiguous ) ;
50+ Assert . AreSame ( expected , result ) ;
4951 }
5052
5153 [ TestMethod ]
@@ -55,10 +57,10 @@ public void MatchExecutablePathPrefersExactUninstallerMatchOverInstallLocationMa
5557 var contained = CreateEntry ( "C:\\ Apps\\ Contained\\ uninstall.exe" , "C:\\ Shared" ) ;
5658
5759 var result = ShortcutUninstallMatcher . MatchExecutablePath (
58- new List < ApplicationUninstallerEntry > { exact , contained } , "C:\\ Shared\\ Tool.exe" ) ;
60+ new List < ApplicationUninstallerEntry > { exact , contained } , "C:\\ Shared\\ Tool.exe" , out var ambiguous ) ;
5961
60- Assert . AreEqual ( ShortcutUninstallMatchStatus . Unique , result . Status ) ;
61- Assert . AreSame ( exact , result . Entry ) ;
62+ Assert . IsFalse ( ambiguous ) ;
63+ Assert . AreSame ( exact , result ) ;
6264 }
6365
6466 [ TestMethod ]
@@ -70,10 +72,11 @@ public void MatchExecutablePathReturnsAmbiguousForSharedInstallLocation()
7072 CreateEntry ( "C:\\ Apps\\ Two\\ uninstall.exe" , "C:\\ Shared" )
7173 } ;
7274
73- var result = ShortcutUninstallMatcher . MatchExecutablePath ( entries , "C:\\ Shared\\ Tool.exe" ) ;
75+ var result = ShortcutUninstallMatcher . MatchExecutablePath ( entries , "C:\\ Shared\\ Tool.exe" ,
76+ out var ambiguous ) ;
7477
75- Assert . AreEqual ( ShortcutUninstallMatchStatus . Ambiguous , result . Status ) ;
76- Assert . IsNull ( result . Entry ) ;
78+ Assert . IsTrue ( ambiguous ) ;
79+ Assert . IsNull ( result ) ;
7780 }
7881
7982 [ TestMethod ]
@@ -85,10 +88,11 @@ public void MatchExecutablePathReturnsNotFoundWhenNoPathEvidenceExists()
8588 new ApplicationUninstallerEntry { DisplayName = "Incomplete entry" }
8689 } ;
8790
88- var result = ShortcutUninstallMatcher . MatchExecutablePath ( entries , "C:\\ Apps\\ Unknown\\ Unknown.exe" ) ;
91+ var result = ShortcutUninstallMatcher . MatchExecutablePath ( entries , "C:\\ Apps\\ Unknown\\ Unknown.exe" ,
92+ out var ambiguous ) ;
8993
90- Assert . AreEqual ( ShortcutUninstallMatchStatus . NotFound , result . Status ) ;
91- Assert . IsNull ( result . Entry ) ;
94+ Assert . IsFalse ( ambiguous ) ;
95+ Assert . IsNull ( result ) ;
9296 }
9397
9498 private static ApplicationUninstallerEntry CreateEntry ( string uninstallerPath , string installLocation )
0 commit comments