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); }
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); }
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); }
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); }