29 lines
985 B
C#
29 lines
985 B
C#
using Npgsql;
|
|
|
|
namespace Tiku.IntegrationTests.Infrastructure;
|
|
|
|
internal static class DockerPostgresTestDefaults
|
|
{
|
|
internal static string AdminConnectionString => CreateConnectionString("postgres", false);
|
|
|
|
internal static string CreateConnectionString(string database, bool pooling = true)
|
|
{
|
|
return new NpgsqlConnectionStringBuilder
|
|
{
|
|
Host = "127.0.0.1",
|
|
Port = ParsePort(Environment.GetEnvironmentVariable("TIKU_POSTGRES_PORT")),
|
|
Database = database,
|
|
Username = Environment.GetEnvironmentVariable("TIKU_POSTGRES_USER") ?? "tiku",
|
|
Password = Environment.GetEnvironmentVariable("TIKU_POSTGRES_PASSWORD") ?? "tiku_dev",
|
|
Pooling = pooling,
|
|
Timeout = 5,
|
|
CommandTimeout = 60
|
|
}.ConnectionString;
|
|
}
|
|
|
|
private static int ParsePort(string? value)
|
|
{
|
|
return int.TryParse(value, out var port) && port is >= 1 and <= 65535 ? port : 5432;
|
|
}
|
|
}
|