public void GetPackageSourceMappingItems_WithMultipleConfigs_CombinesDifferentKeys() { // Arrange using var mockBaseDirectory = TestDirectory.Create(); var configPath1 = Path.Combine(mockBaseDirectory, "NuGet.Config"); SettingsTestUtils.CreateConfigurationFile(configPath1, @"<?xml version=""1.0"" encoding=""utf-8""?> <configuration> <packageSourceMapping> <packageSource key=""nuget.org""> <package pattern=""stuff"" /> </packageSource> </packageSourceMapping> </configuration>"); var configPath2 = Path.Combine(mockBaseDirectory, "NuGet.Config.2"); SettingsTestUtils.CreateConfigurationFile(configPath2, @"<?xml version=""1.0"" encoding=""utf-8""?> <configuration> <packageSourceMapping> <packageSource key=""contoso""> <package pattern=""stuff2"" /> </packageSource> </packageSourceMapping> </configuration>"); var settings = Settings.LoadSettingsGivenConfigPaths(new string[] { configPath1, configPath2 }); // Act & Assert var sourceMappingProvider = new PackageSourceMappingProvider(settings); IReadOnlyList <PackageSourceMappingSourceItem> packageSourceMappingItems = sourceMappingProvider.GetPackageSourceMappingItems(); packageSourceMappingItems.Should().HaveCount(2); var contosoSourceItem = packageSourceMappingItems.First(); contosoSourceItem.Key.Should().Be("contoso"); contosoSourceItem.Patterns.Should().HaveCount(1); contosoSourceItem.Patterns.First().Pattern.Should().Be("stuff2"); var nugetOrgSourceItem = packageSourceMappingItems.Last(); nugetOrgSourceItem.Key.Should().Be("nuget.org"); nugetOrgSourceItem.Patterns.Should().HaveCount(1); nugetOrgSourceItem.Patterns.First().Pattern.Should().Be("stuff"); }
public void Remove_WithElementNotInConfig_DoesntChangeConfig() { // Arrange using var mockBaseDirectory = TestDirectory.Create(); var configPath1 = Path.Combine(mockBaseDirectory, "NuGet.Config"); var configContent = @"<?xml version=""1.0"" encoding=""utf-8""?> <configuration> <packageSourceMapping> <packageSource key=""nuget.org""> <package pattern=""stuff"" /> </packageSource> <packageSource key=""contoso""> <package pattern=""stuff2"" /> </packageSource> </packageSourceMapping> </configuration>"; SettingsTestUtils.CreateConfigurationFile(configPath1, configContent); var settings = Settings.LoadSettingsGivenConfigPaths(new string[] { configPath1 }); var sourceMappingProvider = new PackageSourceMappingProvider(settings); IReadOnlyList <PackageSourceMappingSourceItem> packageSourceMappingItems = sourceMappingProvider.GetPackageSourceMappingItems(); packageSourceMappingItems.Should().HaveCount(2); // Act & Assert sourceMappingProvider.Remove(new PackageSourceMappingSourceItem[] { new PackageSourceMappingSourceItem("localConfig", new PackagePatternItem[] { new PackagePatternItem("item") }) }); File.ReadAllText(configPath1).Replace("\r\n", "\n") .Should().BeEquivalentTo(configContent.Replace("\r\n", "\n")); }
public void AddOrUpdatePackageSourceMapping_WithUpdatedPatterns() { // Arrange using var mockBaseDirectory = TestDirectory.Create(); var configPath1 = Path.Combine(mockBaseDirectory, "NuGet.Config"); SettingsTestUtils.CreateConfigurationFile(configPath1, @"<?xml version=""1.0"" encoding=""utf-8""?> <configuration> <packageSourceMapping> <packageSource key=""nuget.org""> <package pattern=""stuff"" /> </packageSource> </packageSourceMapping> </configuration>"); var configPath2 = Path.Combine(mockBaseDirectory, "NuGet.Config.2"); SettingsTestUtils.CreateConfigurationFile(configPath2, @"<?xml version=""1.0"" encoding=""utf-8""?> <configuration> <packageSourceMapping> <packageSource key=""contoso""> <package pattern=""stuff2"" /> </packageSource> </packageSourceMapping> </configuration>"); var settings = Settings.LoadSettingsGivenConfigPaths(new string[] { configPath1, configPath2 }); // Act & Assert var sourceMappingProvider = new PackageSourceMappingProvider(settings); IReadOnlyList <PackageSourceMappingSourceItem> packageSourceMappingItems = sourceMappingProvider.GetPackageSourceMappingItems(); var packageSourceMappingItem = packageSourceMappingItems.Last(); packageSourceMappingItem.Patterns.Add(new PackagePatternItem("added")); sourceMappingProvider.AddOrUpdatePackageSourceMappingSourceItem(packageSourceMappingItem); var result = @"<?xml version=""1.0"" encoding=""utf-8""?> <configuration> <packageSourceMapping> <packageSource key=""nuget.org""> <package pattern=""stuff"" /> <package pattern=""added"" /> </packageSource> </packageSourceMapping> </configuration>"; result.Replace("\r\n", "\n") .Should().BeEquivalentTo( File.ReadAllText(configPath1).Replace("\r\n", "\n")); }
public void Remove_WithOneConfig_RemovesElementOfInterest() { // Arrange using var mockBaseDirectory = TestDirectory.Create(); var configPath1 = Path.Combine(mockBaseDirectory, "NuGet.Config"); SettingsTestUtils.CreateConfigurationFile(configPath1, @"<?xml version=""1.0"" encoding=""utf-8""?> <configuration> <packageSourceMapping> <packageSource key=""nuget.org""> <package pattern=""stuff"" /> </packageSource> <packageSource key=""contoso""> <package pattern=""stuff2"" /> </packageSource> </packageSourceMapping> </configuration>"); var settings = Settings.LoadSettingsGivenConfigPaths(new string[] { configPath1 }); var sourceMappingProvider = new PackageSourceMappingProvider(settings); IReadOnlyList <PackageSourceMappingSourceItem> packageSourceMappingItems = sourceMappingProvider.GetPackageSourceMappingItems(); packageSourceMappingItems.Should().HaveCount(2); var contosoSourceItem = packageSourceMappingItems.First(e => e.Key.Equals("contoso")); // Act & Assert sourceMappingProvider.Remove(new PackageSourceMappingSourceItem[] { contosoSourceItem }); var result = @"<?xml version=""1.0"" encoding=""utf-8""?> <configuration> <packageSourceMapping> <packageSource key=""nuget.org""> <package pattern=""stuff"" /> </packageSource> </packageSourceMapping> </configuration>"; result.Replace("\r\n", "\n") .Should().BeEquivalentTo( File.ReadAllText(configPath1).Replace("\r\n", "\n")); }