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);
        }
예제 #2
0
        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);
        }
예제 #3
0
        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>();
        }
예제 #4
0
 /// <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);
 }