IPackageFromRepository AddPackageToAction(string packageId, string version)
        {
            IPackageFromRepository package = CreatePackage(packageId, version);

            action.AddPackages(new IPackageFromRepository[] { package });
            return(package);
        }
 public PackageViewModel(
     IPackageViewModelParent parent,
     IPackageFromRepository package)
 {
     this.parent  = parent;
     this.package = package;
 }
		IPackageManagementSelectedProject CreateSelectedProject(
			IPackageManagementProject project,
			IPackageFromRepository package)
		{
			bool enabled = IsProjectEnabled(project, package);
			bool selected = IsProjectSelected(project, package);
			return new PackageManagementSelectedProject(project, selected, enabled);
		}
		public virtual PackageViewModel CreatePackageViewModel(IPackageFromRepository package)
		{
			return new PackageViewModel(
				package,
				Solution,
				PackageManagementEvents,
				PackageActionRunner,
				Logger);
		}
		public override PackageViewModel CreatePackageViewModel(IPackageFromRepository package)
		{
			return new UpdatedPackageViewModel(
				package,
				selectedProjectsForUpdatedPackages,
				PackageManagementEvents,
				PackageActionRunner,
				Logger);
		}
 public bool HasOlderPackageInstalled(IPackageFromRepository package)
 {
     if (HasSingleProjectSelected())
     {
         IPackageManagementProject project = GetSingleProjectSelected(package.Repository);
         return(project.HasOlderPackageInstalled(package));
     }
     return(false);
 }
 public UpdatedPackageViewModel(
     IPackageFromRepository package,
     SelectedProjectsForUpdatedPackages selectedProjects,
     IPackageManagementEvents packageManagementEvents,
     IPackageActionRunner actionRunner,
     ILogger logger)
     : base(package, selectedProjects, packageManagementEvents, actionRunner, logger)
 {
 }
