public void ElementNameGetter_ReturnsPackageSource()
        {
            var original = new PackageNamespacesSourceItem("name", new List <NamespaceItem>()
            {
                new NamespaceItem("stuff"), new NamespaceItem("stuff2")
            });

            original.ElementName.Should().Be("packageSource");
        }
Beispiel #2
0
        private static bool PackageSourceNamespaceItem_Equals(PackageNamespacesSourceItem item1, PackageNamespacesSourceItem item2)
        {
            if (!ItemBase_DeepEquals(item1, item2))
            {
                return(false);
            }

            return(item1.Namespaces.OrderedEquals(item2.Namespaces, e => e.Id, StringComparer.OrdinalIgnoreCase));
        }
        public void Equals_WithDifferentNamespaces_ReturnsTrue()
        {
            var left = new PackageNamespacesSourceItem("name", new List <NamespaceItem>()
            {
                new NamespaceItem("stuff"), new NamespaceItem("stuff2")
            });
            var right = new PackageNamespacesSourceItem("name", new List <NamespaceItem>()
            {
                new NamespaceItem("stuff"), new NamespaceItem("stuff3")
            });

            left.Equals(right).Should().BeTrue();
        }
        public void HashCode_WithDifferentNames_ReturnsFalse()
        {
            var left = new PackageNamespacesSourceItem("name2", new List <NamespaceItem>()
            {
                new NamespaceItem("stuff"), new NamespaceItem("stuff2")
            });
            var right = new PackageNamespacesSourceItem("name", new List <NamespaceItem>()
            {
                new NamespaceItem("stuff"), new NamespaceItem("stuff2")
            });

            left.GetHashCode().Equals(right.GetHashCode()).Should().BeFalse();
        }
        public void HashCode_WithDifferentlyCasedName_ReturnsTrue()
        {
            var left = new PackageNamespacesSourceItem("NAME", new List <NamespaceItem>()
            {
                new NamespaceItem("stuff")
            });
            var right = new PackageNamespacesSourceItem("name", new List <NamespaceItem>()
            {
                new NamespaceItem("stuff")
            });

            left.GetHashCode().Equals(right.GetHashCode()).Should().BeTrue();
        }
        public void Clone_CreatesEquivalentNamespaces()
        {
            var original = new PackageNamespacesSourceItem("name", new List <NamespaceItem>()
            {
                new NamespaceItem("stuff"), new NamespaceItem("stuff2")
            });
            var clone = original.Clone() as PackageNamespacesSourceItem;

            original.Equals(clone).Should().BeTrue();
            original.GetHashCode().Equals(clone.GetHashCode()).Should().BeTrue();
            SettingsTestUtils.DeepEquals(original, clone).Should().BeTrue();
            ReferenceEquals(original, clone).Should().BeFalse();
            original.Key.Equals(clone.Key);
        }
        public void AddOrUpdatePackageSourceNamespace_WithAClearItem_WithANewNamespace_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>
    <packageNamespaces>
        <clear />
        <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);
            var namespaceToAdd    = new PackageNamespacesSourceItem("localSource", new NamespaceItem[] { new NamespaceItem("added") });

            namespaceProvider.AddOrUpdatePackageSourceNamespace(namespaceToAdd);

            var result = @"<?xml version=""1.0"" encoding=""utf-8""?>
<configuration>
    <packageNamespaces>
        <clear />
        <packageSource key=""nuget.org"">
            <namespace id=""stuff"" />
        </packageSource>
        <packageSource key=""localSource"">
            <namespace id=""added"" />
        </packageSource>
    </packageNamespaces>
</configuration>";

            result.Replace("\r\n", "\n")
            .Should().BeEquivalentTo(
                File.ReadAllText(configPath1).Replace("\r\n", "\n"));
        }