Exemplo n.º 1
0
        public async Task GetActiveProjectConfigurationsAsync_ConfigurationsWithTargetFrameworkDimensionProvider_ReturnsConfigsThatMatchConfigurationAndPlatformFromActiveConfiguration(string activeConfiguration, string configurations, string expected)
        {
            var provider = CreateInstance(activeConfiguration, configurations, "TargetFramework");

            var result = await provider.GetActiveProjectConfigurationsAsync();

            var activeConfigs = ProjectConfigurationFactory.CreateMany(expected.Split(';'));

            Assert.Equal(activeConfigs.OrderBy(c => c.Name), result.Objects.OrderBy(c => c.Name));
            Assert.Equal(new[] { "TargetFramework" }, result.DimensionNames);
        }
Exemplo n.º 2
0
        private ActiveConfiguredProjectsProvider CreateInstance(string activeConfiguration, string configurations, params string[] dimensionNames)
        {
            var activeConfig                    = ProjectConfigurationFactory.Create(activeConfiguration);
            var configs                         = ProjectConfigurationFactory.CreateMany(configurations.Split(';'));
            var configurationsService           = IProjectConfigurationsServiceFactory.ImplementGetKnownProjectConfigurationsAsync(configs.ToImmutableHashSet());
            var activeConfiguredProjectProvider = IActiveConfiguredProjectProviderFactory.ImplementActiveProjectConfiguration(() => activeConfig);
            var services                        = IUnconfiguredProjectServicesFactory.Create(activeConfiguredProjectProvider: activeConfiguredProjectProvider, projectConfigurationsService: configurationsService);
            var project                         = UnconfiguredProjectFactory.ImplementLoadConfiguredProjectAsync((projectConfiguration) => {
                return(Task.FromResult(ConfiguredProjectFactory.ImplementProjectConfiguration(projectConfiguration)));
            });

            var dimensionProviders = dimensionNames.Select(name => IActiveConfiguredProjectsDimensionProviderFactory.ImplementDimensionName(name));

            return(CreateInstance(services: services, project: project, dimensionProviders: dimensionProviders));
        }