public void AddOrUpdatePackageSourceMapping_WithAClearItem_WithANewPattern_AddInFurthestMatchingConfig() { // 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> <clear /> <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); var patternToAdd = new PackageSourceMappingSourceItem("localSource", new PackagePatternItem[] { new PackagePatternItem("added") }); sourceMappingProvider.AddOrUpdatePackageSourceMappingSourceItem(patternToAdd); var result = @"<?xml version=""1.0"" encoding=""utf-8""?> <configuration> <packageSourceMapping> <clear /> <packageSource key=""nuget.org""> <package pattern=""stuff"" /> </packageSource> <packageSource key=""localSource""> <package pattern=""added"" /> </packageSource> </packageSourceMapping> </configuration>"; result.Replace("\r\n", "\n") .Should().BeEquivalentTo( File.ReadAllText(configPath1).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")); }