| File: Enrichment\EnricherExtensionsTests.cs | Web Access |
| Project: src\test\Libraries\Microsoft.Extensions.Telemetry.Abstractions.Tests\Microsoft.Extensions.Telemetry.Abstractions.Tests.csproj (Microsoft.Extensions.Telemetry.Abstractions.Tests) |
// Licensed to the .NET Foundation under one or more agreements. // The .NET Foundation licenses this file to you under the MIT license. using System; using Microsoft.Extensions.DependencyInjection; using Xunit; namespace Microsoft.Extensions.Diagnostics.Enrichment.Test; public class EnricherExtensionsTests { [Fact] public void CreateLoggerWithNullEnricher() { // Assert Assert.Throws<ArgumentNullException>(() => new ServiceCollection().AddLogEnricher(null!)); } [Fact] public void EnrichmentLoggingBuilder_GivenNullArguments_Throws() { // Arrange var enricher = new EmptyEnricher(); // Act & Assert Assert.Throws<ArgumentNullException>(() => ((IServiceCollection)null!).AddLogEnricher(enricher)); Assert.Throws<ArgumentNullException>(() => new ServiceCollection().AddLogEnricher(null!)); } [Fact] public void AddLogEnricher() { var services = new ServiceCollection(); services.AddLogEnricher<EmptyEnricher>(); services.AddLogEnricher(new TestEnricher()); using var provider = services.BuildServiceProvider(); var enrichersCollection = provider.GetServices<ILogEnricher>(); var enricherCount = 0; foreach (var enricher in enrichersCollection) { enricherCount++; } Assert.Equal(2, enricherCount); } [Fact] public void AddStaticLogEnricher() { var services = new ServiceCollection(); services.AddStaticLogEnricher<EmptyEnricher>(); services.AddStaticLogEnricher(new TestEnricher()); using var provider = services.BuildServiceProvider(); var enrichersCollection = provider.GetServices<IStaticLogEnricher>(); var enricherCount = 0; foreach (var enricher in enrichersCollection) { enricherCount++; } Assert.Equal(2, enricherCount); } internal class EmptyEnricher : ILogEnricher, IStaticLogEnricher { public void Enrich(IEnrichmentTagCollector collector) { // intentionally left empty } } internal class TestEnricher : ILogEnricher, IStaticLogEnricher { public void Enrich(IEnrichmentTagCollector collector) { collector.Add("testKey", "testValue"); } } }