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(); } }
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); }