Premiere commit - Omika
This commit is contained in:
@@ -0,0 +1,104 @@
|
||||
using Omika.Data.HfSql.Connection;
|
||||
|
||||
namespace Omika.Tests.Connection;
|
||||
|
||||
public class HfSqlOleDbConnectionStringBuilderTests
|
||||
{
|
||||
private static HfSqlConnectionOptions CreateOptions() => new()
|
||||
{
|
||||
Server = "hfsql-serveur",
|
||||
Port = 4900,
|
||||
Database = "Omika",
|
||||
User = "tech",
|
||||
Credential = "secret"
|
||||
};
|
||||
|
||||
[Fact]
|
||||
public void Build_ContainsProvider()
|
||||
{
|
||||
var connectionString = HfSqlOleDbConnectionStringBuilder.Build(CreateOptions());
|
||||
|
||||
Assert.Contains("PCSOFT.HFSQL", connectionString);
|
||||
}
|
||||
|
||||
[Fact]
|
||||
public void Build_ContainsServerAndPort()
|
||||
{
|
||||
var connectionString = HfSqlOleDbConnectionStringBuilder.Build(CreateOptions());
|
||||
|
||||
Assert.Contains("hfsql-serveur:4900", connectionString);
|
||||
}
|
||||
|
||||
[Fact]
|
||||
public void Build_ContainsDatabase()
|
||||
{
|
||||
var connectionString = HfSqlOleDbConnectionStringBuilder.Build(CreateOptions());
|
||||
|
||||
Assert.Contains("Omika", connectionString);
|
||||
}
|
||||
|
||||
[Fact]
|
||||
public void Build_ContainsUser()
|
||||
{
|
||||
var connectionString = HfSqlOleDbConnectionStringBuilder.Build(CreateOptions());
|
||||
|
||||
Assert.Contains("tech", connectionString);
|
||||
}
|
||||
|
||||
[Fact]
|
||||
public void Build_ContainsCredential()
|
||||
{
|
||||
var connectionString = HfSqlOleDbConnectionStringBuilder.Build(CreateOptions());
|
||||
|
||||
Assert.Contains("secret", connectionString);
|
||||
}
|
||||
|
||||
[Fact]
|
||||
public void Build_OmitsExtendedPropertiesWhenNull()
|
||||
{
|
||||
var connectionString = HfSqlOleDbConnectionStringBuilder.Build(CreateOptions());
|
||||
|
||||
Assert.DoesNotContain("Extended Properties", connectionString);
|
||||
}
|
||||
|
||||
[Fact]
|
||||
public void Build_IncludesExtendedPropertiesWhenProvided()
|
||||
{
|
||||
var connectionString = HfSqlOleDbConnectionStringBuilder.Build(
|
||||
CreateOptions(),
|
||||
"Password=Client:abc123");
|
||||
|
||||
Assert.Contains("Extended Properties", connectionString);
|
||||
Assert.Contains("Password=Client:abc123", connectionString);
|
||||
}
|
||||
|
||||
[Fact]
|
||||
public void Build_NullOptions_Throws()
|
||||
{
|
||||
Assert.Throws<ArgumentNullException>(() => HfSqlOleDbConnectionStringBuilder.Build(null!));
|
||||
}
|
||||
|
||||
[Fact]
|
||||
public void EscapeExtendedPropertyValue_EscapesSpecialCharacters()
|
||||
{
|
||||
var escaped = HfSqlOleDbConnectionStringBuilder.EscapeExtendedPropertyValue("a=b;c:d\\e");
|
||||
|
||||
Assert.Equal("a\\=b\\;c\\:d\\\\e", escaped);
|
||||
}
|
||||
|
||||
[Fact]
|
||||
public void BuildFilePasswordEntry_DoesNotEscapeStructuralColon()
|
||||
{
|
||||
var entry = HfSqlOleDbConnectionStringBuilder.BuildFilePasswordEntry("Client", "abc123");
|
||||
|
||||
Assert.Equal("Password=Client:abc123", entry);
|
||||
}
|
||||
|
||||
[Fact]
|
||||
public void BuildFilePasswordEntry_EscapesFilenameAndPasswordIndividually()
|
||||
{
|
||||
var entry = HfSqlOleDbConnectionStringBuilder.BuildFilePasswordEntry("a=b", "c;d");
|
||||
|
||||
Assert.Equal("Password=a\\=b:c\\;d", entry);
|
||||
}
|
||||
}
|
||||
Reference in New Issue
Block a user