Example #1
0
        public ToolInstallGlobalOrToolPathCommandTests()
        {
            _reporter           = new BufferedReporter();
            _fileSystem         = new FileSystemMockBuilder().UseCurrentSystemTemporaryDirectory().Build();
            _temporaryDirectory = _fileSystem.Directory.CreateTemporaryDirectory().DirectoryPath;
            _pathToPlaceShim    = Path.Combine(_temporaryDirectory, "pathToPlace");
            _fileSystem.Directory.CreateDirectory(_pathToPlaceShim);
            _pathToPlacePackages = _pathToPlaceShim + "Packages";
            var toolPackageStoreMock = new ToolPackageStoreMock(new DirectoryPath(_pathToPlacePackages), _fileSystem);

            _toolPackageStore          = toolPackageStoreMock;
            _toolPackageStoreQuery     = toolPackageStoreMock;
            _createShellShimRepository =
                (_, nonGlobalLocation) => new ShellShimRepository(
                    new DirectoryPath(_pathToPlaceShim),
                    string.Empty,
                    fileSystem: _fileSystem,
                    appHostShellShimMaker: new AppHostShellShimMakerMock(_fileSystem),
                    filePermissionSetter: new NoOpFilePermissionSetter());
            _environmentPathInstructionMock =
                new EnvironmentPathInstructionMock(_reporter, _pathToPlaceShim);
            _createToolPackageStoreAndInstaller = (location, forwardArguments) => (_toolPackageStore, _toolPackageStoreQuery, CreateToolPackageInstaller());

            _parseResult = Parser.Instance.Parse($"dotnet tool install -g {PackageId}");
        }
Example #2
0
        public ToolInstallCommandTests()
        {
            _reporter            = new BufferedReporter();
            _fileSystem          = new FileSystemMockBuilder().UseCurrentSystemTemporaryDirectory().Build();
            _temporaryDirectory  = _fileSystem.Directory.CreateTemporaryDirectory().DirectoryPath;
            _pathToPlaceShim     = Path.Combine(_temporaryDirectory, "pathToPlace");
            _pathToPlacePackages = _pathToPlaceShim + "Packages";
            var toolPackageStoreMock = new ToolPackageStoreMock(new DirectoryPath(_pathToPlacePackages), _fileSystem);

            _toolPackageStore          = toolPackageStoreMock;
            _toolPackageStoreQuery     = toolPackageStoreMock;
            _createShellShimRepository =
                (nonGlobalLocation) => new ShellShimRepository(
                    new DirectoryPath(_pathToPlaceShim),
                    fileSystem: _fileSystem,
                    appHostShellShimMaker: new AppHostShellShimMakerMock(_fileSystem),
                    filePermissionSetter: new NoOpFilePermissionSetter());
            _environmentPathInstructionMock =
                new EnvironmentPathInstructionMock(_reporter, _pathToPlaceShim);
            _createToolPackageStoreAndInstaller = (_) => (_toolPackageStore, _toolPackageStoreQuery, CreateToolPackageInstaller());

            ParseResult result = Parser.Instance.Parse($"dotnet tool install -g {PackageId}");

            _appliedCommand = result["dotnet"]["tool"]["install"];
            var parser = Parser.Instance;

            _parseResult = parser.ParseFrom("dotnet tool", new[] { "install", "-g", PackageId });
        }
Example #3
0
        public ToolInstallCommand(
            AppliedOption appliedCommand,
            ParseResult parseResult,
            CreateToolPackageStoreAndInstaller createToolPackageStoreAndInstaller = null,
            CreateShellShimRepository createShellShimRepository    = null,
            IEnvironmentPathInstruction environmentPathInstruction = null,
            IReporter reporter = null)
            : base(parseResult)
        {
            if (appliedCommand == null)
            {
                throw new ArgumentNullException(nameof(appliedCommand));
            }

            _packageId      = new PackageId(appliedCommand.Arguments.Single());
            _packageVersion = appliedCommand.ValueOrDefault <string>("version");
            _configFilePath = appliedCommand.ValueOrDefault <string>("configfile");
            _framework      = appliedCommand.ValueOrDefault <string>("framework");
            _source         = appliedCommand.ValueOrDefault <string[]>("add-source");
            _global         = appliedCommand.ValueOrDefault <bool>("global");
            _verbosity      = appliedCommand.SingleArgumentOrDefault("verbosity");
            _toolPath       = appliedCommand.SingleArgumentOrDefault("tool-path");

            _createToolPackageStoreAndInstaller = createToolPackageStoreAndInstaller ?? ToolPackageFactory.CreateToolPackageStoreAndInstaller;

            _environmentPathInstruction = environmentPathInstruction
                                          ?? EnvironmentPathFactory.CreateEnvironmentPathInstruction();
            _createShellShimRepository = createShellShimRepository ?? ShellShimRepositoryFactory.CreateShellShimRepository;

            _reporter      = (reporter ?? Reporter.Output);
            _errorReporter = (reporter ?? Reporter.Error);
        }
