public void Correctly_Report_When_There_Are_HealthChecks() { HealthCheckRegistry registry = new HealthCheckRegistry(); registry.Register("test-health-check", new HealthCheck(() => HealthCheck.Result.Healthy())); Assert.That(registry.HasHealthChecks, Is.True); }
public async Task Should_be_unhealthy_when_task_is_cancelled() { var healthChecks = Enumerable.Empty <HealthCheck>(); var name = "custom with cancellation token"; var registry = new HealthCheckRegistry(healthChecks); registry.Register( name, async cancellationToken => { await Task.Delay(2000, cancellationToken); return(HealthCheckResult.Healthy()); }); var token = new CancellationTokenSource(); token.CancelAfter(200); var check = registry.Checks.FirstOrDefault(); var result = await check.Value.ExecuteAsync(token.Token).ConfigureAwait(false); result.Check.Status.Should().Be(HealthCheckStatus.Unhealthy); }
public void Registry_does_not_throw_on_duplicate_registration() { _healthCheckRegistry.Register("test", () => new ValueTask <HealthCheckResult>(HealthCheckResult.Healthy())); Action action = () => _healthCheckRegistry.Register("test", () => new ValueTask <HealthCheckResult>(HealthCheckResult.Healthy())); action.ShouldNotThrow <InvalidOperationException>(); }
/// <summary> /// Registers an application <seealso cref="HealthCheck" /> with a given name. /// </summary> /// <param name="healthCheck">the <seealso cref="HealthCheck" /> instance</param> public static void Register(HealthCheck healthCheck) { DEFAULT_REGISTRY.Register(healthCheck); }