Exemple #1
0
        public void HasNugetPath()
        {
            var nugetPath = new NuGetPath(Substitute.For <INuKeeperLogger>()).Executable;

            Assert.That(nugetPath, Is.Not.Empty);
            FileAssert.Exists(nugetPath);
        }
        public void HasNugetPath()
        {
            var nugetPath = new NuGetPath(NukeeperLogger).Executable;

            Assert.That(nugetPath, Is.Not.Empty);
            FileAssert.Exists(nugetPath);
        }
        public void HasNugetPath()
        {
            var nugetPath = NuGetPath.FindExecutable();

            Assert.That(nugetPath, Is.Not.Empty);
            FileAssert.Exists(nugetPath);
        }
        public async Task ShouldUpdateDotnetClassicProject()
        {
            const string oldPackageVersion     = "5.2.3";
            const string newPackageVersion     = "5.2.4";
            const string expectedPackageString =
                "<package id=\"Microsoft.AspNet.WebApi.Client\" version=\"{packageVersion}\" targetFramework=\"net47\" />";
            const string testFolder = nameof(ShouldUpdateDotnetClassicProject);

            var testProject = $"{testFolder}.csproj";

            var workDirectory = Path.Combine(_uniqueTemporaryFolder.FullPath, testFolder);

            Directory.CreateDirectory(workDirectory);
            var packagesFolder = Path.Combine(workDirectory, "packages");

            Directory.CreateDirectory(packagesFolder);

            var projectContents = _testDotNetClassicProject.Replace("{packageVersion}", oldPackageVersion,
                                                                    StringComparison.OrdinalIgnoreCase);
            var projectPath = Path.Combine(workDirectory, testProject);
            await File.WriteAllTextAsync(projectPath, projectContents);

            var packagesConfigContents = _testPackagesConfig.Replace("{packageVersion}", oldPackageVersion,
                                                                     StringComparison.OrdinalIgnoreCase);
            var packagesConfigPath = Path.Combine(workDirectory, "packages.config");
            await File.WriteAllTextAsync(packagesConfigPath, packagesConfigContents);

            await File.WriteAllTextAsync(Path.Combine(workDirectory, "nuget.config"), _nugetConfig);

            var logger          = NukeeperLogger;
            var externalProcess = new ExternalProcess(logger);

            var monoExecutor = new MonoExecutor(logger, externalProcess);

            var nuGetPath     = new NuGetPath(logger);
            var nuGetVersion  = new NuGetVersion(newPackageVersion);
            var packageSource = new PackageSource(NuGetConstants.V3FeedUrl);

            var restoreCommand = new NuGetFileRestoreCommand(logger, nuGetPath, monoExecutor, externalProcess);
            var updateCommand  = new NuGetUpdatePackageCommand(logger, nuGetPath, monoExecutor, externalProcess);

            var packageToUpdate = new PackageInProject("Microsoft.AspNet.WebApi.Client", oldPackageVersion,
                                                       new PackagePath(workDirectory, testProject, PackageReferenceType.PackagesConfig));

            await restoreCommand.Invoke(packageToUpdate, nuGetVersion, packageSource, NuGetSources.GlobalFeed);

            await updateCommand.Invoke(packageToUpdate, nuGetVersion, packageSource, NuGetSources.GlobalFeed);

            var contents = await File.ReadAllTextAsync(packagesConfigPath);

            Assert.That(contents,
                        Does.Contain(expectedPackageString.Replace("{packageVersion}", newPackageVersion,
                                                                   StringComparison.OrdinalIgnoreCase)));
            Assert.That(contents,
                        Does.Not.Contain(expectedPackageString.Replace("{packageVersion}", oldPackageVersion,
                                                                       StringComparison.OrdinalIgnoreCase)));
        }