public static HealthCheckBuilder AddCheck(this HealthCheckBuilder builder, string name, Func <CancellationToken, IHealthCheckResult> check, TimeSpan cacheDuration) { Guard.ArgumentNotNull(nameof(builder), builder); return(builder.AddCheck(name, HealthCheck.FromCheck(check), cacheDuration)); }
// Lambda versions of AddCheck for Func/Func<Task>/Func<ValueTask> public static HealthCheckBuilder AddCheck(this HealthCheckBuilder builder, string name, Func <IHealthCheckResult> check) { Guard.ArgumentNotNull(nameof(builder), builder); return(builder.AddCheck(name, HealthCheck.FromCheck(check), builder.DefaultCacheDuration)); }
public async void CheckDoesNotThrow_ReturnsCheckResult() { var checkResult = HealthCheckResult.Healthy("Healthy Check"); var cachedCheck = new TestableCachedHealthCheck(check: HealthCheck.FromCheck(() => checkResult)); var result = await cachedCheck.RunAsync(_serviceProvider); Assert.Same(checkResult, result); }
public async void CancellationRequested_ReturnsUnhealthyCheck() { var checkResult = HealthCheckResult.Healthy("Happy check"); var cachedCheck = new TestableCachedHealthCheck(check: HealthCheck.FromCheck(token => { token.ThrowIfCancellationRequested(); return(checkResult); })); var cts = new CancellationTokenSource(); cts.Cancel(); var result = await cachedCheck.RunAsync(_serviceProvider, cts.Token); Assert.Equal(CheckStatus.Unhealthy, result.CheckStatus); Assert.Equal("The health check operation timed out", result.Description); Assert.Empty(result.Data); }