Premiere commit - Omika

This commit is contained in:
2026-10-23 18:46:50 +02:00
commit 8ea76c1b24
2155 changed files with 984301 additions and 0 deletions
@@ -0,0 +1,47 @@
using Omika.Diagnostics.Tests.Fakes;
namespace Omika.Diagnostics.Tests;
/// <summary>§55 — Traces : timeline chronologique pour un TraceId partagé (Mobile → API → Worker).</summary>
public class DiagnosticTraceTests
{
[Fact]
public async Task GetByTraceId_ReturnsChronologicalTimeline()
{
Guid traceId = Guid.NewGuid();
DateTimeOffset baseTime = new(2025, 1, 1, 10, 0, 0, TimeSpan.Zero);
var repository = new FakeDiagnosticEventRepository();
await repository.InsertBatchAsync(new[]
{
DiagnosticTestData.Event(Guid.NewGuid(), "MOBILE", baseTime.AddMinutes(2), traceId, component: "Mobile"),
DiagnosticTestData.Event(Guid.NewGuid(), "API", baseTime, traceId, component: "Api"),
DiagnosticTestData.Event(Guid.NewGuid(), "WORKER", baseTime.AddMinutes(1), traceId, component: "Worker")
});
var timeline = await repository.GetByTraceIdAsync(traceId);
Assert.Equal(3, timeline.Count);
Assert.Equal(new[] { "API", "WORKER", "MOBILE" }, timeline.Select(e => e.EventCode).ToArray());
}
[Fact]
public async Task GetByOperationId_ReturnsChronologicalTimeline()
{
Guid operationId = Guid.NewGuid();
DateTimeOffset baseTime = new(2025, 1, 1, 12, 0, 0, TimeSpan.Zero);
var repository = new FakeDiagnosticEventRepository();
await repository.InsertBatchAsync(new[]
{
DiagnosticTestData.Event(Guid.NewGuid(), "SYNC_START", baseTime, operationId: operationId),
DiagnosticTestData.Event(Guid.NewGuid(), "SYNC_END", baseTime.AddSeconds(30), operationId: operationId)
});
var timeline = await repository.GetByOperationIdAsync(operationId);
Assert.Equal(2, timeline.Count);
Assert.Equal("SYNC_START", timeline[0].EventCode);
Assert.Equal("SYNC_END", timeline[1].EventCode);
}
}