public ToolInstallLocalCommand( AppliedOption appliedCommand, ParseResult parseResult, IToolPackageInstaller toolPackageInstaller = null, IToolManifestFinder toolManifestFinder = null, IToolManifestEditor toolManifestEditor = null, ILocalToolsResolverCache localToolsResolverCache = null, IReporter reporter = null) : base(parseResult) { if (appliedCommand == null) { throw new ArgumentNullException(nameof(appliedCommand)); } _explicitManifestFile = appliedCommand.SingleArgumentOrDefault(ToolAppliedOption.ToolManifest); _reporter = (reporter ?? Reporter.Output); _toolManifestFinder = toolManifestFinder ?? new ToolManifestFinder(new DirectoryPath(Directory.GetCurrentDirectory())); _toolManifestEditor = toolManifestEditor ?? new ToolManifestEditor(); _localToolsResolverCache = localToolsResolverCache ?? new LocalToolsResolverCache(); _toolLocalPackageInstaller = new ToolInstallLocalInstaller(appliedCommand, toolPackageInstaller); }
public ToolRestoreCommandWithMultipleNugetConfigTests() { _packageVersionA = NuGetVersion.Parse("1.0.4"); _packageVersionB = NuGetVersion.Parse("1.0.4"); _reporter = new BufferedReporter(); _fileSystem = new FileSystemMockBuilder().UseCurrentSystemTemporaryDirectory().Build(); _nugetGlobalPackagesFolder = new DirectoryPath(NuGetGlobalPackagesFolder.GetLocation()); string temporaryDirectory = _fileSystem.Directory.CreateTemporaryDirectory().DirectoryPath; string pathToPlacePackages = Path.Combine(temporaryDirectory, "pathToPlacePackage"); ToolPackageStoreMock toolPackageStoreMock = new ToolPackageStoreMock(new DirectoryPath(pathToPlacePackages), _fileSystem); SetupFileLayoutAndFeed(temporaryDirectory, toolPackageStoreMock); ParseResult result = Parser.Instance.Parse("dotnet tool restore"); _appliedCommand = result["dotnet"]["tool"]["restore"]; Cli.CommandLine.Parser parser = Parser.Instance; _parseResult = parser.ParseFrom("dotnet tool", new[] { "restore" }); _localToolsResolverCache = new LocalToolsResolverCache( _fileSystem, new DirectoryPath(Path.Combine(temporaryDirectory, "cache")), 1); }
public ToolInstallLocalCommandTests() { _packageVersionA = NuGetVersion.Parse("1.0.4"); _reporter = new BufferedReporter(); _fileSystem = new FileSystemMockBuilder().UseCurrentSystemTemporaryDirectory().Build(); _nugetGlobalPackagesFolder = new DirectoryPath(NuGetGlobalPackagesFolder.GetLocation()); _temporaryDirectory = _fileSystem.Directory.CreateTemporaryDirectory().DirectoryPath; _pathToPlacePackages = Path.Combine(_temporaryDirectory, "pathToPlacePackage"); ToolPackageStoreMock toolPackageStoreMock = new ToolPackageStoreMock(new DirectoryPath(_pathToPlacePackages), _fileSystem); _toolPackageStore = toolPackageStoreMock; _toolPackageInstallerMock = new ToolPackageInstallerMock( _fileSystem, _toolPackageStore, new ProjectRestorerMock( _fileSystem, _reporter, new[] { new MockFeed { Type = MockFeedType.ImplicitAdditionalFeed, Packages = new List <MockFeedPackage> { new MockFeedPackage { PackageId = _packageIdA.ToString(), Version = _packageVersionA.ToNormalizedString(), ToolCommandName = _toolCommandNameA.ToString() } } } })); _localToolsResolverCache = new LocalToolsResolverCache( _fileSystem, new DirectoryPath(Path.Combine(_temporaryDirectory, "cache")), 1); _manifestFilePath = Path.Combine(_temporaryDirectory, "dotnet-tools.json"); _fileSystem.File.WriteAllText(Path.Combine(_temporaryDirectory, _manifestFilePath), _jsonContent); _toolManifestFinder = new ToolManifestFinder(new DirectoryPath(_temporaryDirectory), _fileSystem); _toolManifestEditor = new ToolManifestEditor(_fileSystem); ParseResult result = Parser.Instance.Parse($"dotnet tool install {_packageIdA.ToString()}"); _appliedCommand = result["dotnet"]["tool"]["install"]; Cli.CommandLine.Parser parser = Parser.Instance; _parseResult = parser.ParseFrom("dotnet tool", new[] { "install", _packageIdA.ToString() }); _localToolsResolverCache = new LocalToolsResolverCache( _fileSystem, new DirectoryPath(Path.Combine(_temporaryDirectory, "cache")), 1); }
public ToolRestoreCommandTests() { _packageVersionA = NuGetVersion.Parse("1.0.4"); _packageVersionWithCommandNameCollisionWithA = NuGetVersion.Parse("1.0.9"); _packageVersionB = NuGetVersion.Parse("1.0.4"); _reporter = new BufferedReporter(); _fileSystem = new FileSystemMockBuilder().UseCurrentSystemTemporaryDirectory().Build(); _nugetGlobalPackagesFolder = new DirectoryPath(NuGetGlobalPackagesFolder.GetLocation()); _temporaryDirectory = _fileSystem.Directory.CreateTemporaryDirectory().DirectoryPath; _pathToPlacePackages = Path.Combine(_temporaryDirectory, "pathToPlacePackage"); ToolPackageStoreMock toolPackageStoreMock = new ToolPackageStoreMock(new DirectoryPath(_pathToPlacePackages), _fileSystem); _toolPackageStore = toolPackageStoreMock; _toolPackageInstallerMock = new ToolPackageInstallerMock( _fileSystem, _toolPackageStore, new ProjectRestorerMock( _fileSystem, _reporter, new List <MockFeed> { new MockFeed { Type = MockFeedType.ImplicitAdditionalFeed, Packages = new List <MockFeedPackage> { new MockFeedPackage { PackageId = _packageIdA.ToString(), Version = _packageVersionA.ToNormalizedString(), ToolCommandName = _toolCommandNameA.ToString() }, new MockFeedPackage { PackageId = _packageIdB.ToString(), Version = _packageVersionB.ToNormalizedString(), ToolCommandName = _toolCommandNameB.ToString() }, new MockFeedPackage { PackageId = _packageIdWithCommandNameCollisionWithA.ToString(), Version = _packageVersionWithCommandNameCollisionWithA.ToNormalizedString(), ToolCommandName = "A" } } } }), installCallback: () => _installCalledCount++); _parseResult = Parser.Instance.Parse("dotnet tool restore"); _localToolsResolverCache = new LocalToolsResolverCache( _fileSystem, new DirectoryPath(Path.Combine(_temporaryDirectory, "cache")), 1); }
public LocalToolsCommandResolver( ToolManifestFinder toolManifest = null, ILocalToolsResolverCache localToolsResolverCache = null, IFileSystem fileSystem = null) { _toolManifest = toolManifest ?? new ToolManifestFinder(new DirectoryPath(Directory.GetCurrentDirectory())); _localToolsResolverCache = localToolsResolverCache ?? new LocalToolsResolverCache(); _fileSystem = fileSystem ?? new FileSystemWrapper(); }
public LocalToolsCommandResolver( ToolManifestFinder toolManifest = null, ILocalToolsResolverCache localToolsResolverCache = null, IFileSystem fileSystem = null, DirectoryPath?nugetGlobalPackagesFolder = null) { _toolManifest = toolManifest ?? new ToolManifestFinder(new DirectoryPath(Directory.GetCurrentDirectory())); _localToolsResolverCache = localToolsResolverCache ?? new LocalToolsResolverCache(); _fileSystem = fileSystem ?? new FileSystemWrapper(); _nugetGlobalPackagesFolder = nugetGlobalPackagesFolder ?? new DirectoryPath(NuGetGlobalPackagesFolder.GetLocation()); }
public ToolUpdateLocalCommand( AppliedOption appliedCommand, ParseResult parseResult, IToolPackageInstaller toolPackageInstaller = null, IToolManifestFinder toolManifestFinder = null, IToolManifestEditor toolManifestEditor = null, ILocalToolsResolverCache localToolsResolverCache = null, IReporter reporter = null) : base(parseResult) { if (appliedCommand == null) { throw new ArgumentNullException(nameof(appliedCommand)); } _packageId = new PackageId(appliedCommand.Arguments.Single()); _explicitManifestFile = appliedCommand.SingleArgumentOrDefault(ToolAppliedOption.ToolManifest); _reporter = (reporter ?? Reporter.Output); if (toolPackageInstaller == null) { (IToolPackageStore, IToolPackageStoreQuery, IToolPackageInstaller installer)toolPackageStoresAndInstaller = ToolPackageFactory.CreateToolPackageStoresAndInstaller( additionalRestoreArguments: appliedCommand.OptionValuesToBeForwarded()); _toolPackageInstaller = toolPackageStoresAndInstaller.installer; } else { _toolPackageInstaller = toolPackageInstaller; } _toolManifestFinder = toolManifestFinder ?? new ToolManifestFinder(new DirectoryPath(Directory.GetCurrentDirectory())); _toolManifestEditor = toolManifestEditor ?? new ToolManifestEditor(); _localToolsResolverCache = localToolsResolverCache ?? new LocalToolsResolverCache(); _toolLocalPackageInstaller = new ToolInstallLocalInstaller(appliedCommand, toolPackageInstaller); _toolInstallLocalCommand = new Lazy <ToolInstallLocalCommand>( () => new ToolInstallLocalCommand( appliedCommand, parseResult, _toolPackageInstaller, _toolManifestFinder, _toolManifestEditor, _localToolsResolverCache, _reporter)); }
public ToolInstallLocalCommand( AppliedOption appliedCommand, ParseResult parseResult, IToolPackageInstaller toolPackageInstaller = null, IToolManifestFinder toolManifestFinder = null, IToolManifestEditor toolManifestEditor = null, ILocalToolsResolverCache localToolsResolverCache = null, DirectoryPath?nugetGlobalPackagesFolder = 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"); _sources = appliedCommand.ValueOrDefault <string[]>("add-source"); _verbosity = appliedCommand.SingleArgumentOrDefault("verbosity"); _explicitManifestFile = appliedCommand.SingleArgumentOrDefault("--tool-manifest"); _reporter = (reporter ?? Reporter.Output); if (toolPackageInstaller == null) { (IToolPackageStore, IToolPackageStoreQuery, IToolPackageInstaller installer)toolPackageStoresAndInstaller = ToolPackageFactory.CreateToolPackageStoresAndInstaller( additionalRestoreArguments: appliedCommand.OptionValuesToBeForwarded()); _toolPackageInstaller = toolPackageStoresAndInstaller.installer; } else { _toolPackageInstaller = toolPackageInstaller; } _toolManifestFinder = toolManifestFinder ?? new ToolManifestFinder(new DirectoryPath(Directory.GetCurrentDirectory())); _toolManifestEditor = toolManifestEditor ?? new ToolManifestEditor(); _localToolsResolverCache = localToolsResolverCache ?? new LocalToolsResolverCache(); _nugetGlobalPackagesFolder = nugetGlobalPackagesFolder ?? new DirectoryPath(NuGetGlobalPackagesFolder.GetLocation()); }
public ToolRestoreCommand( AppliedOption appliedCommand, ParseResult result, IToolPackageInstaller toolPackageInstaller = null, IToolManifestFinder toolManifestFinder = null, ILocalToolsResolverCache localToolsResolverCache = null, DirectoryPath?nugetGlobalPackagesFolder = null, IReporter reporter = null) : base(result) { _options = appliedCommand ?? throw new ArgumentNullException(nameof(appliedCommand)); if (toolPackageInstaller == null) { (IToolPackageStore, IToolPackageStoreQuery, IToolPackageInstaller installer)toolPackageStoresAndInstaller = ToolPackageFactory.CreateToolPackageStoresAndInstaller( additionalRestoreArguments: appliedCommand.OptionValuesToBeForwarded()); _toolPackageInstaller = toolPackageStoresAndInstaller.installer; } else { _toolPackageInstaller = toolPackageInstaller; } _toolManifestFinder = toolManifestFinder ?? new ToolManifestFinder(new DirectoryPath(Directory.GetCurrentDirectory())); _localToolsResolverCache = localToolsResolverCache ?? new LocalToolsResolverCache( new FileSystemWrapper(), new DirectoryPath( Path.Combine(CliFolderPathCalculator.ToolsResolverCachePath)), LocalToolResolverCacheVersion); _nugetGlobalPackagesFolder = nugetGlobalPackagesFolder ?? new DirectoryPath(NuGetGlobalPackagesFolder.GetLocation()); _reporter = reporter ?? Reporter.Output; _errorReporter = reporter ?? Reporter.Error; _configFilePath = appliedCommand.ValueOrDefault <string>("configfile"); _sources = appliedCommand.ValueOrDefault <string[]>("add-source"); _verbosity = appliedCommand.SingleArgumentOrDefault("verbosity"); }
public ToolInstallLocalCommand( ParseResult parseResult, IToolPackageInstaller toolPackageInstaller = null, IToolManifestFinder toolManifestFinder = null, IToolManifestEditor toolManifestEditor = null, ILocalToolsResolverCache localToolsResolverCache = null, IReporter reporter = null) : base(parseResult) { _explicitManifestFile = parseResult.ValueForOption <string>(ToolAppliedOption.ToolManifestOptionAlias); _reporter = (reporter ?? Reporter.Output); _toolManifestFinder = toolManifestFinder ?? new ToolManifestFinder(new DirectoryPath(Directory.GetCurrentDirectory())); _toolManifestEditor = toolManifestEditor ?? new ToolManifestEditor(); _localToolsResolverCache = localToolsResolverCache ?? new LocalToolsResolverCache(); _toolLocalPackageInstaller = new ToolInstallLocalInstaller(parseResult, toolPackageInstaller); }
public ToolUpdateLocalCommand( ParseResult parseResult, IToolPackageInstaller toolPackageInstaller = null, IToolManifestFinder toolManifestFinder = null, IToolManifestEditor toolManifestEditor = null, ILocalToolsResolverCache localToolsResolverCache = null, IReporter reporter = null) : base(parseResult) { _packageId = new PackageId(parseResult.GetValueForArgument(ToolUpdateCommandParser.PackageIdArgument)); _explicitManifestFile = parseResult.GetValueForOption(ToolUpdateCommandParser.ToolManifestOption); _reporter = (reporter ?? Reporter.Output); if (toolPackageInstaller == null) { (IToolPackageStore, IToolPackageStoreQuery, IToolPackageInstaller installer)toolPackageStoresAndInstaller = ToolPackageFactory.CreateToolPackageStoresAndInstaller( additionalRestoreArguments: parseResult.OptionValuesToBeForwarded(ToolUpdateCommandParser.GetCommand())); _toolPackageInstaller = toolPackageStoresAndInstaller.installer; } else { _toolPackageInstaller = toolPackageInstaller; } _toolManifestFinder = toolManifestFinder ?? new ToolManifestFinder(new DirectoryPath(Directory.GetCurrentDirectory())); _toolManifestEditor = toolManifestEditor ?? new ToolManifestEditor(); _localToolsResolverCache = localToolsResolverCache ?? new LocalToolsResolverCache(); _toolLocalPackageInstaller = new ToolInstallLocalInstaller(parseResult, toolPackageInstaller); _toolInstallLocalCommand = new Lazy <ToolInstallLocalCommand>( () => new ToolInstallLocalCommand( parseResult, _toolPackageInstaller, _toolManifestFinder, _toolManifestEditor, _localToolsResolverCache, _reporter)); }
public ToolRestoreCommand( ParseResult result, IToolPackageInstaller toolPackageInstaller = null, IToolManifestFinder toolManifestFinder = null, ILocalToolsResolverCache localToolsResolverCache = null, IFileSystem fileSystem = null, IReporter reporter = null) : base(result) { if (toolPackageInstaller == null) { (IToolPackageStore, IToolPackageStoreQuery, IToolPackageInstaller installer)toolPackageStoresAndInstaller = ToolPackageFactory.CreateToolPackageStoresAndInstaller( additionalRestoreArguments: result.OptionValuesToBeForwarded(ToolRestoreCommandParser.GetCommand())); _toolPackageInstaller = toolPackageStoresAndInstaller.installer; } else { _toolPackageInstaller = toolPackageInstaller; } _toolManifestFinder = toolManifestFinder ?? new ToolManifestFinder(new DirectoryPath(Directory.GetCurrentDirectory())); _localToolsResolverCache = localToolsResolverCache ?? new LocalToolsResolverCache(); _fileSystem = fileSystem ?? new FileSystemWrapper(); _reporter = reporter ?? Reporter.Output; _errorReporter = reporter ?? Reporter.Error; _configFilePath = result.ValueForOption <string>(ToolRestoreCommandParser.ConfigOption); _sources = result.ValueForOption <string[]>(ToolRestoreCommandParser.AddSourceOption); _verbosity = Enum.GetName(result.ValueForOption <VerbosityOptions>(ToolRestoreCommandParser.VerbosityOption)); }
public static void SaveToolPackage( this ILocalToolsResolverCache localToolsResolverCache, IToolPackage toolDownloadedPackage, string targetFrameworkToInstall) { if (localToolsResolverCache == null) { throw new ArgumentNullException(nameof(localToolsResolverCache)); } if (toolDownloadedPackage == null) { throw new ArgumentNullException(nameof(toolDownloadedPackage)); } if (string.IsNullOrWhiteSpace(targetFrameworkToInstall)) { throw new ArgumentException("targetFrameworkToInstall cannot be null or whitespace", nameof(targetFrameworkToInstall)); } foreach (var restoredCommand in toolDownloadedPackage.Commands) { localToolsResolverCache.Save( new Dictionary <RestoredCommandIdentifier, RestoredCommand> { [new RestoredCommandIdentifier( toolDownloadedPackage.Id, toolDownloadedPackage.Version, NuGetFramework.Parse(targetFrameworkToInstall), Constants.AnyRid, restoredCommand.Name)] = restoredCommand }); } }
public ToolUpdateLocalCommandTests() { _reporter = new BufferedReporter(); _fileSystem = new FileSystemMockBuilder().UseCurrentSystemTemporaryDirectory().Build(); _temporaryDirectoryParent = _fileSystem.Directory.CreateTemporaryDirectory().DirectoryPath; _temporaryDirectory = Path.Combine(_temporaryDirectoryParent, "sub"); _fileSystem.Directory.CreateDirectory(_temporaryDirectory); _pathToPlacePackages = Path.Combine(_temporaryDirectory, "pathToPlacePackage"); _packageOriginalVersionA = NuGetVersion.Parse("1.0.0"); _packageNewVersionA = NuGetVersion.Parse("2.0.0"); ToolPackageStoreMock toolPackageStoreMock = new ToolPackageStoreMock(new DirectoryPath(_pathToPlacePackages), _fileSystem); _toolPackageStore = toolPackageStoreMock; _mockFeed = new MockFeed { Type = MockFeedType.ImplicitAdditionalFeed, Packages = new List <MockFeedPackage> { new MockFeedPackage { PackageId = _packageIdA.ToString(), Version = _packageOriginalVersionA.ToNormalizedString(), ToolCommandName = _toolCommandNameA.ToString() } } }; _toolPackageInstallerMock = new ToolPackageInstallerMock( _fileSystem, _toolPackageStore, new ProjectRestorerMock( _fileSystem, _reporter, new List <MockFeed> { _mockFeed })); _localToolsResolverCache = new LocalToolsResolverCache( _fileSystem, new DirectoryPath(Path.Combine(_temporaryDirectory, "cache")), 1); _manifestFilePath = Path.Combine(_temporaryDirectory, "dotnet-tools.json"); _fileSystem.File.WriteAllText(Path.Combine(_temporaryDirectory, _manifestFilePath), _jsonContent); _toolManifestFinder = new ToolManifestFinder(new DirectoryPath(_temporaryDirectory), _fileSystem, new FakeDangerousFileDetector()); _toolManifestEditor = new ToolManifestEditor(_fileSystem, new FakeDangerousFileDetector()); _parseResult = Parser.Instance.Parse($"dotnet tool update {_packageIdA.ToString()}"); _toolRestoreCommand = new ToolRestoreCommand( _parseResult, _toolPackageInstallerMock, _toolManifestFinder, _localToolsResolverCache, _fileSystem, _reporter ); _defaultToolUpdateLocalCommand = new ToolUpdateLocalCommand( _parseResult, _toolPackageInstallerMock, _toolManifestFinder, _toolManifestEditor, _localToolsResolverCache, _reporter); }