internal void updateSettingsAndLaunch(IEnumerable <string> args)
        {
            if (!μTorrentService.isμTorrentAlreadyRunning())
            {
                try {
                    ushort listeningPort = PrivateInternetAccessService.getPrivateInternetAccessForwardedPort();
                    μTorrentService.setμTorrentListeningPort(listeningPort);
                } catch (PrivateInternetAccessException.UnknownForwardedPort) {
                    ErrorReportingService.reportError("Error reading PIA forwarded port",
                                                      "Could not read forwarded port from Private Internet Access control program.\r\n\r\n" +
                                                      "Make sure Private Internet Access v1.6 or later is installed.", MessageBoxIcon.Warning);
                } catch (PrivateInternetAccessException.NoDaemonLogFile) {
                    ErrorReportingService.reportError("PIA debug logging is disabled",
                                                      "Failed to read log file.\r\n\r\nMake sure Debug Logging is enabled on the Help page of PIA's Settings.",
                                                      MessageBoxIcon.Warning);
                } catch (PrivateInternetAccessException.PortForwardingDisabled) {
                    ErrorReportingService.reportError("PIA port forwarding is disabled",
                                                      "Port forwarding is disabled in Private Internet Access.\r\n\r\n" +
                                                      "Make sure PIA has \"Request port forwarding\" enabled on the Network page of PIA's settings, " +
                                                      "and connect to one of the servers that supports port forwarding, like Toronto or Vancouver.",
                                                      MessageBoxIcon.Warning);
                }
            }

            try {
                μTorrentService.launchμTorrent(args);
            } catch (FileNotFoundException e) {
                ErrorReportingService.reportError("Error starting μTorrent",
                                                  $"μTorrent could not be started because the file {e.FileName} was not found.\r\n\r\n" +
                                                  "Make sure μTorrent is installed in that directory.", MessageBoxIcon.Error);
            }
        }
Beispiel #2
0
        public void doNotUpdateSettingsWhenPiaNotPortFowarding()
        {
            A.CallTo(() => μTorrent.isμTorrentAlreadyRunning()).Returns(false);
            A.CallTo(() => pia.getPrivateInternetAccessForwardedPort()).Throws <PrivateInternetAccessException.UnknownForwardedPort>();

            launcher.updateSettingsAndLaunch(Enumerable.Empty <string>());

            A.CallTo(() => μTorrent.setμTorrentListeningPort(A <ushort> ._)).MustNotHaveHappened();
            A.CallTo(() => μTorrent.launchμTorrent(A <IEnumerable <string> > ._)).MustHaveHappenedOnceExactly();
            A.CallTo(() => errorReportingService.reportError(A <string> ._, A <string> ._, A <MessageBoxIcon> ._)).MustHaveHappenedOnceExactly();
        }