Example #4
0
        public ToolUpdateGlobalOrToolPathCommand(ParseResult parseResult,
                                                 CreateToolPackageStoresAndInstallerAndUninstaller createToolPackageStoreInstallerUninstaller = null,
                                                 CreateShellShimRepository createShellShimRepository = null,
                                                 IReporter reporter = null)
            : base(parseResult)
        {
            _packageId               = new PackageId(parseResult.ValueForArgument <string>(ToolUninstallCommandParser.PackageIdArgument));
            _configFilePath          = parseResult.ValueForOption <string>(ToolUpdateCommandParser.ConfigOption);
            _framework               = parseResult.ValueForOption <string>(ToolUpdateCommandParser.FrameworkOption);
            _additionalFeeds         = parseResult.ValueForOption <string[]>(ToolUpdateCommandParser.AddSourceOption);
            _packageVersion          = parseResult.ValueForOption <string>(ToolUpdateCommandParser.VersionOption);
            _global                  = parseResult.ValueForOption <bool>(ToolUpdateCommandParser.GlobalOption);
            _verbosity               = Enum.GetName(parseResult.ValueForOption <VerbosityOptions>(ToolUpdateCommandParser.VerbosityOption));
            _toolPath                = parseResult.ValueForOption <string>(ToolUpdateCommandParser.ToolPathOption);
            _forwardRestoreArguments = parseResult.OptionValuesToBeForwarded(ToolUpdateCommandParser.GetCommand());

            _createToolPackageStoreInstallerUninstaller = createToolPackageStoreInstallerUninstaller ??
                                                          ToolPackageFactory.CreateToolPackageStoresAndInstallerAndUninstaller;

            _createShellShimRepository =
                createShellShimRepository ?? ShellShimRepositoryFactory.CreateShellShimRepository;

            _reporter      = (reporter ?? Reporter.Output);
            _errorReporter = (reporter ?? Reporter.Error);
        }
Example #5
0
        public ToolUpdateCommand(AppliedOption appliedCommand,
                                 ParseResult parseResult,
                                 CreateToolPackageStoresAndInstallerAndUninstaller createToolPackageStoreInstallerUninstaller = null,
                                 CreateShellShimRepository createShellShimRepository = null,
                                 IReporter reporter = null)
            : base(parseResult)
        {
            if (appliedCommand == null)
            {
                throw new ArgumentNullException(nameof(appliedCommand));
            }

            _packageId               = new PackageId(appliedCommand.Arguments.Single());
            _configFilePath          = appliedCommand.ValueOrDefault <string>("configfile");
            _framework               = appliedCommand.ValueOrDefault <string>("framework");
            _additionalFeeds         = appliedCommand.ValueOrDefault <string[]>("add-source");
            _global                  = appliedCommand.ValueOrDefault <bool>("global");
            _verbosity               = appliedCommand.SingleArgumentOrDefault("verbosity");
            _toolPath                = appliedCommand.SingleArgumentOrDefault("tool-path");
            _forwardRestoreArguments = appliedCommand.OptionValuesToBeForwarded();

            _createToolPackageStoreInstallerUninstaller = createToolPackageStoreInstallerUninstaller ??
                                                          ToolPackageFactory.CreateToolPackageStoresAndInstallerAndUninstaller;

            _createShellShimRepository =
                createShellShimRepository ?? ShellShimRepositoryFactory.CreateShellShimRepository;

            _reporter      = (reporter ?? Reporter.Output);
            _errorReporter = (reporter ?? Reporter.Error);
        }
