mirror of
https://github.com/wiremock/WireMock.Net.git
synced 2026-06-02 21:20:43 +02:00
39 lines
1.2 KiB
C#
39 lines
1.2 KiB
C#
// Copyright © WireMock.Net
|
|
|
|
using Aspire.Hosting.ApplicationModel;
|
|
using Microsoft.Extensions.Diagnostics.HealthChecks;
|
|
using WireMock.Client;
|
|
|
|
namespace WireMock.Net.Aspire;
|
|
|
|
/// <summary>
|
|
/// WireMockHealthCheck
|
|
/// </summary>
|
|
public class WireMockHealthCheck(WireMockServerResource resource) : IHealthCheck
|
|
{
|
|
private const string HealthStatusHealthy = "Healthy";
|
|
|
|
/// <inheritdoc />
|
|
public async Task<HealthCheckResult> CheckHealthAsync(HealthCheckContext context, CancellationToken cancellationToken = default)
|
|
{
|
|
if (!await IsHealthyAsync(resource.AdminApi.Value, cancellationToken))
|
|
{
|
|
return HealthCheckResult.Unhealthy("WireMock.Net is not healthy");
|
|
}
|
|
|
|
return HealthCheckResult.Healthy();
|
|
}
|
|
|
|
private static async Task<bool> IsHealthyAsync(IWireMockAdminApi adminApi, CancellationToken cancellationToken)
|
|
{
|
|
try
|
|
{
|
|
var status = await adminApi.GetHealthAsync(cancellationToken);
|
|
return string.Equals(status, HealthStatusHealthy, StringComparison.OrdinalIgnoreCase);
|
|
}
|
|
catch
|
|
{
|
|
return false;
|
|
}
|
|
}
|
|
} |