Esempio n. 1
0
        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"));
        }
Esempio n. 2
0
        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"));
        }