Files
Omika/tests/Omika.Tests/Connection/HfsqlOdbcConnectionStringBuilderTests.cs
2026-10-23 18:46:50 +02:00

86 lines
2.2 KiB
C#

using Omika.Data.Configuration;
using Omika.Data.Connection;
namespace Omika.Tests.Connection;
public class HfsqlOdbcConnectionStringBuilderTests
{
private static HfsqlOptions CreateOptions() => new()
{
Driver = "HFSQL Client/Server",
Server = "hfsql-serveur",
Port = 4900,
DatabaseName = "Omika",
Login = "tech",
Password = "secret"
};
[Fact]
public void Build_ContainsDriver()
{
var connectionString = HfsqlOdbcConnectionStringBuilder.Build(CreateOptions());
Assert.Contains("HFSQL Client/Server", connectionString);
}
[Fact]
public void Build_ContainsServer()
{
var connectionString = HfsqlOdbcConnectionStringBuilder.Build(CreateOptions());
Assert.Contains("hfsql-serveur", connectionString);
}
[Fact]
public void Build_ContainsPort()
{
var connectionString = HfsqlOdbcConnectionStringBuilder.Build(CreateOptions());
Assert.Contains("4900", connectionString);
}
[Fact]
public void Build_ContainsDatabase()
{
var connectionString = HfsqlOdbcConnectionStringBuilder.Build(CreateOptions());
Assert.Contains("Omika", connectionString);
}
[Fact]
public void Build_ContainsLogin()
{
var connectionString = HfsqlOdbcConnectionStringBuilder.Build(CreateOptions());
Assert.Contains("tech", connectionString);
}
[Fact]
public void Build_ContainsPassword()
{
// Le mot de passe est transmis au provider via la chaîne de connexion.
var connectionString = HfsqlOdbcConnectionStringBuilder.Build(CreateOptions());
Assert.Contains("secret", connectionString);
}
[Fact]
public void Build_OmitsLoginAndPasswordWhenAbsent()
{
var options = CreateOptions();
options.Login = null;
options.Password = null;
var connectionString = HfsqlOdbcConnectionStringBuilder.Build(options);
Assert.DoesNotContain("UID", connectionString);
Assert.DoesNotContain("PWD", connectionString);
}
[Fact]
public void Build_NullOptions_Throws()
{
Assert.Throws<ArgumentNullException>(() => HfsqlOdbcConnectionStringBuilder.Build(null!));
}
}