@@ -17,19 +17,29 @@ public LinuxDolphinInstallerTests()
1717 }
1818
1919 [ Fact ]
20- public void IsDolphinInstalledInFlatpak_ReturnsTrue_WhenFlatpakInfoExitCodeIsZero ( )
20+ public void IsDolphinInstalledInFlatpak_ReturnsTrue_WhenFlatpakListHasDolphin ( )
2121 {
22- _processService . Run ( "flatpak" , "info org.DolphinEmu.dolphin-emu" ) . Returns ( Ok ( 0 ) ) ;
22+ _processService . Run ( "flatpak" , "list --app --columns=application" , out var stdOut , out _ ) . Returns ( Ok ( 0 ) ) . AndDoes ( callInfo => callInfo [ 2 ] = "Application ID \n org.DolphinEmu.dolphin-emu \n " ) ;
2323
2424 var result = _installer . IsDolphinInstalledInFlatpak ( ) ;
2525
2626 Assert . True ( result ) ;
2727 }
2828
2929 [ Fact ]
30- public void IsDolphinInstalledInFlatpak_ReturnsFalse_WhenFlatpakInfoExitCodeIsNonZero ( )
30+ public void IsDolphinInstalledInFlatpak_ReturnsFalse_WhenFlatpakListHasNoDolphin ( )
3131 {
32- _processService . Run ( "flatpak" , "info org.DolphinEmu.dolphin-emu" ) . Returns ( Ok ( 1 ) ) ;
32+ _processService . Run ( "flatpak" , "list --app --columns=application" , out var stdOut , out _ ) . Returns ( Ok ( 0 ) ) . AndDoes ( callInfo => callInfo [ 2 ] = "Application ID\n " ) ;
33+
34+ var result = _installer . IsDolphinInstalledInFlatpak ( ) ;
35+
36+ Assert . False ( result ) ;
37+ }
38+
39+ [ Fact ]
40+ public void IsDolphinInstalledInFlatpak_ReturnsFalse_WhenFlatpakListFails ( )
41+ {
42+ _processService . Run ( "flatpak" , "list --app --columns=application" , out _ , out _ ) . Returns ( Ok ( 1 ) ) ;
3343
3444 var result = _installer . IsDolphinInstalledInFlatpak ( ) ;
3545
@@ -77,13 +87,53 @@ public async Task InstallFlatpak_ReturnsSuccess_WhenInstallCompletesAndCommandBe
7787 Assert . True ( result . IsSuccess ) ;
7888 }
7989
90+ [ Fact ]
91+ public async Task InstallFlatpakDolphin_ReturnsFailure_WhenDolphinRemoteCommandFails ( )
92+ {
93+ _commandEnvironment . IsCommandAvailable ( "flatpak" ) . Returns ( true ) ;
94+ _processService
95+ . Run ( "flatpak" , "remote-add --if-not-exists --user dolphin https://flatpak.dolphin-emu.org/releases.flatpakrepo" )
96+ . Returns ( Ok ( 1 ) ) ;
97+ _processService
98+ . Run ( "flatpak" , "remote-add --if-not-exists --user flathub https://dl.flathub.org/repo/flathub.flatpakrepo" )
99+ . Returns ( Ok ( 0 ) ) ;
100+
101+ var result = await _installer . InstallFlatpakDolphin ( ) ;
102+
103+ Assert . True ( result . IsFailure ) ;
104+ Assert . Contains ( "exit code 1" , result . Error . Message ) ;
105+ }
106+
107+ [ Fact ]
108+ public async Task InstallFlatpakDolphin_ReturnsFailure_WhenFlathubRemoteCommandFails ( )
109+ {
110+ _commandEnvironment . IsCommandAvailable ( "flatpak" ) . Returns ( true ) ;
111+ _processService
112+ . Run ( "flatpak" , "remote-add --if-not-exists --user dolphin https://flatpak.dolphin-emu.org/releases.flatpakrepo" )
113+ . Returns ( Ok ( 0 ) ) ;
114+ _processService
115+ . Run ( "flatpak" , "remote-add --if-not-exists --user flathub https://dl.flathub.org/repo/flathub.flatpakrepo" )
116+ . Returns ( Ok ( 1 ) ) ;
117+
118+ var result = await _installer . InstallFlatpakDolphin ( ) ;
119+
120+ Assert . True ( result . IsFailure ) ;
121+ Assert . Contains ( "exit code 1" , result . Error . Message ) ;
122+ }
123+
80124 [ Fact ]
81125 public async Task InstallFlatpakDolphin_ReturnsFailure_WhenDolphinInstallCommandFails ( )
82126 {
83127 _commandEnvironment . IsCommandAvailable ( "flatpak" ) . Returns ( true ) ;
84128 _processService
85- . RunWithProgressAsync ( "pkexec" , "flatpak --system install -y org.DolphinEmu.dolphin-emu" , Arg . Any < IProgress < int > ? > ( ) )
86- . Returns ( Task . FromResult < OperationResult < int > > ( Ok ( 1 ) ) ) ;
129+ . Run ( "flatpak" , "remote-add --if-not-exists --user dolphin https://flatpak.dolphin-emu.org/releases.flatpakrepo" )
130+ . Returns ( Ok ( 0 ) ) ;
131+ _processService
132+ . Run ( "flatpak" , "remote-add --if-not-exists --user flathub https://dl.flathub.org/repo/flathub.flatpakrepo" )
133+ . Returns ( Ok ( 0 ) ) ;
134+ _processService
135+ . RunWithProgressAsync ( "flatpak" , "install --user -y dolphin org.DolphinEmu.dolphin-emu" , Arg . Any < IProgress < int > ? > ( ) )
136+ . Returns ( Task . FromResult ( Ok ( 1 ) ) ) ;
87137
88138 var result = await _installer . InstallFlatpakDolphin ( ) ;
89139
@@ -96,8 +146,14 @@ public async Task InstallFlatpakDolphin_ReturnsFailure_WhenWarmupLaunchFails()
96146 {
97147 _commandEnvironment . IsCommandAvailable ( "flatpak" ) . Returns ( true ) ;
98148 _processService
99- . RunWithProgressAsync ( "pkexec" , "flatpak --system install -y org.DolphinEmu.dolphin-emu" , Arg . Any < IProgress < int > ? > ( ) )
100- . Returns ( Task . FromResult < OperationResult < int > > ( Ok ( 0 ) ) ) ;
149+ . Run ( "flatpak" , "remote-add --if-not-exists --user dolphin https://flatpak.dolphin-emu.org/releases.flatpakrepo" )
150+ . Returns ( Ok ( 0 ) ) ;
151+ _processService
152+ . Run ( "flatpak" , "remote-add --if-not-exists --user flathub https://dl.flathub.org/repo/flathub.flatpakrepo" )
153+ . Returns ( Ok ( 0 ) ) ;
154+ _processService
155+ . RunWithProgressAsync ( "flatpak" , "install --user -y dolphin org.DolphinEmu.dolphin-emu" , Arg . Any < IProgress < int > ? > ( ) )
156+ . Returns ( Task . FromResult ( Ok ( 0 ) ) ) ;
101157 _processService
102158 . LaunchAndStopAsync ( "flatpak" , "run org.DolphinEmu.dolphin-emu" , TimeSpan . FromSeconds ( 4 ) )
103159 . Returns ( Task . FromResult < OperationResult > ( Fail ( "Launch failed" ) ) ) ;
@@ -113,11 +169,17 @@ public async Task InstallFlatpakDolphin_ReturnsSuccess_WhenInstallAndWarmupSucce
113169 {
114170 _commandEnvironment . IsCommandAvailable ( "flatpak" ) . Returns ( true ) ;
115171 _processService
116- . RunWithProgressAsync ( "pkexec" , "flatpak --system install -y org.DolphinEmu.dolphin-emu" , Arg . Any < IProgress < int > ? > ( ) )
117- . Returns ( Task . FromResult < OperationResult < int > > ( Ok ( 0 ) ) ) ;
172+ . Run ( "flatpak" , "remote-add --if-not-exists --user dolphin https://flatpak.dolphin-emu.org/releases.flatpakrepo" )
173+ . Returns ( Ok ( 0 ) ) ;
174+ _processService
175+ . Run ( "flatpak" , "remote-add --if-not-exists --user flathub https://dl.flathub.org/repo/flathub.flatpakrepo" )
176+ . Returns ( Ok ( 0 ) ) ;
177+ _processService
178+ . RunWithProgressAsync ( "flatpak" , "install --user -y dolphin org.DolphinEmu.dolphin-emu" , Arg . Any < IProgress < int > ? > ( ) )
179+ . Returns ( Task . FromResult ( Ok ( 0 ) ) ) ;
118180 _processService
119181 . LaunchAndStopAsync ( "flatpak" , "run org.DolphinEmu.dolphin-emu" , TimeSpan . FromSeconds ( 4 ) )
120- . Returns ( Task . FromResult < OperationResult > ( Ok ( ) ) ) ;
182+ . Returns ( Task . FromResult ( Ok ( ) ) ) ;
121183
122184 var result = await _installer . InstallFlatpakDolphin ( ) ;
123185
0 commit comments