using Microsoft.Extensions.Logging;
using MaksIT.Results;
namespace MaksIT.PodmanClientDotNet.Tests;
internal static class PodmanClientTestFixture {
///
/// Podman API base URL for integration tests. Set PODMAN_TEST_URL (or PODMAN_INTEGRATION_URL) to enable.
///
internal static string? IntegrationServerUrl =>
Environment.GetEnvironmentVariable("PODMAN_TEST_URL")
?? Environment.GetEnvironmentVariable("PODMAN_INTEGRATION_URL");
internal static bool IsIntegrationEnabled => !string.IsNullOrWhiteSpace(IntegrationServerUrl);
internal static IPodmanClient CreateClient() {
Assert.SkipUnless(IsIntegrationEnabled, "Set PODMAN_TEST_URL to run Podman integration tests.");
var logger = LoggerFactory.Create(builder => builder.AddConsole())
.CreateLogger();
return new PodmanClient(logger, IntegrationServerUrl!, 60);
}
internal static void AssertSuccess(Result result) {
Assert.True(result.IsSuccess, string.Join("; ", result.Messages));
}
internal static void AssertFailure(Result result) {
Assert.False(result.IsSuccess);
Assert.NotEmpty(result.Messages);
}
internal static void AssertSuccess(Result result, Action? assertValue = null) {
Assert.True(result.IsSuccess, string.Join("; ", result.Messages));
assertValue?.Invoke(result.Value);
}
internal static void AssertFailure(Result result) {
Assert.False(result.IsSuccess);
Assert.NotEmpty(result.Messages);
}
}