Пример #1
0
        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);
            }
        }
Пример #2
0
        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));
        }
Пример #3
0
        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));
        }
Пример #4
0
        public void IsEnabled_ReturnsReturnOfIsProjectOutputPaneEnabled(bool isProjectOutputPaneEnabled)
        {
            var options = IProjectSystemOptionsFactory.ImplementIsProjectOutputPaneEnabled(() => isProjectOutputPaneEnabled);

            var logger = CreateInstance(options: options);

            Assert.Equal(isProjectOutputPaneEnabled, logger.IsEnabled);
        }
Пример #5
0
        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()));
        }
Пример #6
0
        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);
            }
        }
Пример #8
0
        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);
        }