Example #6
0
        public ToolInstallGlobalOrToolPathCommand(
            ParseResult parseResult,
            CreateToolPackageStoresAndInstaller createToolPackageStoreAndInstaller = null,
            CreateShellShimRepository createShellShimRepository    = null,
            IEnvironmentPathInstruction environmentPathInstruction = null,
            IReporter reporter = null)
            : base(parseResult)
        {
            _packageId      = new PackageId(parseResult.ValueForArgument <string>(ToolInstallCommandParser.PackageIdArgument));
            _packageVersion = parseResult.ValueForOption <string>(ToolInstallCommandParser.VersionOption);
            _configFilePath = parseResult.ValueForOption <string>(ToolInstallCommandParser.ConfigOption);
            _framework      = parseResult.ValueForOption <string>(ToolInstallCommandParser.FrameworkOption);
            _source         = parseResult.ValueForOption <string[]>(ToolInstallCommandParser.AddSourceOption);
            _global         = parseResult.ValueForOption <bool>(ToolAppliedOption.GlobalOptionAliases.First());
            _verbosity      = Enum.GetName(parseResult.ValueForOption <VerbosityOptions>(ToolInstallCommandParser.VerbosityOption));
            _toolPath       = parseResult.ValueForOption <string>(ToolAppliedOption.ToolPathOptionAlias);

            _createToolPackageStoresAndInstaller = createToolPackageStoreAndInstaller ?? ToolPackageFactory.CreateToolPackageStoresAndInstaller;
            _forwardRestoreArguments             = parseResult.OptionValuesToBeForwarded(ToolInstallCommandParser.GetCommand());

            _environmentPathInstruction = environmentPathInstruction
                                          ?? EnvironmentPathFactory.CreateEnvironmentPathInstruction();
            _createShellShimRepository = createShellShimRepository ?? ShellShimRepositoryFactory.CreateShellShimRepository;

            _reporter      = (reporter ?? Reporter.Output);
            _errorReporter = (reporter ?? Reporter.Error);
        }
        public ToolUninstallGlobalOrToolPathCommand(
            ParseResult result,
            CreateToolPackageStoresAndUninstaller createToolPackageStoreAndUninstaller = null,
            CreateShellShimRepository createShellShimRepository = null,
            IReporter reporter = null)
            : base(result)
        {
            _reporter      = reporter ?? Reporter.Output;
            _errorReporter = reporter ?? Reporter.Error;

            _createShellShimRepository             = createShellShimRepository ?? ShellShimRepositoryFactory.CreateShellShimRepository;
            _createToolPackageStoresAndUninstaller = createToolPackageStoreAndUninstaller ??
                                                     ToolPackageFactory.CreateToolPackageStoresAndUninstaller;
        }
        public ToolUninstallCommand(
            AppliedOption options,
            ParseResult result,
            CreateToolPackageStore createToolPackageStore       = null,
            CreateShellShimRepository createShellShimRepository = null,
            IReporter reporter = null)
            : base(result)
        {
            _options       = options ?? throw new ArgumentNullException(nameof(options));
            _reporter      = reporter ?? Reporter.Output;
            _errorReporter = reporter ?? Reporter.Error;

            _createShellShimRepository = createShellShimRepository ?? ShellShimRepositoryFactory.CreateShellShimRepository;
            _createToolPackageStore    = createToolPackageStore ?? ToolPackageFactory.CreateToolPackageStore;
        }
Example #9
0
        public UninstallToolCommand(
            AppliedOption options,
            ParseResult result,
            CreateToolPackageStore createToolPackageStoreAndInstaller = null,
            CreateShellShimRepository createShellShimRepository       = null,
            IReporter reporter = null)
            : base(result)
        {
            var pathCalculator = new CliFolderPathCalculator();

            _options       = options ?? throw new ArgumentNullException(nameof(options));
            _reporter      = reporter ?? Reporter.Output;
            _errorReporter = reporter ?? Reporter.Error;

            _createShellShimRepository          = createShellShimRepository ?? ShellShimRepositoryFactory.CreateShellShimRepository;
            _createToolPackageStoreAndInstaller = createToolPackageStoreAndInstaller ?? ToolPackageFactory.CreateToolPackageStore;
        }
