public void TestMetadataEquals()
        {
            string expectedAssemblyProbingPath = "/assembly/probe/path";
            string expectedNativeProbingPath   = "/native/probe/path";
            var    expectedNugetMetadata       = new DependencyProviderUtils.NuGetMetadata
            {
                FileName       = "package.name.1.0.0.nupkg",
                PackageName    = "package.name",
                PackageVersion = "1.0.0"
            };

            var metadata = new DependencyProviderUtils.Metadata
            {
                AssemblyProbingPaths = new string[] { expectedAssemblyProbingPath },
                NativeProbingPaths   = new string[] { expectedNativeProbingPath },
                NuGets = new DependencyProviderUtils.NuGetMetadata[] { expectedNugetMetadata }
            };

            Assert.False(metadata.Equals(null));
            Assert.False(metadata.Equals(new DependencyProviderUtils.Metadata()));
            Assert.False(metadata.Equals(new DependencyProviderUtils.Metadata
            {
                AssemblyProbingPaths = new string[] { expectedAssemblyProbingPath },
                NativeProbingPaths   = new string[] { expectedNativeProbingPath, "" },
                NuGets = new DependencyProviderUtils.NuGetMetadata[] { expectedNugetMetadata }
            }));
            Assert.False(metadata.Equals(new DependencyProviderUtils.Metadata
            {
                AssemblyProbingPaths = new string[] { expectedAssemblyProbingPath },
                NativeProbingPaths   = new string[] { expectedNativeProbingPath },
                NuGets = new DependencyProviderUtils.NuGetMetadata[] { expectedNugetMetadata, null }
            }));
            Assert.False(metadata.Equals(new DependencyProviderUtils.Metadata
            {
                AssemblyProbingPaths = new string[] { expectedAssemblyProbingPath, "" },
                NativeProbingPaths   = new string[] { expectedNativeProbingPath },
                NuGets = new DependencyProviderUtils.NuGetMetadata[] { expectedNugetMetadata }
            }));

            Assert.True(metadata.Equals(new DependencyProviderUtils.Metadata
            {
                AssemblyProbingPaths = new string[] { expectedAssemblyProbingPath },
                NativeProbingPaths   = new string[] { expectedNativeProbingPath },
                NuGets = new DependencyProviderUtils.NuGetMetadata[] { expectedNugetMetadata }
            }));
        }
        public void TestNuGetMetadataEquals()
        {
            string expectedFileName       = "package.name.1.0.0.nupkg";
            string expectedPackageName    = "package.name";
            string expectedPackageVersion = "1.0.0";

            var nugetMetadata = new DependencyProviderUtils.NuGetMetadata
            {
                FileName       = expectedFileName,
                PackageName    = expectedPackageName,
                PackageVersion = expectedPackageVersion
            };

            Assert.False(nugetMetadata.Equals(null));
            Assert.False(nugetMetadata.Equals(new DependencyProviderUtils.NuGetMetadata()));
            Assert.False(nugetMetadata.Equals(new DependencyProviderUtils.NuGetMetadata
            {
                FileName       = "",
                PackageName    = expectedPackageName,
                PackageVersion = expectedPackageVersion
            }));
            Assert.False(nugetMetadata.Equals(new DependencyProviderUtils.NuGetMetadata
            {
                FileName       = expectedFileName,
                PackageName    = "",
                PackageVersion = expectedPackageVersion
            }));
            Assert.False(nugetMetadata.Equals(new DependencyProviderUtils.NuGetMetadata
            {
                FileName       = expectedFileName,
                PackageName    = expectedPackageName,
                PackageVersion = ""
            }));

            Assert.True(nugetMetadata.Equals(new DependencyProviderUtils.NuGetMetadata
            {
                FileName       = expectedFileName,
                PackageName    = expectedPackageName,
                PackageVersion = expectedPackageVersion
            }));
        }