Trying and find a package from API

This commit is contained in:
2023-05-01 22:05:39 +01:00
parent 06b0115405
commit 9e79edc624
19 changed files with 182 additions and 201 deletions

View File

@ -1,3 +1,4 @@
using System.Linq;
using System.Threading;
using System;
using Xunit;
@ -12,6 +13,8 @@ using NuGet.Configuration;
using System.Threading.Tasks;
using NuGet.Protocol.Core.Types;
using isn.abst;
using NuGet.Common;
using System.Collections.Generic;
namespace isnd.host.tests
{
@ -107,5 +110,62 @@ namespace isnd.host.tests
{
throw new NotImplementedException();
}
public string SPIIndexURI {
get => server.Addresses.First() + "/v3/index";
}
[Fact]
public async Task TestGetMetadataAsync()
{
ILogger logger = NullLogger.Instance;
CancellationToken cancellationToken = CancellationToken.None;
SourceCacheContext cache = new SourceCacheContext();
SourceRepository repository = Repository.Factory.GetCoreV3(SPIIndexURI);
PackageMetadataResource resource = await repository.GetResourceAsync<PackageMetadataResource>();
IEnumerable<IPackageSearchMetadata> packages = await resource.GetMetadataAsync(
"isn.abst",
includePrerelease: true,
includeUnlisted: true,
cache,
logger,
cancellationToken);
Assert.NotEmpty(packages);
foreach (IPackageSearchMetadata package in packages)
{
Console.WriteLine($"Version: {package.Identity.Version}");
Console.WriteLine($"Listed: {package.IsListed}");
Console.WriteLine($"Tags: {package.Tags}");
Console.WriteLine($"Description: {package.Description}");
}
}
[Fact]
public async Task TestFindPackageAsync()
{
ILogger logger = NullLogger.Instance;
CancellationToken cancellationToken = CancellationToken.None;
SourceRepository repository = Repository.Factory.GetCoreV3(SPIIndexURI);
PackageSearchResource resource = await repository.GetResourceAsync<PackageSearchResource>();
SearchFilter searchFilter = new SearchFilter(includePrerelease: true);
IEnumerable<IPackageSearchMetadata> results = await resource.SearchAsync(
"isn",
searchFilter,
skip: 0,
take: 20,
logger,
cancellationToken);
foreach (IPackageSearchMetadata result in results)
{
Console.WriteLine($"Found package {result.Identity.Id} {result.Identity.Version}");
}
}
}
}

View File

@ -11,8 +11,6 @@ namespace isnd.tests
{
[CollectionDefinition("Web server collection")]
public class WebServerFixture : IDisposable
{
public IWebHost Host { get; private set;}
@ -43,20 +41,11 @@ namespace isnd.tests
});
Host = webhostBuilder.Build();
Host.Start(); //Starts listening on the configured addresses.
PrintAddresses(Host.Services);
}
void PrintAddresses(IServiceProvider services)
{
Addresses.Clear();
Console.WriteLine("Checking addresses...");
var server = services.GetRequiredService<IServer>();
var server = Host.Services.GetRequiredService<IServer>();
var addressFeature = server.Features.Get<IServerAddressesFeature>();
foreach (var address in addressFeature.Addresses)
{
Console.WriteLine("Listing on address: " + address);
Addresses.Add(address);
}
}