public IHealthRoot Build() { if (_options == null) { _options = new HealthOptions(); } if (_healthFormatterCollection.Count == 0) { _healthFormatterCollection.Add(new HealthStatusTextOutputFormatter()); } IRunHealthChecks healthCheckRunner; var health = new DefaultHealth(_checks.Values); var defaultMetricsOutputFormatter = _defaultMetricsHealthFormatter ?? _healthFormatterCollection.FirstOrDefault(); if (_options.Enabled && health.Checks.Any()) { healthCheckRunner = new DefaultHealthCheckRunner(health.Checks); } else { healthCheckRunner = new NoOpHealthCheckRunner(); } return(new HealthRoot( health, _options, _healthFormatterCollection, defaultMetricsOutputFormatter, healthCheckRunner)); }
public async Task Status_is_healthy_if_all_checks_are_healthy() { // Arrange var checks = new[] { new HealthCheck("ok", () => new ValueTask <HealthCheckResult>(HealthCheckResult.Healthy())), new HealthCheck("another", () => new ValueTask <HealthCheckResult>(HealthCheckResult.Healthy())) }; var runner = new DefaultHealthCheckRunner(checks); // Act var status = await runner.ReadAsync(); // Assert status.Status.Should().Be(HealthCheckStatus.Healthy); status.Results.Count().Should().Be(2); }
public async Task Status_is_failed_if_one_check_fails() { // Arrange var checks = new[] { new HealthCheck("ok", () => new ValueTask <HealthCheckResult>(HealthCheckResult.Healthy())), new HealthCheck("bad", () => new ValueTask <HealthCheckResult>(HealthCheckResult.Unhealthy())) }; var runner = new DefaultHealthCheckRunner(checks); // Act var status = await runner.ReadAsync(); // Assert status.Status.Should().Be(HealthCheckStatus.Unhealthy); status.Results.Count().Should().Be(2); }
public IHealthRoot Build() { if (_options == null) { _options = new HealthOptions(); } if (_healthFormatterCollection.Count == 0) { _healthFormatterCollection.Add(new HealthStatusTextOutputFormatter()); } IRunHealthChecks healthCheckRunner; var health = new DefaultHealth(_checks.Values); var defaultMetricsOutputFormatter = _defaultMetricsHealthFormatter ?? _healthFormatterCollection.FirstOrDefault(); if (_options.Enabled && health.Checks.Any()) { healthCheckRunner = new DefaultHealthCheckRunner(health.Checks); } else { healthCheckRunner = new NoOpHealthCheckRunner(); } if (string.IsNullOrWhiteSpace(_options.ApplicationName)) { var entryAssembly = Assembly.GetEntryAssembly(); _options.ApplicationName = entryAssembly?.GetName()?.Name?.Trim(); } return(new HealthRoot( health, _options, _healthFormatterCollection, defaultMetricsOutputFormatter, healthCheckRunner, _healthStatusReporters)); }