Example #10
0
        public InstallToolCommandTests()
        {
            _reporter                  = new BufferedReporter();
            _fileSystem                = new FileSystemMockBuilder().Build();
            _toolPackageStore          = new ToolPackageStoreMock(new DirectoryPath(PathToPlacePackages), _fileSystem);
            _createShellShimRepository =
                (nonGlobalLocation) => new ShellShimRepositoryMock(new DirectoryPath(PathToPlaceShim), _fileSystem);
            _environmentPathInstructionMock =
                new EnvironmentPathInstructionMock(_reporter, PathToPlaceShim);
            _createToolPackageStoreAndInstaller = (_) => (_toolPackageStore, CreateToolPackageInstaller());

            ParseResult result = Parser.Instance.Parse($"dotnet install tool -g {PackageId}");

            _appliedCommand = result["dotnet"]["install"]["tool"];
            var parser = Parser.Instance;

            _parseResult = parser.ParseFrom("dotnet install", new[] { "tool", PackageId });
        }
        public ToolInstallGlobalOrToolPathCommand(
            ParseResult parseResult,
            CreateToolPackageStoresAndInstaller createToolPackageStoreAndInstaller = null,
            CreateShellShimRepository createShellShimRepository    = null,
            IEnvironmentPathInstruction environmentPathInstruction = null,
            IReporter reporter = null,
            INuGetPackageDownloader nugetPackageDownloader = null)
            : base(parseResult)
        {
            _packageId          = new PackageId(parseResult.ValueForArgument <string>(ToolInstallCommandParser.PackageIdArgument));
            _packageVersion     = parseResult.ValueForOption <string>(ToolInstallCommandParser.VersionOption);
            _configFilePath     = parseResult.ValueForOption <string>(ToolInstallCommandParser.ConfigOption);
            _framework          = parseResult.ValueForOption <string>(ToolInstallCommandParser.FrameworkOption);
            _source             = parseResult.ValueForOption <string[]>(ToolInstallCommandParser.AddSourceOption);
            _global             = parseResult.ValueForOption <bool>(ToolAppliedOption.GlobalOptionAliases.First());
            _verbosity          = Enum.GetName(parseResult.ValueForOption <VerbosityOptions>(ToolInstallCommandParser.VerbosityOption));
            _toolPath           = parseResult.ValueForOption <string>(ToolAppliedOption.ToolPathOptionAlias);
            _architectureOption = parseResult.ValueForOption <string>(ToolInstallCommandParser.ArchitectureOption);

            _createToolPackageStoresAndInstaller = createToolPackageStoreAndInstaller ?? ToolPackageFactory.CreateToolPackageStoresAndInstaller;
            _forwardRestoreArguments             = parseResult.OptionValuesToBeForwarded(ToolInstallCommandParser.GetCommand());

            _environmentPathInstruction = environmentPathInstruction
                                          ?? EnvironmentPathFactory.CreateEnvironmentPathInstruction();
            _createShellShimRepository = createShellShimRepository ?? ShellShimRepositoryFactory.CreateShellShimRepository;
            var tempDir               = new DirectoryPath(Path.Combine(Path.GetTempPath(), "dotnet-tool-install"));
            var configOption          = parseResult.ValueForOption(ToolInstallCommandParser.ConfigOption);
            var sourceOption          = parseResult.ValueForOption(ToolInstallCommandParser.AddSourceOption);
            var packageSourceLocation = new PackageSourceLocation(string.IsNullOrEmpty(configOption) ? null : new FilePath(configOption), additionalSourceFeeds: sourceOption);
            var restoreAction         = new RestoreActionConfig(DisableParallel: parseResult.ValueForOption(ToolCommandRestorePassThroughOptions.DisableParallelOption),
                                                                NoCache: parseResult.ValueForOption(ToolCommandRestorePassThroughOptions.NoCacheOption),
                                                                IgnoreFailedSources: parseResult.ValueForOption(ToolCommandRestorePassThroughOptions.IgnoreFailedSourcesOption),
                                                                Interactive: parseResult.ValueForOption(ToolCommandRestorePassThroughOptions.InteractiveRestoreOption));

            nugetPackageDownloader ??= new NuGetPackageDownloader(tempDir, verboseLogger: new NullLogger(), restoreActionConfig: restoreAction);
            _shellShimTemplateFinder = new ShellShimTemplateFinder(nugetPackageDownloader, tempDir, packageSourceLocation);

            _reporter      = (reporter ?? Reporter.Output);
            _errorReporter = (reporter ?? Reporter.Error);
        }