Beispiel #8
0
 public PackageViewModel CreatePackageViewModel(IPackageFromRepository package)
 {
     return(new PackageViewModel(
                package,
                SelectedProjects,
                FakePackageManagementEvents,
                FakeActionRunner,
                FakeLogger));
 }
 public UpdatedPackageViewModel(
     IPackageFromRepository package,
     SelectedProjectsForUpdatedPackages selectedProjects,
     IPackageManagementEvents packageManagementEvents,
     IPackageActionRunner actionRunner,
     ILogger logger)
     : base(package, selectedProjects, packageManagementEvents, actionRunner, logger)
 {
 }
 /// <summary>
 /// Returns true if the package is installed in the selected projects.
 /// </summary>
 public bool IsPackageInstalled(IPackageFromRepository package)
 {
     if (HasSingleProjectSelected())
     {
         IPackageManagementProject project = GetSingleProjectSelected(package.Repository);
         return(project.IsPackageInstalled(package));
     }
     return(Solution.IsPackageInstalled(package));
 }
		public UpdatedPackageViewModel(
			IPackageFromRepository package,
			IPackageManagementSolution solution,
			IPackageManagementEvents packageManagementEvents,
			IPackageActionRunner actionRunner,
			ILogger logger)
			: base(package, solution, packageManagementEvents, actionRunner, logger)
		{
		}
 public override PackageViewModel CreatePackageViewModel(IPackageFromRepository package)
 {
     return(new InstalledPackageViewModel(
                package,
                selectedProjectsForInstalledPackages,
                PackageManagementEvents,
                PackageActionRunner,
                Logger));
 }
        IPackageManagementSelectedProject CreateSelectedProject(
            IPackageManagementProject project,
            IPackageFromRepository package)
        {
            bool enabled  = IsProjectEnabled(project, package);
            bool selected = IsProjectSelected(project, package);

            return(new PackageManagementSelectedProject(project, selected, enabled));
        }
		public PackageViewModel CreatePackageViewModel(IPackageFromRepository package)
		{
			return new PackageViewModel(
				package,
				SelectedProjects,
				FakePackageManagementEvents,
				FakeActionRunner,
				FakeLogger);
		}
 public InstalledPackageViewModel2(
     IPackageViewModelParent2 parent,
     IPackageFromRepository package,
     SelectedProjectsForInstalledPackages selectedProjects,
     IPackageManagementEvents packageManagementEvents,
     IPackageActionRunner actionRunner,
     ILogger logger)
     : base(parent, package, selectedProjects, packageManagementEvents, actionRunner, logger)
 {
 }
		public virtual PackageViewModel CreatePackageViewModel(IPackageViewModelParent parent, IPackageFromRepository package)
		{
			return new PackageViewModel(
				parent,
				package,
				SelectedProjects,
				PackageManagementEvents,
				PackageActionRunner,
				Logger);
		}
		public override PackageViewModel2 CreatePackageViewModel (IPackageViewModelParent2 parent, IPackageFromRepository package)
		{
			return new InstalledPackageViewModel2 (
				parent,
				package,
				selectedProjectsForInstalledPackages,
				PackageManagementEvents,
				PackageActionRunner,
				Logger);
		}
		public InstalledPackageViewModel2 (
			IPackageViewModelParent2 parent,
			IPackageFromRepository package,
			SelectedProjectsForInstalledPackages selectedProjects,
			IPackageManagementEvents packageManagementEvents,
			IPackageActionRunner actionRunner,
			ILogger logger)
			: base (parent, package, selectedProjects, packageManagementEvents, actionRunner, logger)
		{
		}
		public IEnumerable<IPackageManagementSelectedProject> GetProjects(IPackageFromRepository package)
		{
			if (HasSingleProjectSelected()) {
				yield return GetSingleProjectSelected(package);
			} else {
				foreach (Project project in GetOpenProjects()) {
					yield return CreateSelectedProject(project, package);
				}
			}
		}
		public PackageViewModel CreatePackageViewModel(IPackageViewModelParent parent, IPackageFromRepository package)
		{
			SelectedProjects = new PackageManagementSelectedProjects(FakeSolution);
			return new PackageViewModel(
				parent,
				package,
				SelectedProjects,
				FakePackageManagementEvents,
				FakeActionRunner,
				FakeLogger);
		}
        public void Execute_OneProjectThatHasOlderVersionOfPackageBeingUpdated_PackageReferenceUpdatedInProject()
        {
            CreateAction();
            IPackageFromRepository    package = AddPackageToAction("Test", "1.0");
            IPackageManagementProject project = AddProjectToSolution();

            ProjectHasOlderVersionOfPackage(project, package);

            action.Execute();

            project.AssertWasCalled(p => p.UpdatePackageReference(package, action));
        }
        public void Execute_OneProjectThatHasOlderVersionOfPackageBeingUpdated_PackagesUpdatedEventIsFired()
        {
            PackageOperation operation = CreateInstallOperationWithFile(@"tools\readme.txt");

            CreateActionWithOperations(operation);
            IPackageFromRepository    package = AddPackageToAction("Test", "1.0");
            IPackageManagementProject project = AddProjectToSolution();
            var expectedOperations            = new PackageOperation[] { operation };

            action.Execute();

            packageEvents.AssertWasCalled(events => events.OnParentPackagesUpdated(action.Packages));
        }
 public IEnumerable <IPackageManagementSelectedProject> GetProjects(IPackageFromRepository package)
 {
     if (HasSingleProjectSelected())
     {
         yield return(GetSingleProjectSelected(package));
     }
     else
     {
         foreach (IProject project in GetOpenProjects())
         {
             yield return(CreateSelectedProject(project, package));
         }
     }
 }
        public void Execute_TwoProjectsAndOnlyOneHasOlderVersionsOfPackageBeingUpdated_PackageReferenceUpdatedInOnlyOneProject()
        {
            CreateAction();
            IPackageFromRepository    package  = AddPackageToAction("A", "1.0");
            IPackageManagementProject project1 = AddProjectToSolution();
            IPackageManagementProject project2 = AddProjectToSolution();

            ProjectHasOlderVersionOfPackage(project2, package);

            action.Execute();

            project1.AssertWasNotCalled(p => p.UpdatePackageReference(package, action));
            project2.AssertWasCalled(p => p.UpdatePackageReference(package, action));
        }
        void GetUpdateOperationsForSolutionPackage(
            ISolutionPackageRepository solutionRepository,
            UpdatePackageAction updateAction,
            IPackageFromRepository updatePackage)
        {
            var resolverFactory = new PackageOperationsResolverFactory();
            var resolver        = resolverFactory.CreateUpdatePackageOperationResolver(
                solutionRepository.Repository,
                updatePackage.Repository,
                logger,
                updateAction);

            packageOperations = resolver.ResolveOperations(updatePackage);
        }
        void GetInstallOperationsForSolutionPackage(
            ISolutionPackageRepository solutionRepository,
            InstallPackageAction installAction,
            IPackageFromRepository installPackage)
        {
            var resolverFactory = new PackageOperationsResolverFactory();
            var resolver        = resolverFactory.CreateInstallPackageOperationResolver(
                solutionRepository.Repository,
                installPackage.Repository,
                logger,
                installAction);

            packageOperations = resolver.ResolveOperations(installPackage);
        }
        public void Execute_NullPackageScriptRunner_ProjectsFromSolutionReadOnlyOnce()
        {
            CreateAction();
            IPackageFromRepository    package = AddPackageToAction("Test", "1.0");
            IPackageManagementProject project = AddProjectToSolution();

            ProjectHasOlderVersionOfPackage(project, package);
            action.PackageScriptRunner = null;

            action.Execute();

            solution.AssertWasCalled(
                s => s.GetProjects(sourceRepository),
                setupConstraint => setupConstraint.Repeat.Once());
        }
 IEnumerable <IPackageManagementProject> GetProjects()
 {
     if (projects == null)
     {
         IPackageFromRepository package = packages.First();
         projects = Solution
                    .GetProjects(package.Repository)
                    .Select(project => {
             project.Logger = Logger;
             return(project);
         })
                    .ToList();
     }
     return(projects);
 }
        public void Execute_TwoProjectsBeingUpdated_LoggerSetOnBothProjects()
        {
            CreateAction();
            ILogger logger = MockRepository.GenerateStub <ILogger>();

            action.Logger = logger;
            IPackageFromRepository    package  = AddPackageToAction("A", "1.0");
            IPackageManagementProject project1 = AddProjectToSolution();
            IPackageManagementProject project2 = AddProjectToSolution();

            action.Execute();

            Assert.AreEqual(logger, project1.Logger);
            Assert.AreEqual(logger, project2.Logger);
        }
        public PackageViewModel(
            IPackageFromRepository package,
            PackageManagementSelectedProjects selectedProjects,
            IPackageManagementEvents packageManagementEvents,
            IPackageActionRunner actionRunner,
            ILogger logger)
        {
            this.package                 = package;
            this.selectedProjects        = selectedProjects;
            this.packageManagementEvents = packageManagementEvents;
            this.actionRunner            = actionRunner;
            this.logger = CreateLogger(logger);

            CreateCommands();
        }
        public void Execute_OneProjectThatHasOlderVersionsOfTwoPackagesBeingUpdated_PackageReferenceUpdatedInProjectForBothPackages()
        {
            CreateAction();
            IPackageFromRepository    package1 = AddPackageToAction("A", "1.0");
            IPackageFromRepository    package2 = AddPackageToAction("B", "1.0");
            IPackageManagementProject project  = AddProjectToSolution();

            ProjectHasOlderVersionOfPackage(project, package1);
            ProjectHasOlderVersionOfPackage(project, package2);

            action.Execute();

            project.AssertWasCalled(p => p.UpdatePackageReference(package1, action));
            project.AssertWasCalled(p => p.UpdatePackageReference(package2, action));
        }
        void UpdateSolutionLevelPackage(
            ISolutionPackageRepository solutionRepository,
            UpdatePackageAction updateAction,
            IPackageFromRepository updatePackage)
        {
            var packageManager = new PackageManager(
                updatePackage.Repository,
                solutionRepository.PackagePathResolver,
                solutionRepository.FileSystem,
                solutionRepository.Repository);

            packageManager.UpdatePackage(
                updatePackage.Id,
                updateAction.UpdateDependencies,
                updateAction.AllowPrereleaseVersions);
        }
        public void GetUpdatePackageOperations_TwoPackages_ReturnsPackageOperationsForBothPackages()
        {
            CreatePackageManager();
            CreateFakePackageResolverForUpdatePackageOperations();
            IPackageFromRepository package1     = CreateFakePackage("Test", "1.0");
            IPackageFromRepository package2     = CreateFakePackage("Test2", "1.0");
            PackageOperation       operation1   = AddInstallOperationForPackage(package1);
            PackageOperation       operation2   = AddInstallOperationForPackage(package2);
            UpdatePackagesAction   updateAction = CreateUpdatePackagesActionWithPackages(package1, package2);

            List <PackageOperation> operations = packageManager.GetUpdatePackageOperations(updateAction.Packages, updateAction).ToList();

            Assert.AreEqual(2, operations.Count());
            Assert.Contains(operation1, operations);
            Assert.Contains(operation2, operations);
        }
        void InstallPackageIntoSolution(
            ISolutionPackageRepository solutionRepository,
            InstallPackageAction installAction,
            IPackageFromRepository installPackage)
        {
            var packageManager = new PackageManager(
                installPackage.Repository,
                solutionRepository.PackagePathResolver,
                solutionRepository.FileSystem,
                solutionRepository.Repository);

            packageManager.InstallPackage(
                installPackage.Id,
                installPackage.Version,
                installAction.IgnoreDependencies,
                installAction.AllowPrereleaseVersions);
        }
        public void UpdateAllPackagesCommand_TwoProjectsAndPackagesUpdatedForSolution_PackageOperationsDeterminedFromConfiguredPackageRepository()
        {
            CreateSolution();
            NoProjectsSelected();
            FakePackageManagementProject project1 = AddProjectToSolution();
            FakePackageManagementProject project2 = AddProjectToSolution();

            CreateViewModel(solution);
            ViewModelHasTwoPackagesInSolutionThatCanBeUpdatedAfterReadingPackages();
            List <PackageOperation> operations = PackageOperationHelper.CreateListWithOneInstallOperationWithFile("readme.txt");

            project1.PackageOperationsToReturnFromGetUpdatePackagesOperations = operations;
            IPackageFromRepository package = viewModel.PackageViewModels[0].GetPackage() as IPackageFromRepository;

            RunUpdateAllPackagesCommand();

            Assert.AreEqual(package.Repository, solution.SourceRepositoryPassedToGetProjects);
        }
 public virtual PackageViewModel CreatePackageViewModel(IPackageViewModelParent parent, IPackageFromRepository package)
 {
     return new PackageViewModel(
         parent,
         package);
 }
		protected virtual bool IsProjectSelected(IPackageManagementProject project, IPackageFromRepository package)
		{
			return false;
		}
 protected virtual bool IsProjectSelected(IPackageManagementProject project, IPackageFromRepository package)
 {
     return(false);
 }
 protected virtual bool IsProjectEnabled(IPackageManagementProject project, IPackageFromRepository package)
 {
     return(true);
 }
		public bool CallIsProjectSelected(IPackageManagementProject project, IPackageFromRepository package)
		{
			return base.IsProjectSelected(project, package);
		}
		IDisposable StartUpdateOperation(IPackageFromRepository package)
		{
			return package.Repository.StartUpdateOperation();
		}
 protected override bool IsProjectSelected(IPackageManagementProject project, IPackageFromRepository package)
 {
     return IsProjectEnabled(project, package);
 }
		protected override bool IsProjectSelected(IPackageManagementProject project, IPackageFromRepository package)
		{
			return project.IsPackageInstalled(package);
		}
 void ProjectHasOlderVersionOfPackage(IPackageManagementProject project, IPackageFromRepository package)
 {
     project.Stub(p => p.HasOlderPackageInstalled(package)).Return(true);
 }
 protected override bool IsProjectEnabled(IPackageManagementProject project, IPackageFromRepository package)
 {
     return project.GetPackages()
         .Where(p => IsPackageIdMatch(p.Id, package.Id))
         .Any(p => p.Version < package.Version);
 }
		IPackageManagementSelectedProject CreateSelectedProject(Project dotNetProject, IPackageFromRepository package)
		{
			IPackageManagementProject project = Solution.GetProject(package.Repository, dotNetProject);
			return CreateSelectedProject(project, package);
		}
		IPackageManagementSelectedProject GetSingleProjectSelected(IPackageFromRepository package)
		{
			return CreateSelectedProject(singleDotNetProjectSelected, package);
		}
 IPackageManagementSelectedProject GetSingleProjectSelected(IPackageFromRepository package)
 {
     return(CreateSelectedProject(singleMSBuildProjectSelected, package));
 }
		IPackageManagementSelectedProject CreateSelectedProject(IProject msbuildProject, IPackageFromRepository package)
		{
			IPackageManagementProject project = solution.GetProject(package.Repository, msbuildProject);
			return CreateSelectedProject(project, package);
		}
 protected override bool IsProjectSelected(IPackageManagementProject project, IPackageFromRepository package)
 {
     return(IsProjectEnabled(project, package));
 }
        IPackageManagementSelectedProject CreateSelectedProject(IProject msbuildProject, IPackageFromRepository package)
        {
            IPackageManagementProject project = Solution.GetProject(package.Repository, msbuildProject);

            return(CreateSelectedProject(project, package));
        }
		protected virtual bool IsProjectEnabled(IPackageManagementProject project, IPackageFromRepository package)
		{
			return true;
		}
		protected override IDisposable StartInstallOperation(IPackageFromRepository package)
		{
			return package.StartUpdateOperation();
		}
		/// <summary>
		/// Returns true if the package is installed in the selected projects.
		/// </summary>
		public bool IsPackageInstalled(IPackageFromRepository package)
		{
			if (HasSingleProjectSelected()) {
				IPackageManagementProject project = GetSingleProjectSelected(package.Repository);
				return project.IsPackageInstalled(package);
			}
			return IsPackageInstalledInSolution(package);
		}
 protected override bool IsProjectEnabled(IPackageManagementProject project, IPackageFromRepository package)
 {
     return(project.GetPackages()
            .Where(p => IsPackageIdMatch(p.Id, package.Id))
            .Any(p => p.Version < package.Version));
 }
		public bool HasOlderPackageInstalled (IPackageFromRepository package)
		{
			if (HasSingleProjectSelected ()) {
				IPackageManagementProject project = GetSingleProjectSelected(package.Repository);
				return project.HasOlderPackageInstalled(package);
			}
			return false;
		}