public void GetPackageSourceNamespaces_WithOneConfig_ReturnsCorrectNamespaces() { // Arrange using var mockBaseDirectory = TestDirectory.Create(); var configPath1 = Path.Combine(mockBaseDirectory, "NuGet.Config"); SettingsTestUtils.CreateConfigurationFile(configPath1, @"<?xml version=""1.0"" encoding=""utf-8""?> <configuration> <packageNamespaces> <packageSource key=""nuget.org""> <namespace id=""stuff"" /> </packageSource> </packageNamespaces> </configuration>"); var settings = Settings.LoadSettingsGivenConfigPaths(new string[] { configPath1 }); // Act & Assert var namespaceProvider = new PackageNamespacesProvider(settings); IReadOnlyList <PackageNamespacesSourceItem> packageSourceNamespaces = namespaceProvider.GetPackageSourceNamespaces(); packageSourceNamespaces.Should().HaveCount(1); var packageSourceNamespace = packageSourceNamespaces.First(); packageSourceNamespace.Key.Should().Be("nuget.org"); packageSourceNamespace.Namespaces.Should().HaveCount(1); packageSourceNamespace.Namespaces.First().Id.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> <packageNamespaces> <packageSource key=""nuget.org""> <namespace id=""stuff"" /> </packageSource> <packageSource key=""contoso""> <namespace id=""stuff2"" /> </packageSource> </packageNamespaces> </configuration>"; SettingsTestUtils.CreateConfigurationFile(configPath1, configContent); var settings = Settings.LoadSettingsGivenConfigPaths(new string[] { configPath1 }); var namespaceProvider = new PackageNamespacesProvider(settings); IReadOnlyList <PackageNamespacesSourceItem> packageSourceNamespaces = namespaceProvider.GetPackageSourceNamespaces(); packageSourceNamespaces.Should().HaveCount(2); // Act & Assert namespaceProvider.Remove(new PackageNamespacesSourceItem[] { new PackageNamespacesSourceItem("localConfig", new NamespaceItem[] { new NamespaceItem("item") }) }); File.ReadAllText(configPath1).Replace("\r\n", "\n") .Should().BeEquivalentTo(configContent.Replace("\r\n", "\n")); }
public void AddOrUpdatePackageSourceNamespace_WithUpdatedNamespace() { // Arrange using var mockBaseDirectory = TestDirectory.Create(); var configPath1 = Path.Combine(mockBaseDirectory, "NuGet.Config"); SettingsTestUtils.CreateConfigurationFile(configPath1, @"<?xml version=""1.0"" encoding=""utf-8""?> <configuration> <packageNamespaces> <packageSource key=""nuget.org""> <namespace id=""stuff"" /> </packageSource> </packageNamespaces> </configuration>"); var configPath2 = Path.Combine(mockBaseDirectory, "NuGet.Config.2"); SettingsTestUtils.CreateConfigurationFile(configPath2, @"<?xml version=""1.0"" encoding=""utf-8""?> <configuration> <packageNamespaces> <packageSource key=""contoso""> <namespace id=""stuff2"" /> </packageSource> </packageNamespaces> </configuration>"); var settings = Settings.LoadSettingsGivenConfigPaths(new string[] { configPath1, configPath2 }); // Act & Assert var namespaceProvider = new PackageNamespacesProvider(settings); IReadOnlyList <PackageNamespacesSourceItem> packageSourceNamespaces = namespaceProvider.GetPackageSourceNamespaces(); var namespaceToUpdate = packageSourceNamespaces.Last(); namespaceToUpdate.Namespaces.Add(new NamespaceItem("added")); namespaceProvider.AddOrUpdatePackageSourceNamespace(namespaceToUpdate); var result = @"<?xml version=""1.0"" encoding=""utf-8""?> <configuration> <packageNamespaces> <packageSource key=""nuget.org""> <namespace id=""stuff"" /> <namespace id=""added"" /> </packageSource> </packageNamespaces> </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> <packageNamespaces> <packageSource key=""nuget.org""> <namespace id=""stuff"" /> </packageSource> <packageSource key=""contoso""> <namespace id=""stuff2"" /> </packageSource> </packageNamespaces> </configuration>"); var settings = Settings.LoadSettingsGivenConfigPaths(new string[] { configPath1 }); var namespaceProvider = new PackageNamespacesProvider(settings); IReadOnlyList <PackageNamespacesSourceItem> packageSourceNamespaces = namespaceProvider.GetPackageSourceNamespaces(); packageSourceNamespaces.Should().HaveCount(2); var contosoNamespace = packageSourceNamespaces.First(e => e.Key.Equals("contoso")); // Act & Assert namespaceProvider.Remove(new PackageNamespacesSourceItem[] { contosoNamespace }); var result = @"<?xml version=""1.0"" encoding=""utf-8""?> <configuration> <packageNamespaces> <packageSource key=""nuget.org""> <namespace id=""stuff"" /> </packageSource> </packageNamespaces> </configuration>"; result.Replace("\r\n", "\n") .Should().BeEquivalentTo( File.ReadAllText(configPath1).Replace("\r\n", "\n")); }