Esempio n. 1
0
    static async Task ProcessSolution(string solution, string?package)
    {
        if (Excluder.ShouldExclude(solution))
        {
            Console.WriteLine($"  Exclude: {solution}");
            return;
        }

        Console.WriteLine($"  {solution}");
        await SolutionRestore.Run(solution);

        var solutionDirectory = Directory.GetParent(solution) !.FullName;

        foreach (var project in FileSystem.EnumerateFiles(solutionDirectory, "*.csproj"))
        {
            Console.WriteLine($"    {project.Replace(solutionDirectory, "").Trim(Path.DirectorySeparatorChar)}");
            foreach (var pending in await PendingUpdateReader.ReadPendingUpdates(project))
            {
                if (package == null)
                {
                    await Update(project, pending.Package, pending.Latest);

                    continue;
                }

                if (string.Equals(package, pending.Package, StringComparison.OrdinalIgnoreCase))
                {
                    await Update(project, pending.Package, pending.Latest);
                }
            }
        }
    }
Esempio n. 2
0
        public async Task WhenThereAreNoSolutionsTheCommandIsNotCalled()
        {
            var cmd    = Substitute.For <IFileRestoreCommand>();
            var folder = Substitute.For <IFolder>();

            var packages = new List <PackageUpdateSet>();

            var solutionRestore = new SolutionRestore(cmd);

            await solutionRestore.CheckRestore(packages, folder, NuGetSources.GlobalFeed);

            await cmd.DidNotReceiveWithAnyArgs()
            .Invoke(Arg.Any <FileInfo>(), Arg.Any <NuGetSources>());
        }
Esempio n. 3
0
        public async Task EmptyListCase()
        {
            var selection = Substitute.For <IUpdateSelection>();
            var runner    = Substitute.For <IUpdateRunner>();
            var logger    = Substitute.For <INuKeeperLogger>();
            var folder    = Substitute.For <IFolder>();
            var restorer  = new SolutionRestore(Substitute.For <IFileRestoreCommand>());

            var updater = new LocalUpdater(selection, runner, restorer, logger);

            await updater.ApplyUpdates(new List <PackageUpdateSet>(),
                                       folder,
                                       NuGetSources.GlobalFeed, Settings());

            await runner.Received(0)
            .Update(Arg.Any <PackageUpdateSet>(), Arg.Any <NuGetSources>());
        }
Esempio n. 4
0
        public async Task WhenThereAreNoMatchingPackagesTheCommandIsNotCalled()
        {
            var packages = PackageUpdates.ForPackageRefType(PackageReferenceType.ProjectFile)
                           .InList();

            var sln = new FileInfo("foo.sln");

            var cmd    = Substitute.For <IFileRestoreCommand>();
            var folder = Substitute.For <IFolder>();

            folder.Find(Arg.Any <string>()).Returns(new[] { sln });

            var solutionRestore = new SolutionRestore(cmd);

            await solutionRestore.CheckRestore(packages, folder, NuGetSources.GlobalFeed);

            await cmd.DidNotReceiveWithAnyArgs()
            .Invoke(Arg.Any <FileInfo>(), Arg.Any <NuGetSources>());
        }
Esempio n. 5
0
        public async Task WhenThereIsOneSolutionsTheCommandIsCalled()
        {
            var packages = PackageUpdates.ForPackageRefType(PackageReferenceType.PackagesConfig)
                           .InList();

            var sln = new FileInfo("foo.sln");

            var cmd    = Substitute.For <IFileRestoreCommand>();
            var folder = Substitute.For <IFolder>();

            folder.Find(Arg.Any <string>()).Returns(new[] { sln });

            var solutionRestore = new SolutionRestore(cmd);

            await solutionRestore.CheckRestore(packages, folder, NuGetSources.GlobalFeed);

            await cmd.Received(1).Invoke(Arg.Any <FileInfo>(), Arg.Any <NuGetSources>());

            await cmd.Received().Invoke(sln, Arg.Any <NuGetSources>());
        }
Esempio n. 6
0
        public async Task SingleItemCase()
        {
            var updates = PackageUpdates.MakeUpdateSet("foo")
                          .InList();

            var selection = Substitute.For <IUpdateSelection>();

            FilterIsPassThrough(selection);


            var runner   = Substitute.For <IUpdateRunner>();
            var logger   = Substitute.For <INuKeeperLogger>();
            var folder   = Substitute.For <IFolder>();
            var restorer = new SolutionRestore(Substitute.For <IFileRestoreCommand>());

            var updater = new LocalUpdater(selection, runner, restorer, logger);

            await updater.ApplyUpdates(updates, folder, NuGetSources.GlobalFeed, Settings());

            await runner.Received(1)
            .Update(Arg.Any <PackageUpdateSet>(), Arg.Any <NuGetSources>());
        }
Esempio n. 7
0
    public Task ThisSolution()
    {
        var file = Path.Combine(GitRepoDirectoryFinder.Find(), "src", "PackageUpdate.sln");

        return(SolutionRestore.Run(file));
    }