namespace SQLInsight.Connectivity.Tests; public class ConnectionStringsTests { [Fact] public void SqlClient_defaults_to_mandatory_encryption_with_certificate_validation() { var cs = ConnectionStrings.ForSqlClient(new ConnectionTarget { Server = "sql01" }); Assert.Contains("Encrypt=True", cs, StringComparison.OrdinalIgnoreCase); Assert.DoesNotContain("Trust Server Certificate=True", cs, StringComparison.OrdinalIgnoreCase); Assert.Contains("Integrated Security=True", cs, StringComparison.OrdinalIgnoreCase); Assert.Contains("Application Name=\"SQLInsight Pro\"", cs, StringComparison.OrdinalIgnoreCase); } [Fact] public void Odbc_uses_configured_driver_and_sql_login() { var cs = ConnectionStrings.ForOdbc(new ConnectionTarget { Server = "legacy01", Authentication = AuthenticationMode.SqlLogin, UserName = "sqlinsight", Password = "secret", Encryption = EncryptionMode.Optional, OdbcDriver = "SQL Server", }); Assert.Contains("Driver={SQL Server}", cs, StringComparison.OrdinalIgnoreCase); Assert.Contains("UID=sqlinsight", cs, StringComparison.OrdinalIgnoreCase); Assert.Contains("Encrypt=no", cs, StringComparison.OrdinalIgnoreCase); Assert.DoesNotContain("Trusted_Connection", cs, StringComparison.OrdinalIgnoreCase); } [Fact] public void Sql_login_without_user_name_is_rejected() { var target = new ConnectionTarget { Server = "sql01", Authentication = AuthenticationMode.SqlLogin }; Assert.Throws(() => ConnectionStrings.ForSqlClient(target)); } }