88 lines
2.4 KiB
C#
88 lines
2.4 KiB
C#
using Microsoft.Extensions.Options;
|
|
using Omika.Data.Configuration;
|
|
|
|
namespace Omika.Tests.Connection;
|
|
|
|
public class HfsqlOptionsValidatorTests
|
|
{
|
|
private static HfsqlOptions CreateValidOptions() => new()
|
|
{
|
|
Driver = "HFSQL Client/Server",
|
|
Server = "hfsql-serveur",
|
|
Port = 4900,
|
|
DatabaseName = "Omika",
|
|
ConnectionName = "ConnexionLocale"
|
|
};
|
|
|
|
[Fact]
|
|
public void Validate_ValidOptions_ReturnsSuccess()
|
|
{
|
|
var result = HfsqlOptionsValidator.Validate(CreateValidOptions());
|
|
|
|
Assert.True(result.IsSuccess);
|
|
}
|
|
|
|
[Fact]
|
|
public void Validate_MissingDriver_ReturnsFailure()
|
|
{
|
|
var options = CreateValidOptions();
|
|
options.Driver = null!;
|
|
|
|
var result = HfsqlOptionsValidator.Validate(options);
|
|
|
|
Assert.True(result.IsFailure);
|
|
Assert.Contains(result.Errors, e => e.Contains("driver", StringComparison.OrdinalIgnoreCase));
|
|
}
|
|
|
|
[Fact]
|
|
public void Validate_InvalidTimeout_ReturnsFailure()
|
|
{
|
|
var options = CreateValidOptions();
|
|
options.ConnectionTimeoutSeconds = 0;
|
|
|
|
var result = HfsqlOptionsValidator.Validate(options);
|
|
|
|
Assert.True(result.IsFailure);
|
|
Assert.Contains(result.Errors, e => e.Contains("délai", StringComparison.OrdinalIgnoreCase));
|
|
}
|
|
|
|
[Fact]
|
|
public void Validate_ImplementsIValidateOptions()
|
|
{
|
|
var validator = new HfsqlOptionsValidator();
|
|
|
|
Assert.IsAssignableFrom<IValidateOptions<HfsqlOptions>>(validator);
|
|
}
|
|
|
|
[Fact]
|
|
public void ValidateOptions_Valid_ReturnsSuccess()
|
|
{
|
|
IValidateOptions<HfsqlOptions> validator = new HfsqlOptionsValidator();
|
|
|
|
var result = validator.Validate(null, CreateValidOptions());
|
|
|
|
Assert.Equal(ValidateOptionsResult.Success, result);
|
|
}
|
|
|
|
[Fact]
|
|
public void ValidateOptions_Invalid_ReturnsFailure()
|
|
{
|
|
IValidateOptions<HfsqlOptions> validator = new HfsqlOptionsValidator();
|
|
var options = CreateValidOptions();
|
|
options.Server = null;
|
|
|
|
var result = validator.Validate(null, options);
|
|
|
|
Assert.True(result.Failed);
|
|
Assert.Contains(result.Failures, e => e.Contains("serveur", StringComparison.OrdinalIgnoreCase));
|
|
}
|
|
|
|
[Fact]
|
|
public void CreateDefault_ProvidesDriver()
|
|
{
|
|
var options = HfsqlOptionsValidator.CreateDefault();
|
|
|
|
Assert.Equal(HfsqlOptions.DefaultOdbcDriver, options.Driver);
|
|
}
|
|
}
|