示例#1
0
        private IRepositoryUpdater MakeRepositoryUpdater(
            IPackageUpdater packageUpdater,
            IPackageUpdateSelection updateSelection,
            List <PackageUpdateSet> updates)
        {
            var sources      = Substitute.For <INuGetSourcesReader>();
            var updateFinder = Substitute.For <IUpdateFinder>();
            var fileRestore  = Substitute.For <IFileRestoreCommand>();
            var reporter     = Substitute.For <IAvailableUpdatesReporter>();

            updateFinder.FindPackageUpdateSets(
                Arg.Any <IFolder>(),
                Arg.Any <NuGetSources>(),
                Arg.Any <VersionChange>())
            .Returns(updates);

            packageUpdater.MakeUpdatePullRequest(
                Arg.Any <IGitDriver>(),
                Arg.Any <RepositoryData>(),
                Arg.Any <PackageUpdateSet>(),
                Arg.Any <NuGetSources>(),
                Arg.Any <SourceControlServerSettings>())
            .Returns(true);

            var repoUpdater = new RepositoryUpdater(
                sources, updateFinder, updateSelection, packageUpdater,
                Substitute.For <INuKeeperLogger>(), new SolutionsRestore(fileRestore),
                reporter);

            return(repoUpdater);
        }
示例#2
0
        private async Task <int> UpdateAllTargets(IGitDriver git,
                                                  RepositoryData repository,
                                                  IEnumerable <PackageUpdateSet> targetUpdates,
                                                  NuGetSources sources)
        {
            var updatesDone = 0;

            foreach (var updateSet in targetUpdates)
            {
                var success = await _packageUpdater.MakeUpdatePullRequest(git, updateSet, sources, repository);

                if (success)
                {
                    updatesDone++;
                }
            }

            return(updatesDone);
        }