public async Task OnDimensionValueChanged_Remove_MissingValue() { var rootElement = ProjectRootElementFactory.Create(projectXml); var projectAccessor = IProjectAccessorFactory.Create(rootElement); var provider = new ConfigurationProjectConfigurationDimensionProvider(projectAccessor); var project = UnconfiguredProjectFactory.Create(); var args = new ProjectConfigurationDimensionValueChangedEventArgs( project, ConfigurationDimensionChange.Delete, ChangeEventStage.Before, ConfigurationGeneral.ConfigurationProperty, "NonExistantConfiguration"); await Assert.ThrowsAsync <ArgumentException>(() => provider.OnDimensionValueChangedAsync(args)); var property = BuildUtilities.GetProperty(rootElement, Configurations); Assert.NotNull(property); Assert.Equal("Debug;Release;CustomConfiguration", property.Value); }
public async Task OnDimensionValueChanged_Rename() { var rootElement = ProjectRootElementFactory.Create(projectXml); var projectAccessor = IProjectAccessorFactory.Create(rootElement); var provider = new ConfigurationProjectConfigurationDimensionProvider(projectAccessor); var project = UnconfiguredProjectFactory.Create(); // On ChangeEventStage.Before nothing should be changed var args = new ProjectConfigurationDimensionValueChangedEventArgs( project, ConfigurationDimensionChange.Rename, ChangeEventStage.Before, ConfigurationGeneral.ConfigurationProperty, "RenamedConfiguration", "CustomConfiguration"); await provider.OnDimensionValueChangedAsync(args); var property = BuildUtilities.GetProperty(rootElement, Configurations); Assert.NotNull(property); Assert.Equal("Debug;Release;CustomConfiguration", property.Value); // On ChangeEventStage.Before the property should be renamed args = new ProjectConfigurationDimensionValueChangedEventArgs( project, ConfigurationDimensionChange.Rename, ChangeEventStage.After, ConfigurationGeneral.ConfigurationProperty, "RenamedConfiguration", "CustomConfiguration"); await provider.OnDimensionValueChangedAsync(args); property = BuildUtilities.GetProperty(rootElement, Configurations); Assert.NotNull(property); Assert.Equal("Debug;Release;RenamedConfiguration", property.Value); }
public async Task TargetFrameworkProjectConfigurationDimensionProvider_OnDimensionValueChanged(ConfigurationDimensionChange change, ChangeEventStage stage) { // No changes should happen for TFM so verify that the property is the same before and after using (var projectFile = new MsBuildProjectFile(ProjectXmlTFMs)) { IProjectXmlAccessor _projectXmlAccessor = IProjectXmlAccessorFactory.Create(projectFile.Project); var provider = new TargetFrameworkProjectConfigurationDimensionProvider(_projectXmlAccessor); var unconfiguredProject = UnconfiguredProjectFactory.Create(filePath: projectFile.Filename); var property = BuildUtilities.GetProperty(projectFile.Project, ConfigurationGeneral.TargetFrameworksProperty); string expectedTFMs = property.Value; ProjectConfigurationDimensionValueChangedEventArgs args = new ProjectConfigurationDimensionValueChangedEventArgs( unconfiguredProject, change, stage, ConfigurationGeneral.TargetFrameworkProperty, "NewTFM"); await provider.OnDimensionValueChangedAsync(args); Assert.NotNull(property); Assert.Equal(expectedTFMs, property.Value); } }
public async Task PlatformProjectConfigurationDimensionProvider_OnDimensionValueChanged_Rename() { var rootElement = ProjectRootElementFactory.Create(projectXml); var projectAccessor = IProjectAccessorFactory.Create(rootElement); var provider = new PlatformProjectConfigurationDimensionProvider(projectAccessor); var project = UnconfiguredProjectFactory.Create(); // Nothing should happen on platform rename as it's unsupported var args = new ProjectConfigurationDimensionValueChangedEventArgs( project, ConfigurationDimensionChange.Rename, ChangeEventStage.Before, ConfigurationGeneral.PlatformProperty, "RenamedPlatform", "x86"); await provider.OnDimensionValueChangedAsync(args); var property = BuildUtilities.GetProperty(rootElement, Platforms); Assert.NotNull(property); Assert.Equal("AnyCPU;x64;x86", property.Value); // On ChangeEventStage.Before the property should be renamed args = new ProjectConfigurationDimensionValueChangedEventArgs( project, ConfigurationDimensionChange.Rename, ChangeEventStage.After, ConfigurationGeneral.PlatformProperty, "RenamedPlatform", "x86"); await provider.OnDimensionValueChangedAsync(args); property = BuildUtilities.GetProperty(rootElement, Platforms); Assert.NotNull(property); Assert.Equal("AnyCPU;x64;x86", property.Value); }
public async void ConfigurationProjectConfigurationDimensionProvider_OnDimensionValueChanged_Rename() { using (var projectFile = new MsBuildProjectFile(projectXml)) { IProjectXmlAccessor _projectXmlAccessor = IProjectXmlAccessorFactory.Create(projectFile.Project); var provider = new ConfigurationProjectConfigurationDimensionProvider(_projectXmlAccessor); var unconfiguredProject = UnconfiguredProjectFactory.Create(filePath: projectFile.Filename); // On ChangeEventStage.Before nothing should be changed ProjectConfigurationDimensionValueChangedEventArgs args = new ProjectConfigurationDimensionValueChangedEventArgs( unconfiguredProject, ConfigurationDimensionChange.Rename, ChangeEventStage.Before, ConfigurationGeneral.ConfigurationProperty, "RenamedConfiguration", "CustomConfiguration"); await provider.OnDimensionValueChangedAsync(args); var property = BuildUtilities.GetProperty(projectFile.Project, Configurations); Assert.NotNull(property); Assert.Equal("Debug;Release;CustomConfiguration", property.Value); // On ChangeEventStage.Before the property should be renamed args = new ProjectConfigurationDimensionValueChangedEventArgs( unconfiguredProject, ConfigurationDimensionChange.Rename, ChangeEventStage.After, ConfigurationGeneral.ConfigurationProperty, "RenamedConfiguration", "CustomConfiguration"); await provider.OnDimensionValueChangedAsync(args); property = BuildUtilities.GetProperty(projectFile.Project, Configurations); Assert.NotNull(property); Assert.Equal("Debug;Release;RenamedConfiguration", property.Value); } }
public async void PlatformProjectConfigurationDimensionProvider_OnDimensionValueChanged_Rename() { using (var projectFile = new MsBuildProjectFile(projectXml)) { IProjectXmlAccessor _projectXmlAccessor = IProjectXmlAccessorFactory.Create(projectFile.Project); var provider = new PlatformProjectConfigurationDimensionProvider(_projectXmlAccessor); var unconfiguredProject = UnconfiguredProjectFactory.Create(filePath: projectFile.Filename); // Nothing should happen on platform rename as it's unsupported ProjectConfigurationDimensionValueChangedEventArgs args = new ProjectConfigurationDimensionValueChangedEventArgs( unconfiguredProject, ConfigurationDimensionChange.Rename, ChangeEventStage.Before, ConfigurationGeneral.PlatformProperty, "RenamedPlatform", "x86"); await provider.OnDimensionValueChangedAsync(args); var property = BuildUtilities.GetProperty(projectFile.Project, Platforms); Assert.NotNull(property); Assert.Equal("AnyCPU;x64;x86", property.Value); // On ChangeEventStage.Before the property should be renamed args = new ProjectConfigurationDimensionValueChangedEventArgs( unconfiguredProject, ConfigurationDimensionChange.Rename, ChangeEventStage.After, ConfigurationGeneral.PlatformProperty, "RenamedPlatform", "x86"); await provider.OnDimensionValueChangedAsync(args); property = BuildUtilities.GetProperty(projectFile.Project, Platforms); Assert.NotNull(property); Assert.Equal("AnyCPU;x64;x86", property.Value); } }