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