Esempio n. 1
0
        public async Task DependencyTest(string keyword, string version, string framework, bool hasDependencies)
        {
            var factory          = new NuGetFactory("NuGet", "https://api.nuget.org/v3/index.json");
            var baseMetaResource = await factory.GetMetadata();

            var metaResource = await factory.GetUIMetadata();

            var depResource = await factory.GetDependency();

            var searchResource = await factory.GetSearch();

            var versionNG = new NuGetVersion(version);
            var fx        = NuGetFramework.Parse(framework);
            var packageId = new PackageIdentity(keyword, versionNG);

            Assert.NotNull(fx);
            Assert.NotNull(versionNG);

            // Search with keyword
            var filter = new SearchFilter {
                IncludePrerelease = true
            };
            var packagesFound = await searchResource.Search(keyword, filter, 0, 10, CancellationToken.None);

            foreach (var package in packagesFound)
            {
                Assert.NotNull(package.Identity.Id);
                Assert.NotNull(package.Identity.Version);
                Debug.WriteLine(package.Identity.ToString());
                Debug.WriteLine(package.Identity.Version.ToNormalizedString());
            }

            // Get metadata for packageId
            var metaResult = await metaResource.GetMetadata(packageId.Id, true, false, CancellationToken.None);

            var versions = await(await factory.GetMetadata()).GetVersions(packageId.Id, CancellationToken.None);

            foreach (var uiPackageMetadata in metaResult)
            {
                foreach (var dset in uiPackageMetadata.DependencySets)
                {
                    Assert.NotNull(dset.TargetFramework.DotNetFrameworkName);
                    foreach (var depends in dset.Packages)
                    {
                        Debug.WriteLine(depends.ToString());
                        Assert.NotNull(depends.ToString());
                    }
                }
            }

            foreach (var versionF in versions)
            {
                Assert.NotNull(versionF.ToNormalizedString());
            }


            // Get dependency for packageId + version + fx
            var packageDependencyInfo = await depResource.ResolvePackage(packageId, fx, CancellationToken.None);

            foreach (var dependency in packageDependencyInfo.Dependencies)
            {
                var allVersions = await baseMetaResource.GetVersions(dependency.Id, CancellationToken.None);

                var bestMatch = dependency.VersionRange.FindBestMatch(allVersions);

                Assert.NotNull(bestMatch);
            }
        }