mirror of
https://github.com/Cleanuparr/Cleanuparr.git
synced 2026-03-26 01:52:41 -04:00
99 lines
2.6 KiB
C#
99 lines
2.6 KiB
C#
using Cleanuparr.Infrastructure.Health;
|
|
using Microsoft.Extensions.Diagnostics.HealthChecks;
|
|
using Xunit;
|
|
using HealthCheckStatus = Microsoft.Extensions.Diagnostics.HealthChecks.HealthStatus;
|
|
|
|
namespace Cleanuparr.Infrastructure.Tests.Health;
|
|
|
|
public class ApplicationHealthCheckTests
|
|
{
|
|
#region Constructor Tests
|
|
|
|
[Fact]
|
|
public void Constructor_CreatesInstance()
|
|
{
|
|
// Act
|
|
var healthCheck = new ApplicationHealthCheck();
|
|
|
|
// Assert
|
|
Assert.NotNull(healthCheck);
|
|
}
|
|
|
|
#endregion
|
|
|
|
#region CheckHealthAsync Tests
|
|
|
|
[Fact]
|
|
public async Task CheckHealthAsync_ReturnsHealthy()
|
|
{
|
|
// Arrange
|
|
var healthCheck = new ApplicationHealthCheck();
|
|
|
|
// Act
|
|
var result = await healthCheck.CheckHealthAsync(null!);
|
|
|
|
// Assert
|
|
Assert.Equal(HealthCheckStatus.Healthy, result.Status);
|
|
}
|
|
|
|
[Fact]
|
|
public async Task CheckHealthAsync_DescriptionIndicatesRunning()
|
|
{
|
|
// Arrange
|
|
var healthCheck = new ApplicationHealthCheck();
|
|
|
|
// Act
|
|
var result = await healthCheck.CheckHealthAsync(null!);
|
|
|
|
// Assert
|
|
Assert.Contains("running", result.Description, StringComparison.OrdinalIgnoreCase);
|
|
}
|
|
|
|
[Fact]
|
|
public async Task CheckHealthAsync_WithCancellationToken_CompletesSuccessfully()
|
|
{
|
|
// Arrange
|
|
var healthCheck = new ApplicationHealthCheck();
|
|
using var cts = new CancellationTokenSource();
|
|
|
|
// Act
|
|
var result = await healthCheck.CheckHealthAsync(null!, cts.Token);
|
|
|
|
// Assert
|
|
Assert.Equal(HealthCheckStatus.Healthy, result.Status);
|
|
}
|
|
|
|
[Fact]
|
|
public async Task CheckHealthAsync_WithContext_CompletesSuccessfully()
|
|
{
|
|
// Arrange
|
|
var healthCheck = new ApplicationHealthCheck();
|
|
var context = new HealthCheckContext();
|
|
|
|
// Act
|
|
var result = await healthCheck.CheckHealthAsync(context);
|
|
|
|
// Assert
|
|
Assert.Equal(HealthCheckStatus.Healthy, result.Status);
|
|
}
|
|
|
|
[Fact]
|
|
public async Task CheckHealthAsync_MultipleCalls_AllReturnHealthy()
|
|
{
|
|
// Arrange
|
|
var healthCheck = new ApplicationHealthCheck();
|
|
|
|
// Act
|
|
var result1 = await healthCheck.CheckHealthAsync(null!);
|
|
var result2 = await healthCheck.CheckHealthAsync(null!);
|
|
var result3 = await healthCheck.CheckHealthAsync(null!);
|
|
|
|
// Assert
|
|
Assert.Equal(HealthCheckStatus.Healthy, result1.Status);
|
|
Assert.Equal(HealthCheckStatus.Healthy, result2.Status);
|
|
Assert.Equal(HealthCheckStatus.Healthy, result3.Status);
|
|
}
|
|
|
|
#endregion
|
|
}
|