| File: ApplicationLifecycleHealthChecksExtensionsTests.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; using System.Collections.Generic; using Microsoft.Extensions.DependencyInjection; using Microsoft.Extensions.Hosting; using Microsoft.Extensions.Options; using Moq; using Xunit; namespace Microsoft.Extensions.Diagnostics.HealthChecks.Test; public class ApplicationLifecycleHealthChecksExtensionsTests { [Fact] public void AddApplicationLifecycleHealthCheck_DependenciesAreRegistered() { var serviceCollection = new ServiceCollection(); serviceCollection.AddSingleton<IHostApplicationLifetime>(new Mock<IHostApplicationLifetime>().Object); serviceCollection.AddHealthChecks().AddApplicationLifecycleHealthCheck(); AssertAddedHealthCheck<ApplicationLifecycleHealthCheck>(serviceCollection); } [Fact] public void AddApplicationLifecycleHealthCheck_WithTags_DependenciesAreRegistered() { var serviceCollection = new ServiceCollection(); serviceCollection.AddSingleton<IHostApplicationLifetime>(new Mock<IHostApplicationLifetime>().Object); serviceCollection.AddHealthChecks().AddApplicationLifecycleHealthCheck("test1", "test2"); AssertAddedHealthCheck<ApplicationLifecycleHealthCheck>(serviceCollection); } [Fact] public void AddApplicationLifecycleHealthCheck_WithTagsEnumerable_DependenciesAreRegistered() { var serviceCollection = new ServiceCollection(); serviceCollection.AddSingleton<IHostApplicationLifetime>(new Mock<IHostApplicationLifetime>().Object); serviceCollection.AddHealthChecks().AddApplicationLifecycleHealthCheck(new List<string> { "test1", "test2" }); AssertAddedHealthCheck<ApplicationLifecycleHealthCheck>(serviceCollection); } [Fact] public void TestNullChecks() { Assert.Throws<ArgumentNullException>(() => ((IHealthChecksBuilder)null!).AddApplicationLifecycleHealthCheck()); Assert.Throws<ArgumentNullException>(() => ((IHealthChecksBuilder)null!).AddApplicationLifecycleHealthCheck(null!)); } private static void AssertAddedHealthCheck<T>(IServiceCollection serviceCollection) { using var serviceProvider = serviceCollection.BuildServiceProvider(); var registrations = serviceProvider.GetRequiredService<IOptions<HealthCheckServiceOptions>>().Value.Registrations; Assert.Single(registrations); foreach (var r in registrations) { Assert.True(r.Factory(serviceProvider) is T); Assert.Equal("ApplicationLifecycle", r.Name); } } }