Premiere commit - Omika
This commit is contained in:
@@ -0,0 +1,109 @@
|
||||
using Microsoft.Extensions.Configuration;
|
||||
using Omika.Data.Configuration;
|
||||
|
||||
namespace Omika.Tests.Connection;
|
||||
|
||||
public class HfSqlTestConfigurationLoaderTests
|
||||
{
|
||||
[Theory]
|
||||
[InlineData("Development")]
|
||||
[InlineData("development")]
|
||||
[InlineData("Test")]
|
||||
[InlineData("test")]
|
||||
public void IsTestEnvironment_TestEnvironments_ReturnsTrue(string environment)
|
||||
{
|
||||
Assert.True(HfSqlTestConfigurationLoader.IsTestEnvironment(environment));
|
||||
}
|
||||
|
||||
[Theory]
|
||||
[InlineData("Production")]
|
||||
[InlineData("Staging")]
|
||||
[InlineData(null)]
|
||||
[InlineData("")]
|
||||
public void IsTestEnvironment_NonTestEnvironments_ReturnsFalse(string? environment)
|
||||
{
|
||||
Assert.False(HfSqlTestConfigurationLoader.IsTestEnvironment(environment));
|
||||
}
|
||||
|
||||
[Fact]
|
||||
public void ResolveConfigPath_ExplicitEnvironmentVariable_ReturnsFullPath()
|
||||
{
|
||||
var tempFile = Path.Combine(Path.GetTempPath(), $"hfsql-test-{Guid.NewGuid():N}.json");
|
||||
try
|
||||
{
|
||||
File.WriteAllText(tempFile, "{}");
|
||||
Environment.SetEnvironmentVariable(
|
||||
HfSqlTestConfigurationLoader.ConfigPathEnvironmentVariable, tempFile);
|
||||
|
||||
var path = HfSqlTestConfigurationLoader.ResolveConfigPath();
|
||||
|
||||
Assert.NotNull(path);
|
||||
Assert.Equal(Path.GetFullPath(tempFile), path);
|
||||
}
|
||||
finally
|
||||
{
|
||||
Environment.SetEnvironmentVariable(
|
||||
HfSqlTestConfigurationLoader.ConfigPathEnvironmentVariable, null);
|
||||
File.Delete(tempFile);
|
||||
}
|
||||
}
|
||||
|
||||
[Fact]
|
||||
public void AddLocalTestConfiguration_ProductionEnvironment_DoesNotLoad()
|
||||
{
|
||||
var configuration = new ConfigurationManager();
|
||||
|
||||
var loaded = HfSqlTestConfigurationLoader.AddLocalTestConfiguration(
|
||||
configuration, "Production");
|
||||
|
||||
Assert.False(loaded);
|
||||
}
|
||||
|
||||
[Fact]
|
||||
public void AddLocalTestConfiguration_DevelopmentWithExplicitPath_LoadsFile()
|
||||
{
|
||||
var tempFile = Path.Combine(Path.GetTempPath(), $"hfsql-test-{Guid.NewGuid():N}.json");
|
||||
try
|
||||
{
|
||||
File.WriteAllText(tempFile, """{ "E2E": { "AllowHfSqlWrites": false } }""");
|
||||
Environment.SetEnvironmentVariable(
|
||||
HfSqlTestConfigurationLoader.ConfigPathEnvironmentVariable, tempFile);
|
||||
|
||||
var configuration = new ConfigurationManager();
|
||||
var loaded = HfSqlTestConfigurationLoader.AddLocalTestConfiguration(
|
||||
configuration, "Development");
|
||||
|
||||
Assert.True(loaded);
|
||||
Assert.Equal("False", configuration["E2E:AllowHfSqlWrites"]);
|
||||
}
|
||||
finally
|
||||
{
|
||||
Environment.SetEnvironmentVariable(
|
||||
HfSqlTestConfigurationLoader.ConfigPathEnvironmentVariable, null);
|
||||
File.Delete(tempFile);
|
||||
}
|
||||
}
|
||||
|
||||
[Fact]
|
||||
public void AddLocalTestConfiguration_DevelopmentWithoutFile_DoesNotLoad()
|
||||
{
|
||||
// Pointe vers un fichier inexistant pour garantir l'absence de chargement.
|
||||
var missingPath = Path.Combine(Path.GetTempPath(), $"missing-{Guid.NewGuid():N}.json");
|
||||
Environment.SetEnvironmentVariable(
|
||||
HfSqlTestConfigurationLoader.ConfigPathEnvironmentVariable, missingPath);
|
||||
|
||||
try
|
||||
{
|
||||
var configuration = new ConfigurationManager();
|
||||
var loaded = HfSqlTestConfigurationLoader.AddLocalTestConfiguration(
|
||||
configuration, "Development");
|
||||
|
||||
Assert.False(loaded);
|
||||
}
|
||||
finally
|
||||
{
|
||||
Environment.SetEnvironmentVariable(
|
||||
HfSqlTestConfigurationLoader.ConfigPathEnvironmentVariable, null);
|
||||
}
|
||||
}
|
||||
}
|
||||
Reference in New Issue
Block a user