Files
Omika/tests/Omika.Tests/Observability/ObservabilityCompositionTests.cs
2026-10-23 18:46:50 +02:00

53 lines
1.9 KiB
C#

using Microsoft.Extensions.DependencyInjection;
using Omika.Core;
using Omika.Core.Observability;
namespace Omika.Tests.Observability;
public class ObservabilityCompositionTests
{
[Fact]
public void AddOmikaTelemetry_ResolvesNullTelemetryService()
{
var services = new ServiceCollection();
services.AddOmikaTelemetry();
using ServiceProvider provider = services.BuildServiceProvider();
var telemetry = provider.GetRequiredService<IOmikaTelemetry>();
Assert.IsType<NullTelemetryService>(telemetry);
Assert.Same(telemetry, provider.GetRequiredService<IEventTracker>());
Assert.Same(telemetry, provider.GetRequiredService<IDiagnosticLogger>());
}
[Fact]
public void AddOmikaTelemetrySink_ResolvesFullPipeline()
{
var services = new ServiceCollection();
services.AddOmikaTelemetrySink();
using ServiceProvider provider = services.BuildServiceProvider();
Assert.IsType<SafeTelemetrySink>(provider.GetRequiredService<IOmikaTelemetry>());
Assert.IsType<NullTelemetryExporter>(provider.GetRequiredService<ITelemetryExporter>());
Assert.NotNull(provider.GetRequiredService<PriorityTelemetryQueue>());
Assert.NotNull(provider.GetRequiredService<TelemetryWorker>());
Assert.NotNull(provider.GetRequiredService<TelemetryCounters>());
}
[Fact]
public void AddOmikaTelemetrySink_AppliesConfigure()
{
var services = new ServiceCollection();
services.AddOmikaTelemetrySink(o => o.Enabled = false);
using ServiceProvider provider = services.BuildServiceProvider();
IOmikaTelemetry telemetry = provider.GetRequiredService<IOmikaTelemetry>();
var sink = Assert.IsType<SafeTelemetrySink>(telemetry);
sink.Track(ObservabilityTestHarness.NewEvent(TelemetryEventCodes.MobileAppStarted));
Assert.Equal(1L, sink.Counters.DroppedDisabled);
}
}