예제 #1
0
        private INuGetUIContext CreateUIContext(params NuGetProject[] projects)
        {
            var packageManager = new NuGetPackageManager(
                SourceRepositoryProvider.Value,
                Settings.Value,
                SolutionManager,
                DeleteOnRestartManager.Value);

            var actionEngine = new UIActionEngine(
                SourceRepositoryProvider.Value,
                packageManager,
                LockService.Value);

            // only pick up at most three integrated package managers
            const int MaxPackageManager       = 3;
            var       packageManagerProviders = PackageManagerProviderUtility.Sort(
                PackageManagerProviders, MaxPackageManager);

            var context = new NuGetUIContext(
                SourceRepositoryProvider.Value,
                SolutionManager,
                packageManager,
                actionEngine,
                PackageRestoreManager.Value,
                OptionsPageActivator.Value,
                SolutionUserOptions,
                packageManagerProviders)
            {
                Projects = projects
            };

            return(context);
        }
예제 #2
0
        public void ProjectActionsExecuted_WhenSolutionManagerActionsExecutedEventRaised_IsRaised()
        {
            NuGetUIContext context = CreateNuGetUIContext();
            var            project = new TestNuGetProject();

            var projectAction = NuGetProjectAction.CreateInstallProjectAction(
                PackageIdentity,
                sourceRepository: null,
                project);
            var resolvedActions = new ResolvedAction[] { new ResolvedAction(project, projectAction) };
            var wasEventRaised  = false;

            string[] expectedProjectIds = resolvedActions
                                          .Select(resolvedAction => resolvedAction.Project.GetMetadata <string>(NuGetProjectMetadataKeys.ProjectId))
                                          .ToArray();

            context.ProjectActionsExecuted += (object sender, IReadOnlyCollection <string> actualProjectIds) =>
            {
                wasEventRaised = true;

                Assert.Equal(expectedProjectIds, actualProjectIds);
            };

            _solutionManager.Raise(s => s.ActionsExecuted += null, new ActionsExecutedEventArgs(resolvedActions));

            Assert.True(wasEventRaised);
        }
예제 #3
0
        public void ProjectActionsExecuted_WhenSolutionManagerActionsExecutedEventRaisedWithNullEventArgs_Throws()
        {
            NuGetUIContext context        = CreateNuGetUIContext();
            var            wasEventRaised = false;

            context.ProjectActionsExecuted += (object sender, IReadOnlyCollection <string> actualProjectIds) =>
            {
                wasEventRaised = true;
            };

            Assert.ThrowsAny <Exception>(() => _solutionManager.Raise(s => s.ActionsExecuted += null, (EventArgs)null));

            Assert.False(wasEventRaised);
        }
예제 #4
0
        public void ProjectActionsExecuted_WhenSolutionManagerActionsExecutedEventRaisedWithNoActions_IsNotRaised()
        {
            NuGetUIContext context         = CreateNuGetUIContext();
            var            resolvedActions = Enumerable.Empty <ResolvedAction>();
            var            wasEventRaised  = false;

            context.ProjectActionsExecuted += (object sender, IReadOnlyCollection <string> actualProjectIds) =>
            {
                wasEventRaised = true;
            };

            _solutionManager.Raise(s => s.ActionsExecuted += null, new ActionsExecutedEventArgs(resolvedActions));

            Assert.False(wasEventRaised);
        }