Files
mic-check/tests/api/MicCheck.Api.Tests.Unit/Data/DatabaseUrlParserTests.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

53 lines
1.6 KiB
C#
Executable File

using NUnit.Framework;
using MicCheck.Api.Data;
namespace MicCheck.Api.Tests.Unit.Data;
[TestFixture]
public class DatabaseUrlParserTests
{
[Test]
public void WhenAFullDatabaseUrlIsParsed_ThenAllComponentsAreExtracted()
{
var url = "postgresql://miccheck:password@localhost:5432/miccheck";
var result = DatabaseUrlParser.ToNpgsqlConnectionString(url);
Assert.That(result, Does.Contain("Host=localhost"));
Assert.That(result, Does.Contain("Port=5432"));
Assert.That(result, Does.Contain("Database=miccheck"));
Assert.That(result, Does.Contain("Username=miccheck"));
Assert.That(result, Does.Contain("Password=password"));
}
[Test]
public void WhenADatabaseUrlWithNoExplicitPortIsParsed_ThenPortDefaultsTo5432()
{
var url = "postgresql://user:pass@db.example.com/mydb";
var result = DatabaseUrlParser.ToNpgsqlConnectionString(url);
Assert.That(result, Does.Contain("Port=5432"));
}
[Test]
public void WhenADatabaseUrlWithACustomPortIsParsed_ThenThatPortIsUsed()
{
var url = "postgresql://user:pass@db.example.com:5433/mydb";
var result = DatabaseUrlParser.ToNpgsqlConnectionString(url);
Assert.That(result, Does.Contain("Port=5433"));
}
[Test]
public void WhenADatabaseUrlContainsSpecialCharactersInPassword_ThenTheyArePreserved()
{
var url = "postgresql://user:s3cr3t@host:5432/db";
var result = DatabaseUrlParser.ToNpgsqlConnectionString(url);
Assert.That(result, Does.Contain("Password=s3cr3t"));
}
}