public void GivenPathNotSetItAddsToEnvironment() { var reporter = new BufferedReporter(); var toolsPath = new BashPathUnderHomeDirectory("/home/user", ".dotnet/tools"); var pathValue = @"/usr/bin"; var provider = new Mock <IEnvironmentProvider>(MockBehavior.Strict); IFileSystem fileSystem = new FileSystemMockBuilder().Build(); fileSystem.Directory.CreateDirectory("/etc/profile.d"); provider .Setup(p => p.GetEnvironmentVariable("PATH")) .Returns(pathValue); var environmentPath = new LinuxEnvironmentPath( toolsPath, reporter, provider.Object, fileSystem.File); environmentPath.AddPackageExecutablePathToUserPath(); reporter.Lines.Should().BeEmpty(); fileSystem .File .ReadAllText(LinuxEnvironmentPath.DotnetCliToolsProfilePath) .Should() .Be($"export PATH=\"$PATH:{toolsPath.PathWithDollar}\""); }
public void GivenASuccessfulShutdownItDoesNotThrow() { const int ProcessId = 1234; const string PipeName = "some-pipe-name"; string pidDirectory = Path.GetFullPath("var/pids/build"); string pidFilePath = Path.Combine(pidDirectory, $"{RazorPidFile.FilePrefix}{ProcessId}"); var fileSystemMock = new FileSystemMockBuilder() .AddFile(pidFilePath, "") .UseCurrentSystemTemporaryDirectory() .Build(); fileSystemMock.File.Exists(pidFilePath).Should().BeTrue(); var serverPath = Path.Combine(fileSystemMock.Directory.CreateTemporaryDirectory().DirectoryPath, "path/to/rzc.dll"); var server = new RazorServer( pidFile: new RazorPidFile( path: new FilePath(pidFilePath), processId: ProcessId, serverPath: new FilePath(serverPath), pipeName: PipeName), commandFactory: CreateCommandFactoryMock(serverPath, PipeName).Object, fileSystem: fileSystemMock); server.Shutdown(); fileSystemMock.File.Exists(pidFilePath).Should().BeFalse(); }
public GivenANuGetCachePrimer() { var fileSystemMockBuilder = FileSystemMockBuilder.Create(); fileSystemMockBuilder.TemporaryFolder = TEMPORARY_FOLDER_PATH; fileSystemMockBuilder.AddFile(COMPRESSED_ARCHIVE_PATH); _fileSystemMock = fileSystemMockBuilder.Build(); _temporaryDirectoryMock = (ITemporaryDirectoryMock)_fileSystemMock.Directory.CreateTemporaryDirectory(); _commandFactoryMock = SetupCommandFactoryMock(); _nugetPackagesArchiverMock = new Mock <INuGetPackagesArchiver>(); _nugetPackagesArchiverMock.Setup(n => n.ExtractArchive()).Returns(PACKAGES_ARCHIVE_PATH); _nugetPackagesArchiverMock.Setup(n => n.NuGetPackagesArchive).Returns(COMPRESSED_ARCHIVE_PATH); _nugetCacheSentinel = new Mock <INuGetCacheSentinel>(); var nugetCachePrimer = new NuGetCachePrimer( _commandFactoryMock.Object, _nugetPackagesArchiverMock.Object, _nugetCacheSentinel.Object, _fileSystemMock.Directory, _fileSystemMock.File); nugetCachePrimer.PrimeCache(); }
public void It_does_not_prime_the_NuGet_cache_if_the_archive_is_not_found_so_that_we_do_not_need_to_generate_the_archive_for_stage1() { var fileSystemMockBuilder = FileSystemMockBuilder.Create(); var fileSystemMock = fileSystemMockBuilder.Build(); var commandFactoryMock = SetupCommandFactoryMock(); var nugetPackagesArchiverMock = new Mock <INuGetPackagesArchiver>(); nugetPackagesArchiverMock.Setup(n => n.NuGetPackagesArchive).Returns(COMPRESSED_ARCHIVE_PATH); var nugetCachePrimer = new NuGetCachePrimer( commandFactoryMock.Object, nugetPackagesArchiverMock.Object, _nugetCacheSentinel.Object, fileSystemMock.Directory, fileSystemMock.File); nugetCachePrimer.PrimeCache(); nugetPackagesArchiverMock.Verify(n => n.ExtractArchive(), Times.Never); commandFactoryMock.Verify(c => c.Create( It.IsAny <string>(), It.IsAny <IEnumerable <string> >(), null, Constants.DefaultConfiguration), Times.Never); }
public GivenANuGetCachePrimer() { var fileSystemMockBuilder = FileSystemMockBuilder.Create(); fileSystemMockBuilder.TemporaryFolder = TEMPORARY_FOLDER_PATH; fileSystemMockBuilder.AddFile(COMPRESSED_ARCHIVE_PATH); _fileSystemMock = fileSystemMockBuilder.Build(); _nugetPackagesArchiverMock = new Mock <INuGetPackagesArchiver>(); _nugetPackagesArchiverMock.Setup(n => n.NuGetPackagesArchive).Returns(COMPRESSED_ARCHIVE_PATH); _nugetCacheSentinel = new Mock <INuGetCacheSentinel>(); _nugetConfigMock = new Mock <INuGetConfig>(); _cliFallbackFolderPathCalculator = new CliFallbackFolderPathCalculator(); var nugetCachePrimer = new NuGetCachePrimer( _nugetPackagesArchiverMock.Object, _nugetCacheSentinel.Object, _nugetConfigMock.Object, _cliFallbackFolderPathCalculator, _fileSystemMock.File); nugetCachePrimer.PrimeCache(); }
) Setup( bool useMock, List <MockFeed> feeds = null, FilePath?tempProject = null, DirectoryPath?offlineFeed = null, FilePath?writeLocalFeedToNugetConfig = null, [CallerMemberName] string callingMethod = "", string identiifer = null) { var root = new DirectoryPath(_testAssetsManager.CreateTestDirectory(callingMethod, identifier: useMock.ToString() + identiifer).Path); var reporter = new BufferedReporter(); IFileSystem fileSystem; IToolPackageStore store; IToolPackageStoreQuery storeQuery; IToolPackageInstaller installer; IToolPackageUninstaller uninstaller; if (useMock) { fileSystem = new FileSystemMockBuilder().Build(); var frameworksMap = new Dictionary <PackageId, IEnumerable <NuGetFramework> >() { { TestPackageId, TestFrameworks } }; WriteNugetConfigFileToPointToTheFeed(fileSystem, writeLocalFeedToNugetConfig); var toolPackageStoreMock = new ToolPackageStoreMock(root, fileSystem, frameworksMap); store = toolPackageStoreMock; storeQuery = toolPackageStoreMock; installer = new ToolPackageInstallerMock( fileSystem: fileSystem, store: toolPackageStoreMock, projectRestorer: new ProjectRestorerMock( fileSystem: fileSystem, reporter: reporter, feeds: feeds == null ? GetMockFeedsForConfigFile(writeLocalFeedToNugetConfig) : feeds.Concat(GetMockFeedsForConfigFile(writeLocalFeedToNugetConfig)).ToList()), frameworksMap: frameworksMap); uninstaller = new ToolPackageUninstallerMock(fileSystem, toolPackageStoreMock); } else { fileSystem = new FileSystemWrapper(); WriteNugetConfigFileToPointToTheFeed(fileSystem, writeLocalFeedToNugetConfig); var toolPackageStore = new ToolPackageStoreAndQuery(root); store = toolPackageStore; storeQuery = toolPackageStore; installer = new ToolPackageInstaller( store: store, projectRestorer: new Stage2ProjectRestorer(Log, reporter), tempProject: tempProject ?? GetUniqueTempProjectPathEachTest(), offlineFeed: offlineFeed ?? new DirectoryPath("does not exist")); uninstaller = new ToolPackageUninstaller(store); } store.Root.Value.Should().Be(Path.GetFullPath(root.Value)); return(store, storeQuery, installer, uninstaller, reporter, fileSystem); }
public void GivenPathSetItDoesNotAddPathToEnvironment() { var reporter = new BufferedReporter(); var toolsPath = new BashPathUnderHomeDirectory("/home/user", ".dotnet/tools"); var pathValue = @"/usr/bin"; var provider = new Mock <IEnvironmentProvider>(MockBehavior.Strict); var fileSystem = new FileSystemMockBuilder().Build().File; provider .Setup(p => p.GetEnvironmentVariable("PATH")) .Returns(pathValue + ":" + toolsPath.Path); var environmentPath = new LinuxEnvironmentPath( toolsPath, reporter, provider.Object, fileSystem); environmentPath.AddPackageExecutablePathToUserPath(); reporter.Lines.Should().BeEmpty(); fileSystem .Exists(LinuxEnvironmentPath.DotnetCliToolsProfilePath) .Should() .Be(false); }
public void GivenAFailedShutdownCommandItThrows() { const int ProcessId = 1234; const string ServerPath = "path/to/rzc.dll"; const string PipeName = "some-pipe-name"; const string ErrorMessage = "error!"; string pidDirectory = Path.GetFullPath("var/pids/build"); string pidFilePath = Path.Combine(pidDirectory, $"{RazorPidFile.FilePrefix}{ProcessId}"); var fileSystemMock = new FileSystemMockBuilder() .AddFile(pidFilePath, "") .Build(); fileSystemMock.File.Exists(pidFilePath).Should().BeTrue(); var server = new RazorServer( pidFile: new RazorPidFile( path: new FilePath(pidFilePath), processId: ProcessId, serverPath: new FilePath(ServerPath), pipeName: PipeName), commandFactory: CreateCommandFactoryMock(ServerPath, PipeName, exitCode: 1, stdErr: ErrorMessage).Object, fileSystem: fileSystemMock); Action a = () => server.Shutdown(); a.ShouldThrow <BuildServerException>().WithMessage( string.Format( LocalizableStrings.ShutdownCommandFailed, ErrorMessage)); fileSystemMock.File.Exists(pidFilePath).Should().BeTrue(); }
) Setup( bool useMock, List <MockFeed> feeds = null, FilePath?tempProject = null, DirectoryPath?offlineFeed = null, [CallerMemberName] string testName = "", string identifier = null) { var root = new DirectoryPath(_testAssetsManager.CreateTestDirectory(testName, identifier).Path); var reporter = new BufferedReporter(); IFileSystem fileSystem; IToolPackageStore store; IToolPackageStoreQuery storeQuery; IToolPackageInstaller installer; IToolPackageUninstaller uninstaller; if (useMock) { var packagedShimsMap = new Dictionary <PackageId, IReadOnlyList <FilePath> > { [TestPackageId] = new FilePath[] { new FilePath("path/demo.exe") } }; fileSystem = new FileSystemMockBuilder().Build(); var toolPackageStoreMock = new ToolPackageStoreMock(root, fileSystem); store = toolPackageStoreMock; storeQuery = toolPackageStoreMock; installer = new ToolPackageInstallerMock( fileSystem: fileSystem, store: toolPackageStoreMock, projectRestorer: new ProjectRestorerMock( fileSystem: fileSystem, reporter: reporter, feeds: feeds), packagedShimsMap: packagedShimsMap); uninstaller = new ToolPackageUninstallerMock(fileSystem, toolPackageStoreMock); } else { fileSystem = new FileSystemWrapper(); var toolPackageStore = new ToolPackageStoreAndQuery(root); store = toolPackageStore; storeQuery = toolPackageStore; installer = new ToolPackageInstaller( store: store, projectRestorer: new Stage2ProjectRestorer(Log, reporter), tempProject: tempProject ?? GetUniqueTempProjectPathEachTest(), offlineFeed: offlineFeed ?? new DirectoryPath("does not exist")); uninstaller = new ToolPackageUninstaller(store); } store.Root.Value.Should().Be(Path.GetFullPath(root.Value)); return(store, storeQuery, installer, uninstaller, reporter, fileSystem); }
public GivenAFunctionReturnStringAndFakeFileSystem() { _fileSystemMockBuilder = FileSystemMockBuilder.Create(); _fileSystemMock = _fileSystemMockBuilder.Build(); _userLevelCacheWriter = new UserLevelCacheWriter( DOTNET_USER_PROFILE_FOLDER_PATH, _fileSystemMock.File, _fileSystemMock.Directory); }
public void WhenTheCacheIsCorruptedItShouldNotAffectNextSaveAndLoad() { IFileSystem fileSystem = new FileSystemMockBuilder().UseCurrentSystemTemporaryDirectory().Build(); DirectoryPath tempDirectory = new DirectoryPath(fileSystem.Directory.CreateTemporaryDirectory().DirectoryPath); DirectoryPath cacheDirectory = tempDirectory.WithSubDirectories("cacheDirectory"); DirectoryPath nuGetGlobalPackagesFolder = tempDirectory.WithSubDirectories("nugetGlobalPackageLocation"); fileSystem.Directory.CreateDirectory(cacheDirectory.Value); const int version = 1; LocalToolsResolverCache localToolsResolverCache = new LocalToolsResolverCache(fileSystem, cacheDirectory, version); NuGetFramework targetFramework = NuGetFramework.Parse("netcoreapp2.1"); string runtimeIdentifier = Constants.AnyRid; PackageId packageId = new PackageId("my.toolBundle"); NuGetVersion nuGetVersion = NuGetVersion.Parse("1.0.2"); IReadOnlyList <RestoredCommand> restoredCommands = new[] { new RestoredCommand(new ToolCommandName("tool1"), "dotnet", nuGetGlobalPackagesFolder.WithFile("tool1.dll")), }; localToolsResolverCache.Save( restoredCommands.ToDictionary( c => new RestoredCommandIdentifier(packageId, nuGetVersion, targetFramework, runtimeIdentifier, c.Name)), nuGetGlobalPackagesFolder); var cachePath = cacheDirectory .WithSubDirectories(version.ToString()) .WithSubDirectories(packageId.ToString()).Value; var existingCache = fileSystem.File.ReadAllText( cachePath); existingCache.Should().NotBeEmpty(); fileSystem.File.WriteAllText(cachePath, existingCache + " !!!Corrupted"); // Save after corruption localToolsResolverCache.Save( restoredCommands.ToDictionary( c => new RestoredCommandIdentifier(packageId, nuGetVersion, targetFramework, runtimeIdentifier, c.Name)), nuGetGlobalPackagesFolder); localToolsResolverCache.TryLoad( new RestoredCommandIdentifier(packageId, nuGetVersion, targetFramework, runtimeIdentifier, restoredCommands[0].Name), nuGetGlobalPackagesFolder, out RestoredCommand restoredCommand); restoredCommand.ShouldBeEquivalentTo(restoredCommands[0]); }
) Setup( bool useMock, IEnumerable <MockFeed> feeds = null, FilePath?tempProject = null, DirectoryPath?offlineFeed = null) { var root = new DirectoryPath(Path.Combine(TempRoot.Root, Path.GetRandomFileName())); var reporter = new BufferedReporter(); IFileSystem fileSystem; IToolPackageStore store; IToolPackageStoreQuery storeQuery; IToolPackageInstaller installer; IToolPackageUninstaller uninstaller; if (useMock) { var packagedShimsMap = new Dictionary <PackageId, IReadOnlyList <FilePath> > { [TestPackageId] = new FilePath[] { new FilePath("path/demo.exe") } }; fileSystem = new FileSystemMockBuilder().Build(); var toolPackageStoreMock = new ToolPackageStoreMock(root, fileSystem); store = toolPackageStoreMock; storeQuery = toolPackageStoreMock; installer = new ToolPackageInstallerMock( fileSystem: fileSystem, store: toolPackageStoreMock, projectRestorer: new ProjectRestorerMock( fileSystem: fileSystem, reporter: reporter, feeds: feeds), packagedShimsMap: packagedShimsMap); uninstaller = new ToolPackageUninstallerMock(fileSystem, toolPackageStoreMock); } else { fileSystem = new FileSystemWrapper(); var toolPackageStore = new ToolPackageStoreAndQuery(root); store = toolPackageStore; storeQuery = toolPackageStore; installer = new ToolPackageInstaller( store: store, projectRestorer: new ProjectRestorer(reporter), tempProject: tempProject ?? GetUniqueTempProjectPathEachTest(), offlineFeed: offlineFeed ?? new DirectoryPath("does not exist")); uninstaller = new ToolPackageUninstaller(store); } store.Root.Value.Should().Be(Path.GetFullPath(root.Value)); return(store, storeQuery, installer, uninstaller, reporter, fileSystem); }
) Setup( bool useMock, List <MockFeed> feeds = null, FilePath?tempProject = null, DirectoryPath?offlineFeed = null, FilePath?writeLocalFeedToNugetConfig = null) { var root = new DirectoryPath(Path.Combine(TempRoot.Root, Path.GetRandomFileName())); var reporter = new BufferedReporter(); IFileSystem fileSystem; IToolPackageStore store; IToolPackageStoreQuery storeQuery; IToolPackageInstaller installer; IToolPackageUninstaller uninstaller; if (useMock) { fileSystem = new FileSystemMockBuilder().Build(); WriteNugetConfigFileToPointToTheFeed(fileSystem, writeLocalFeedToNugetConfig); var toolPackageStoreMock = new ToolPackageStoreMock(root, fileSystem); store = toolPackageStoreMock; storeQuery = toolPackageStoreMock; installer = new ToolPackageInstallerMock( fileSystem: fileSystem, store: toolPackageStoreMock, projectRestorer: new ProjectRestorerMock( fileSystem: fileSystem, reporter: reporter, feeds: feeds == null ? GetMockFeedsForConfigFile(writeLocalFeedToNugetConfig) : feeds.Concat(GetMockFeedsForConfigFile(writeLocalFeedToNugetConfig)).ToList())); uninstaller = new ToolPackageUninstallerMock(fileSystem, toolPackageStoreMock); } else { fileSystem = new FileSystemWrapper(); WriteNugetConfigFileToPointToTheFeed(fileSystem, writeLocalFeedToNugetConfig); var toolPackageStore = new ToolPackageStoreAndQuery(root); store = toolPackageStore; storeQuery = toolPackageStore; installer = new ToolPackageInstaller( store: store, projectRestorer: new ProjectRestorer(reporter), tempProject: tempProject ?? GetUniqueTempProjectPathEachTest(), offlineFeed: offlineFeed ?? new DirectoryPath("does not exist")); uninstaller = new ToolPackageUninstaller(store); } store.Root.Value.Should().Be(Path.GetFullPath(root.Value)); return(store, storeQuery, installer, uninstaller, reporter, fileSystem); }
public void GivenEnvironmentVariableItUsesItForThePidDirectory() { IFileSystem fileSystem = new FileSystemMockBuilder().UseCurrentSystemTemporaryDirectory().Build(); var pidDirectory = Path.Combine(fileSystem.Directory.CreateTemporaryDirectory().DirectoryPath, "path/to/some/directory"); var provider = new BuildServerProvider( fileSystem, CreateEnvironmentProviderMock(pidDirectory).Object); provider .GetPidFileDirectory() .Value .Should() .Be(pidDirectory); }
LocalToolsResolverCache localToolsResolverCache) Setup() { IFileSystem fileSystem = new FileSystemMockBuilder().UseCurrentSystemTemporaryDirectory().Build(); DirectoryPath tempDirectory = new DirectoryPath(fileSystem.Directory.CreateTemporaryDirectory().DirectoryPath); DirectoryPath cacheDirectory = tempDirectory.WithSubDirectories("cacheDirectory"); DirectoryPath nuGetGlobalPackagesFolder = tempDirectory.WithSubDirectories("nugetGlobalPackageLocation"); fileSystem.Directory.CreateDirectory(cacheDirectory.Value); const int version = 1; LocalToolsResolverCache localToolsResolverCache = new LocalToolsResolverCache(fileSystem, cacheDirectory, version); return(nuGetGlobalPackagesFolder, localToolsResolverCache); }
public void It_does_not_prime_the_NuGet_cache_if_the_archive_is_not_found_so_that_we_do_not_need_to_generate_the_archive_for_stage1() { var fileSystemMockBuilder = FileSystemMockBuilder.Create(); var fileSystemMock = fileSystemMockBuilder.Build(); var nugetPackagesArchiverMock = new Mock <INuGetPackagesArchiver>(); nugetPackagesArchiverMock.Setup(n => n.NuGetPackagesArchive).Returns(COMPRESSED_ARCHIVE_PATH); var nugetCachePrimer = new NuGetCachePrimer( nugetPackagesArchiverMock.Object, _nugetCacheSentinel.Object, fileSystemMock.File); nugetCachePrimer.PrimeCache(); nugetPackagesArchiverMock.Verify(n => n.ExtractArchive(It.IsAny <string>()), Times.Never); }
private static IFileSystem SetupSubjectFileSystem(bool testMockBehaviorIsInSync) { IFileSystem fileSystem; if (testMockBehaviorIsInSync) { FileSystemMockBuilder temporaryFolder = new FileSystemMockBuilder { TemporaryFolder = Path.GetTempPath() }; fileSystem = temporaryFolder.Build(); } else { fileSystem = new FileSystemWrapper(); } return(fileSystem); }
private static (IToolPackageStore, IToolPackageInstaller, BufferedReporter, IFileSystem) Setup( bool useMock, IEnumerable <MockFeed> feeds = null, FilePath?tempProject = null, DirectoryPath?offlineFeed = null) { var root = new DirectoryPath(Path.Combine(TempRoot.Root, Path.GetRandomFileName())); var reporter = new BufferedReporter(); IFileSystem fileSystem; IToolPackageStore store; IToolPackageInstaller installer; if (useMock) { fileSystem = new FileSystemMockBuilder().Build(); store = new ToolPackageStoreMock(root, fileSystem); installer = new ToolPackageInstallerMock( fileSystem: fileSystem, store: store, projectRestorer: new ProjectRestorerMock( fileSystem: fileSystem, reporter: reporter, feeds: feeds)); } else { fileSystem = new FileSystemWrapper(); store = new ToolPackageStore(root); installer = new ToolPackageInstaller( store: store, projectRestorer: new ProjectRestorer(reporter), tempProject: tempProject ?? GetUniqueTempProjectPathEachTest(), offlineFeed: offlineFeed ?? new DirectoryPath("does not exist")); } store.Root.Value.Should().Be(Path.GetFullPath(root.Value)); return(store, installer, reporter, fileSystem); }
public void GivenARazorPidFileItReturnsARazorBuildServer() { const int ProcessId = 1234; const string PipeName = "some-pipe-name"; string pidDirectory = Path.GetFullPath("var/pids/build"); string pidFilePath = Path.Combine(pidDirectory, $"{RazorPidFile.FilePrefix}{ProcessId}"); var fileSystemMockBuilder = new FileSystemMockBuilder(); fileSystemMockBuilder.UseCurrentSystemTemporaryDirectory(); var serverPath = Path.Combine(fileSystemMockBuilder.TemporaryFolder, "path/to/rzc.dll"); IFileSystem fileSystemMock = fileSystemMockBuilder.AddFile( pidFilePath, $"{ProcessId}{Environment.NewLine}{RazorPidFile.RazorServerType}{Environment.NewLine}{serverPath}{Environment.NewLine}{PipeName}") .AddFile( Path.Combine(pidDirectory, $"{RazorPidFile.FilePrefix}not-a-pid-file"), "not-a-pid-file") .Build(); var provider = new BuildServerProvider( fileSystemMock, CreateEnvironmentProviderMock(pidDirectory).Object); var servers = provider.EnumerateBuildServers(ServerEnumerationFlags.Razor).ToArray(); servers.Length.Should().Be(1); var razorServer = servers.First() as RazorServer; razorServer.Should().NotBeNull(); razorServer.ProcessId.Should().Be(ProcessId); razorServer.Name.Should().Be(LocalizableStrings.RazorServer); razorServer.PidFile.Should().NotBeNull(); razorServer.PidFile.Path.Value.Should().Be(pidFilePath); razorServer.PidFile.ProcessId.Should().Be(ProcessId); razorServer.PidFile.ServerPath.Value.Should().Be(serverPath); razorServer.PidFile.PipeName.Should().Be(PipeName); }
private (IToolPackageStore, IToolPackageInstaller, BufferedReporter, IFileSystem) Setup( bool useMock, string testDirectory, List <MockFeed> feeds = null, FilePath?tempProject = null, DirectoryPath?offlineFeed = null) { var root = new DirectoryPath(Path.Combine(Directory.GetCurrentDirectory(), Path.GetRandomFileName())); var reporter = new BufferedReporter(); IFileSystem fileSystem; IToolPackageStore store; IToolPackageInstaller installer; if (useMock) { fileSystem = new FileSystemMockBuilder().Build(); store = new ToolPackageStoreMock(root, fileSystem); installer = new ToolPackageInstallerMock( fileSystem: fileSystem, store: store, projectRestorer: new ProjectRestorerMock( fileSystem: fileSystem, reporter: reporter, feeds: feeds)); } else { fileSystem = new FileSystemWrapper(); store = new ToolPackageStoreAndQuery(root); installer = new ToolPackageInstaller( store: store, projectRestorer: new Stage2ProjectRestorer(Log, reporter), tempProject: tempProject ?? GetUniqueTempProjectPathEachTest(testDirectory), offlineFeed: offlineFeed ?? new DirectoryPath("does not exist")); } return(store, installer, reporter, fileSystem); }
public GivenANuGetCacheSentinel() { _fileSystemMockBuilder = FileSystemMockBuilder.Create(); }
public void GivenOfflineFeedInstallWhenCallWithprereleaseItSucceeds(bool testMockBehaviorIsInSync) { IToolPackageInstaller installer = null; IToolPackageUninstaller uninstaller = null; if (testMockBehaviorIsInSync == false) { var testFeedWithOnlyPreviewPackages = Path.Combine(Path.GetTempPath(), Path.GetRandomFileName()); Directory.CreateDirectory(testFeedWithOnlyPreviewPackages); var tempFeed = GetTestLocalFeedPath(); File.Copy(Path.Combine(GetTestLocalFeedPath(), "global.tool.console.demo.1.0.4.nupkg"), Path.Combine(testFeedWithOnlyPreviewPackages, "global.tool.console.demo.1.0.4.nupkg")); File.Copy(Path.Combine(GetTestLocalFeedPath(), "global.tool.console.demo.2.0.1-preview1.nupkg"), Path.Combine(testFeedWithOnlyPreviewPackages, "global.tool.console.demo.2.0.1-preview1.nupkg")); var(store, storeQuery, realInstaller, realUninstaller, reporter, fileSystem) = Setup( useMock: testMockBehaviorIsInSync, offlineFeed: new DirectoryPath(testFeedWithOnlyPreviewPackages), feeds: GetOfflineMockFeed()); installer = realInstaller; uninstaller = realUninstaller; } else { var fileSystem = new FileSystemMockBuilder().Build(); var root = new DirectoryPath(_testAssetsManager .CreateTestDirectory(nameof(GivenOfflineFeedInstallWhenCallWithprereleaseItSucceeds) + testMockBehaviorIsInSync).Path); var toolPackageStoreMock = new ToolPackageStoreMock(root, fileSystem); var store = toolPackageStoreMock; var storeQuery = toolPackageStoreMock; installer = new ToolPackageInstallerMock( fileSystem: fileSystem, store: toolPackageStoreMock, projectRestorer: new ProjectRestorerMock( fileSystem: fileSystem, reporter: new BufferedReporter(), feeds: new List <MockFeed> { new MockFeed { Type = MockFeedType.ImplicitAdditionalFeed, Packages = new List <MockFeedPackage> { new MockFeedPackage { PackageId = TestPackageId.ToString(), Version = "1.0.4", ToolCommandName = "SimulatorCommand" }, new MockFeedPackage { PackageId = TestPackageId.ToString(), Version = "2.0.1-preview1", ToolCommandName = "SimulatorCommand" } } } })); uninstaller = new ToolPackageUninstallerMock(fileSystem, toolPackageStoreMock); } var package = installer.InstallPackage(new PackageLocation(), packageId: TestPackageId, versionRange: VersionRange.Parse("*-*"), targetFramework: _testTargetframework); package.Version.ToNormalizedString().Should().Be("2.0.1-preview1"); uninstaller.Uninstall(package.PackageDirectory); var package2 = installer.InstallPackage(new PackageLocation(), packageId: TestPackageId, versionRange: VersionRange.Parse("2.0*-*"), targetFramework: _testTargetframework); package2.Version.ToNormalizedString().Should().Be("2.0.1-preview1"); uninstaller.Uninstall(package.PackageDirectory); }
public GivenAFirstTimeUseNoticeSentinel() { _fileSystemMockBuilder = FileSystemMockBuilder.Create(); }