public async Task WhenActiveConfigurationChanges_LoadsConfiguredProject(string[] configurationNames) { var configurationGroups = IConfigurationGroupFactory.CreateFromConfigurationNames(configurationNames); var configuredProject = ConfiguredProjectFactory.Create(); var results = new List <string>(); var project = UnconfiguredProjectFactory.ImplementLoadConfiguredProjectAsync(configuration => { results.Add(configuration.Name); return(Task.FromResult(configuredProject)); }); var loader = CreateInstance(project, out ProjectValueDataSource <IConfigurationGroup <ProjectConfiguration> > source); await loader.InitializeAsync(); // Change the active configurations await source.SendAndCompleteAsync(configurationGroups, loader.TargetBlock); Assert.Equal(configurationNames, results); }
public async Task WhenProjectUnloading_DoesNotLoadConfiguredProject() { var tasksService = IUnconfiguredProjectTasksServiceFactory.CreateWithUnloadedProject <ConfiguredProject>(); var configuredProject = ConfiguredProjectFactory.Create(); int callCount = 0; UnconfiguredProject project = UnconfiguredProjectFactory.ImplementLoadConfiguredProjectAsync(configuration => { callCount++; return(Task.FromResult(configuredProject)); }); var loader = CreateInstance(project, tasksService, out ProjectValueDataSource <IConfigurationGroup <ProjectConfiguration> > source); await loader.InitializeAsync(); var configurationGroups = IConfigurationGroupFactory.CreateFromConfigurationNames("Debug|AnyCPU"); // Change the active configurations await source.SendAndCompleteAsync(configurationGroups, loader.TargetBlock); // Should not be listening Assert.Equal(0, callCount); }
public async Task Dispose_WhenInitialized_DisposesSubscription() { var configuredProject = ConfiguredProjectFactory.Create(); int callCount = 0; UnconfiguredProject project = UnconfiguredProjectFactory.ImplementLoadConfiguredProjectAsync(configuration => { callCount++; return(Task.FromResult(configuredProject)); }); var loader = CreateInstance(project, out ProjectValueDataSource <IConfigurationGroup <ProjectConfiguration> > source); await loader.InitializeAsync(); await loader.DisposeAsync(); var configurationGroups = IConfigurationGroupFactory.CreateFromConfigurationNames("Debug|AnyCPU"); // Change the active configurations await source.SendAndCompleteAsync(configurationGroups, loader.TargetBlock); // Should not be listening Assert.Equal(0, callCount); }
public async Task InitializeAsync_CanNotInitializeTwice() { var configuredProject = ConfiguredProjectFactory.Create(); var results = new List <string>(); var project = UnconfiguredProjectFactory.ImplementLoadConfiguredProjectAsync(configuration => { results.Add(configuration.Name); return(Task.FromResult(configuredProject)); }); var loader = CreateInstance(project, out var source); await loader.InitializeAsync(); await loader.InitializeAsync(); var configurationGroups = IConfigurationGroupFactory.CreateFromConfigurationNames("Debug|AnyCPU"); // Change the active configurations await source.SendAndCompleteAsync(configurationGroups, loader.TargetBlock); Assert.Equal(new string[] { "Debug|AnyCPU" }, results); }