Exemplo n.º 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);
            }
        }
        private static DesignTimeInputsDataSource CreateDesignTimeInputsDataSource(out ProjectValueDataSource <IProjectSubscriptionUpdate> sourceItemsRuleSource)
        {
            var unconfiguredProjectServices = UnconfiguredProjectServicesFactory.Create(
                projectService: IProjectServiceFactory.Create(
                    services: ProjectServicesFactory.Create(
                        threadingService: IProjectThreadingServiceFactory.Create(),
                        projectLockService: IProjectLockServiceFactory.Create())));
            var unconfiguredProject = UnconfiguredProjectFactory.Create(unconfiguredProjectServices: unconfiguredProjectServices);

            sourceItemsRuleSource = new ProjectValueDataSource <IProjectSubscriptionUpdate>(unconfiguredProjectServices);

            var projectSubscriptionService = IActiveConfiguredProjectSubscriptionServiceFactory.Create(sourceItemsRuleSource: sourceItemsRuleSource);

            var dataSource = new DesignTimeInputsDataSource(unconfiguredProject, unconfiguredProjectServices, projectSubscriptionService);

            return(dataSource);
        }