Files
mic-check/tests/api/MicCheck.Api.Tests.Integration/Common/IntegrationTestSettings.cs
James Wampler 6887d09f9c version-0.1 (#1)
Squash and merge of version-0.1

Co-authored-by: James Wampler <james@wamp.dev>
Co-committed-by: James Wampler <james@wamp.dev>
2026-07-01 13:30:07 -07:00

34 lines
1.5 KiB
C#
Executable File

using NUnit.Framework;
namespace MicCheck.Api.Tests.Integration.Common;
public sealed record IntegrationTestSettings(string BaseUrl, string DbConnectionString, bool AcceptAnyServerCertificate)
{
public static IntegrationTestSettings Load()
{
var baseUrl = Resolve("BaseUrl", "MICCHECK_API_BASE_URL")
?? throw new InvalidOperationException(
"BaseUrl is not set. Provide it via .runsettings (TestRunParameters.BaseUrl) or the MICCHECK_API_BASE_URL environment variable.");
var connectionString = Resolve("DbConnectionString", "MICCHECK_DB_CONNECTION_STRING")
?? throw new InvalidOperationException(
"DbConnectionString is not set. Provide it via .runsettings (TestRunParameters.DbConnectionString) or the MICCHECK_DB_CONNECTION_STRING environment variable.");
var acceptAnyCert = bool.TryParse(
Resolve("AcceptAnyServerCertificate", "MICCHECK_ACCEPT_ANY_SERVER_CERTIFICATE"),
out var parsed) && parsed;
return new IntegrationTestSettings(baseUrl.TrimEnd('/'), connectionString, acceptAnyCert);
}
private static string? Resolve(string runSettingsParameter, string environmentVariable)
{
var fromEnv = System.Environment.GetEnvironmentVariable(environmentVariable);
if (!string.IsNullOrWhiteSpace(fromEnv))
return fromEnv;
var fromRunSettings = TestContext.Parameters.Get(runSettingsParameter);
return string.IsNullOrWhiteSpace(fromRunSettings) ? null : fromRunSettings;
}
}