public async Task TestSkipAnalyzersGlobalPropertiesProvider( bool implicitBuild, bool skipAnalyzersSettingTurnedOn) { UnconfiguredProject project = UnconfiguredProjectFactory.Create( unconfiguredProjectServices: UnconfiguredProjectServicesFactory.Create( projectService: IProjectServiceFactory.Create())); IImplicitlyTriggeredBuildState buildState = IImplicityTriggeredBuildStateFactory.Create(implicitBuild); IProjectSystemOptions options = IProjectSystemOptionsFactory.ImplementGetSkipAnalyzersForImplicitlyTriggeredBuildAsync(ct => skipAnalyzersSettingTurnedOn); SkipAnalyzersGlobalPropertiesProvider provider = new SkipAnalyzersGlobalPropertiesProvider( project, buildState, options); IImmutableDictionary <string, string> properties = await provider.GetGlobalPropertiesAsync(CancellationToken.None); if (implicitBuild && skipAnalyzersSettingTurnedOn) { Assert.Equal(expected: 2, actual: properties.Count); Assert.Equal(expected: "true", actual: properties["IsImplicitlyTriggeredBuild"]); Assert.Equal(expected: "ImplicitBuild", actual: properties["FastUpToDateCheckIgnoresKinds"]); } else { Assert.Empty(properties); } }
private static ProjectOutputWindowProjectLogger CreateInstance(IProjectThreadingService threadingService = null, IProjectSystemOptions options = null, IProjectOutputWindowPaneProvider outputWindowProvider = null) { threadingService = threadingService ?? IProjectThreadingServiceFactory.Create(); options = options ?? IProjectSystemOptionsFactory.Create(); outputWindowProvider = outputWindowProvider ?? IProjectOutputWindowPaneProviderFactory.Create(); return(new ProjectOutputWindowProjectLogger(threadingService, options, outputWindowProvider)); }
private static ProjectOutputWindowProjectLogger CreateLogger(IVsOutputWindowPane pane, bool enabled) { var options = IProjectSystemOptionsFactory.ImplementIsProjectOutputPaneEnabled(() => enabled); var outputWindowProvider = IProjectOutputWindowPaneProviderFactory.ImplementGetOutputWindowPaneAsync(pane); var logger = CreateInstance(options: options, outputWindowProvider: outputWindowProvider); return(CreateInstance(options: options, outputWindowProvider: outputWindowProvider)); }
public void IsEnabled_ReturnsReturnOfIsProjectOutputPaneEnabled(bool isProjectOutputPaneEnabled) { var options = IProjectSystemOptionsFactory.ImplementIsProjectOutputPaneEnabled(() => isProjectOutputPaneEnabled); var logger = CreateInstance(options: options); Assert.Equal(isProjectOutputPaneEnabled, logger.IsEnabled); }
private static WindowsFormsEditorProvider CreateInstance(UnconfiguredProject unconfiguredProject = null, IPhysicalProjectTree projectTree = null, IProjectSystemOptions options = null) { unconfiguredProject ??= UnconfiguredProjectFactory.Create(); projectTree ??= IPhysicalProjectTreeFactory.Create(); options ??= IProjectSystemOptionsFactory.Create(); return(new WindowsFormsEditorProvider(unconfiguredProject, projectTree.AsLazy(), options.AsLazy())); }
public async Task SetUseGlobalEditorAsync_WhenMarkedWithRecognizedSubType_ReturnsTrue(string tree, string expectedCategory) { string categoryResult = null; bool? valueResult = null; var options = IProjectSystemOptionsFactory.ImplementSetUseDesignerByDefaultAsync((category, value, __) => { categoryResult = category; valueResult = value; return(Task.CompletedTask); }); var provider = CreateInstanceWithDefaultEditorProvider(tree, options); var result = await provider.SetUseGlobalEditorAsync(@"C:\Foo.cs", useGlobalEditor : true); Assert.True(result); Assert.False(valueResult); Assert.Equal(expectedCategory, categoryResult); }
public async Task VerifyExpectedBehaviors(string projectPath, bool crossTargeting, bool implicitlyTriggeredBuild, string[] startupProjects, bool globalOptionEnabled, bool expectTargetFrameworkSet) { var projectService = IProjectServiceFactory.Create(); var unconfiguredProject = UnconfiguredProjectFactory.Create(fullPath: projectPath); ConfiguredProject?configuredProject; if (crossTargeting) { var dimensions = Empty.PropertiesMap .Add("Configuration", "Debug") .Add("Platform", "AnyCPU") .Add("TargetFramework", "netcoreapp1.0"); var projectConfiguration = new StandardProjectConfiguration("Debug|AnyCPU|netcoreapp1.0", dimensions); configuredProject = ConfiguredProjectFactory.Create(projectConfiguration: projectConfiguration, unconfiguredProject: unconfiguredProject); } else { var dimensions = Empty.PropertiesMap .Add("Configuration", "Debug") .Add("Platform", "AnyCPU"); var projectConfiguration = new StandardProjectConfiguration("Debug|AnyCPU", dimensions); configuredProject = ConfiguredProjectFactory.Create(projectConfiguration: projectConfiguration, unconfiguredProject: unconfiguredProject); } var activeDebugFrameworkServices = IActiveDebugFrameworkServicesFactory.ImplementGetActiveDebuggingFrameworkPropertyAsync("myFramework1.0"); var implicitlyTriggeredBuildState = IImplicityTriggeredBuildStateFactory.Create(implicitlyTriggeredBuild, startupProjects); var projectSystemOptions = IProjectSystemOptionsFactory.ImplementGetPreferSingleTargetBuildsForStartupProjectsAsync(ct => globalOptionEnabled); var provider = new StartupProjectSingleTargetGlobalBuildPropertyProvider( projectService, configuredProject, activeDebugFrameworkServices, implicitlyTriggeredBuildState, projectSystemOptions); var globalProperties = await provider.GetGlobalPropertiesAsync(CancellationToken.None); if (expectTargetFrameworkSet) { Assert.Equal(expected: 1, actual: globalProperties.Count); Assert.Equal(expected: "myFramework1.0", actual: globalProperties[ConfigurationGeneral.TargetFrameworkProperty]); } else { Assert.Empty(globalProperties); } }
public async Task GetSpecificEditorAsync_WhenMarkedWithRecognizedSubType_ReturnsResult(string tree, bool useDesignerByDefault) { var defaultEditorFactory = Guid.NewGuid(); var options = IProjectSystemOptionsFactory.ImplementGetUseDesignerByDefaultAsync((_, defaultValue, __) => defaultValue); var provider = CreateInstanceWithDefaultEditorProvider(tree, options, defaultEditorFactory); var result = await provider.GetSpecificEditorAsync(@"C:\Foo.cs"); Assert.NotEmpty(result.DisplayName); Assert.Equal(VSConstants.LOGVIEWID.Designer_guid, result.DefaultView); Assert.Equal(useDesignerByDefault, result.IsDefaultEditor); Assert.Equal(defaultEditorFactory, result.EditorFactory); }