public void WhenRunWithExplicitManifestFileItShouldUpdateFromExplicitManifestFile() { string explicitManifestFilePath = Path.Combine(_temporaryDirectory, "subdirectory", "dotnet-tools.json"); _fileSystem.File.Delete(_manifestFilePath); _fileSystem.Directory.CreateDirectory(Path.Combine(_temporaryDirectory, "subdirectory")); _fileSystem.File.WriteAllText(explicitManifestFilePath, _jsonContent); ParseResult parseResult = Parser.Instance.Parse( $"dotnet tool update {_packageIdA.ToString()} --tool-manifest {explicitManifestFilePath}"); _toolRestoreCommand.Execute(); _mockFeed.Packages[0].Version = _packageNewVersionA.ToNormalizedString(); ToolUpdateLocalCommand toolUpdateLocalCommand = new ToolUpdateLocalCommand( parseResult, _toolPackageInstallerMock, _toolManifestFinder, _toolManifestEditor, _localToolsResolverCache, _reporter); toolUpdateLocalCommand.Execute().Should().Be(0); AssertUpdateSuccess(new FilePath(explicitManifestFilePath)); }
public void WhenRunFromToolUpdateRedirectCommandWithPackageIdItShouldUpdateFromManifestFile() { ParseResult parseResult = Parser.Instance.Parse($"dotnet tool update {_packageIdA.ToString()}"); _toolRestoreCommand.Execute(); _mockFeed.Packages[0].Version = _packageNewVersionA.ToNormalizedString(); ToolUpdateLocalCommand toolUpdateLocalCommand = new ToolUpdateLocalCommand( parseResult, _toolPackageInstallerMock, _toolManifestFinder, _toolManifestEditor, _localToolsResolverCache, _reporter); ToolUpdateCommand toolUpdateCommand = new ToolUpdateCommand( parseResult, toolUpdateLocalCommand: toolUpdateLocalCommand); toolUpdateCommand.Execute().Should().Be(0); }
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); }