39 lines
1.1 KiB
C#
39 lines
1.1 KiB
C#
namespace Omika.Tests.Observability.Diagnostic;
|
|
|
|
/// <summary>Fabrique de test partagée pour le diagnostic local (Phase 2).</summary>
|
|
internal static class DiagnosticTestHarness
|
|
{
|
|
public static string CreateTempDirectory()
|
|
{
|
|
string dir = Path.Combine(Path.GetTempPath(), "omika-diag-tests", Guid.NewGuid().ToString("N"));
|
|
Directory.CreateDirectory(dir);
|
|
return dir;
|
|
}
|
|
|
|
public static void DeleteDirectory(string dir)
|
|
{
|
|
try
|
|
{
|
|
if (Directory.Exists(dir))
|
|
{
|
|
Directory.Delete(dir, recursive: true);
|
|
}
|
|
}
|
|
catch
|
|
{
|
|
// Best-effort.
|
|
}
|
|
}
|
|
|
|
public static async Task WaitUntilAsync(Func<bool> condition, int timeoutMs = 3000)
|
|
{
|
|
DateTimeOffset deadline = DateTimeOffset.UtcNow.AddMilliseconds(timeoutMs);
|
|
while (!condition() && DateTimeOffset.UtcNow < deadline)
|
|
{
|
|
await Task.Delay(10);
|
|
}
|
|
|
|
Assert.True(condition(), "La condition n'a pas été atteinte dans le délai imparti.");
|
|
}
|
|
}
|