public async Task GetCallsCorrectBinaryAndOpensShellAsync() { var process = Substitute.For <IProcess>(); _managedProcessFactory .CreateVisible( Arg.Is <ProcessStartInfo>(x => UsesScpWinExecutable(x)), Arg.Any <int>()) .Returns(process); var remoteFile = new RemoteFile(_managedProcessFactory); var task = Substitute.For <ICancelable>(); await remoteFile.GetAsync(GetSshTarget(""), _localPath, _remotePath, task); await process.Received(1).RunToExitWithSuccessAsync(); }