async Task <PackageMetadata> GetMetadataForPackage(string packageMetadataUrl, SemaphoreSlim throttler, CancellationToken cancellationToken)
        {
            try
            {
                await throttler.WaitAsync(cancellationToken);

                var packageMetadataReader = new PackageMetadataReader(httpClient);

                return(await packageMetadataReader.ReadUrl(packageMetadataUrl, cancellationToken));
            }
            finally
            {
                throttler.Release();
            }
        }
Beispiel #2
0
        public async Task ParsePackageMetadata()
        {
            var url = "https://api.nuget.org/v3/catalog0/data/2018.11.24.05.52.45/transmitsms.2.0.11.json";

            var reader = new PackageMetadataReader(new HttpClient());

            var packageMetadata = await reader.ReadUrl(url);

            Assert.AreEqual("TransmitSms", packageMetadata.Id);
            Assert.AreEqual("2.0.11", packageMetadata.Version);
            Assert.AreEqual(29774, packageMetadata.Size);
            Assert.AreEqual(3, packageMetadata.PackageEntries.Count);
            Assert.NotNull(packageMetadata.PackageEntries.Single(pe => pe.FullName == "lib/net35/TransmitSms.dll"));
            Assert.True(packageMetadata.HasNetAssemblies);
        }