|
// Licensed to the .NET Foundation under one or more agreements.
// The .NET Foundation licenses this file to you under the MIT license.
using Microsoft.Extensions.Logging;
namespace Microsoft.NET.Build.Containers.IntegrationTests;
public class RegistryTests : IDisposable
{
private ITestOutputHelper _testOutput;
private readonly TestLoggerFactory _loggerFactory;
public RegistryTests(ITestOutputHelper testOutput)
{
_testOutput = testOutput;
_loggerFactory = new TestLoggerFactory(testOutput);
}
public void Dispose()
{
_loggerFactory.Dispose();
}
[InlineData("quay.io/centos/centos")]
[InlineData("registry.access.redhat.com/ubi8/dotnet-70")]
[Theory]
public async Task CanReadManifestFromRegistry(string fullyQualifiedContainerName)
{
bool parsed = ContainerHelpers.TryParseFullyQualifiedContainerName(fullyQualifiedContainerName,
out string? containerRegistry,
out string? containerName,
out string? containerTag,
out string? containerDigest,
out bool isRegistrySpecified);
Assert.True(parsed);
Assert.True(isRegistrySpecified);
Assert.NotNull(containerRegistry);
Assert.NotNull(containerName);
containerTag ??= "latest";
ILogger logger = _loggerFactory.CreateLogger(nameof(CanReadManifestFromRegistry));
Registry registry = new(containerRegistry, logger, RegistryMode.Pull);
var ridgraphfile = ToolsetUtils.GetRuntimeGraphFilePath();
ImageBuilder? downloadedImage = await registry.GetImageManifestAsync(
containerName,
containerTag,
"linux-x64",
ToolsetUtils.RidGraphManifestPicker,
cancellationToken: default);
Assert.NotNull(downloadedImage);
}
}
|