| File: TelemetryHealthChecksPublisherExtensionsTests.cs | Web Access |
| Project: src\test\Libraries\Microsoft.Extensions.Diagnostics.HealthChecks.Common.Tests\Microsoft.Extensions.Diagnostics.HealthChecks.Common.Tests.csproj (Microsoft.Extensions.Diagnostics.HealthChecks.Common.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.Collections.Generic; using Microsoft.Extensions.Configuration; using Microsoft.Extensions.DependencyInjection; using Microsoft.Extensions.Logging; using Xunit; namespace Microsoft.Extensions.Diagnostics.HealthChecks.Test; public class TelemetryHealthChecksPublisherExtensionsTests { [Fact] public void AddHealthCheckTelemetryTest() { var serviceCollection = new ServiceCollection(); serviceCollection .AddLogging() .AddSingleton<ILoggerFactory, LoggerFactory>() .AddTelemetryHealthCheckPublisher(); using var serviceProvider = serviceCollection.BuildServiceProvider(); var publishers = serviceProvider.GetRequiredService<IEnumerable<IHealthCheckPublisher>>(); var publisher = Assert.Single(publishers); _ = Assert.IsType<TelemetryHealthCheckPublisher>(publisher); } [Fact] public void AddHealthCheckTelemetryTest_WithAction() { var serviceCollection = new ServiceCollection(); serviceCollection .AddLogging() .AddSingleton<ILoggerFactory, LoggerFactory>() .AddTelemetryHealthCheckPublisher(o => { o.LogOnlyUnhealthy = true; }); using var serviceProvider = serviceCollection.BuildServiceProvider(); var publishers = serviceProvider.GetRequiredService<IEnumerable<IHealthCheckPublisher>>(); var publisher = Assert.Single(publishers); _ = Assert.IsType<TelemetryHealthCheckPublisher>(publisher); } [Fact] public void AddHealthCheckTelemetryTest_WithConfigurationSection() { var serviceCollection = new ServiceCollection(); serviceCollection .AddLogging() .AddSingleton<ILoggerFactory, LoggerFactory>() .AddTelemetryHealthCheckPublisher(SetupTelemetryHealthCheckPublisherConfiguration("true") .GetSection(nameof(TelemetryHealthCheckPublisherOptions))); using var serviceProvider = serviceCollection.BuildServiceProvider(); var publishers = serviceProvider.GetRequiredService<IEnumerable<IHealthCheckPublisher>>(); var publisher = Assert.Single(publishers); _ = Assert.IsType<TelemetryHealthCheckPublisher>(publisher); } private static IConfiguration SetupTelemetryHealthCheckPublisherConfiguration(string logOnlyUnhealthy) { TelemetryHealthCheckPublisherOptions telemetryHealthCheckPublisherOptions; var configurationDict = new Dictionary<string, string?> { { $"{nameof(telemetryHealthCheckPublisherOptions)}:{nameof(telemetryHealthCheckPublisherOptions.LogOnlyUnhealthy)}", logOnlyUnhealthy } }; return new ConfigurationBuilder().AddInMemoryCollection(configurationDict).Build(); } }