Premiere commit - Omika
This commit is contained in:
@@ -0,0 +1,79 @@
|
||||
using Omika.Core.Observability.Diagnostic;
|
||||
|
||||
namespace Omika.Tests.Observability.Correlation;
|
||||
|
||||
public class RequestDiagnosticContextTests
|
||||
{
|
||||
[Fact]
|
||||
public void Begin_SetsContext_AndRestoresOnDispose()
|
||||
{
|
||||
var context = new RequestDiagnosticContext();
|
||||
Guid traceId = Guid.NewGuid();
|
||||
Guid sessionId = Guid.NewGuid();
|
||||
|
||||
Assert.Null(context.TraceId);
|
||||
Assert.Null(context.SessionId);
|
||||
Assert.Null(context.StartedAtUtc);
|
||||
|
||||
using (context.Begin(traceId, sessionId))
|
||||
{
|
||||
Assert.Equal(traceId, context.TraceId);
|
||||
Assert.Equal(sessionId, context.SessionId);
|
||||
Assert.NotNull(context.StartedAtUtc);
|
||||
}
|
||||
|
||||
Assert.Null(context.TraceId);
|
||||
Assert.Null(context.SessionId);
|
||||
Assert.Null(context.StartedAtUtc);
|
||||
}
|
||||
|
||||
[Fact]
|
||||
public void SetIdentity_WithinScope_SetsFields()
|
||||
{
|
||||
var context = new RequestDiagnosticContext();
|
||||
using (context.Begin(Guid.NewGuid()))
|
||||
{
|
||||
context.SetIdentity("device-1", "CLIENT01", "42", "7");
|
||||
|
||||
Assert.Equal("device-1", context.DeviceId);
|
||||
Assert.Equal("CLIENT01", context.ClientId);
|
||||
Assert.Equal("42", context.UserId);
|
||||
Assert.Equal("7", context.CollaborateurId);
|
||||
}
|
||||
}
|
||||
|
||||
[Fact]
|
||||
public void SetIdentity_OutsideScope_IsNoOp()
|
||||
{
|
||||
var context = new RequestDiagnosticContext();
|
||||
context.SetIdentity("device-1", "CLIENT01", "42", "7");
|
||||
|
||||
Assert.Null(context.DeviceId);
|
||||
Assert.Null(context.ClientId);
|
||||
Assert.Null(context.UserId);
|
||||
Assert.Null(context.CollaborateurId);
|
||||
}
|
||||
|
||||
[Fact]
|
||||
public async Task NestedScopes_AreIsolated_AndRestored()
|
||||
{
|
||||
var context = new RequestDiagnosticContext();
|
||||
Guid a = Guid.NewGuid();
|
||||
Guid b = Guid.NewGuid();
|
||||
|
||||
using (context.Begin(a))
|
||||
{
|
||||
await Task.Yield();
|
||||
Assert.Equal(a, context.TraceId);
|
||||
|
||||
using (context.Begin(b))
|
||||
{
|
||||
Assert.Equal(b, context.TraceId);
|
||||
}
|
||||
|
||||
Assert.Equal(a, context.TraceId);
|
||||
}
|
||||
|
||||
Assert.Null(context.TraceId);
|
||||
}
|
||||
}
|
||||
Reference in New Issue
Block a user