53 lines
1.9 KiB
C#
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);
|
|
}
|
|
}
|