Ejemplo n.º 1
0
        public async Task Can_apply_ascii_health_formatting()
        {
            // Arrange
            var health = new HealthBuilder()
                         .OutputHealth.AsPlainText()
                         .HealthChecks.AddCheck("test", () => new ValueTask <HealthCheckResult>(HealthCheckResult.Healthy()))
                         .Build();

            var serializer = new HealthStatusSerializer();

            // Act
            var healthStatus = await health.HealthCheckRunner.ReadAsync();

            using (var sw = new StringWriter())
            {
                using (var writer = new HealthStatusTextWriter(sw))
                {
                    serializer.Serialize(writer, healthStatus);
                }

                // Assert
                sw.ToString().Should().Be(
                    "# OVERALL STATUS: Healthy\n--------------------------------------------------------------\n# CHECK: test\n\n           MESSAGE = OK\n            STATUS = Healthy\n--------------------------------------------------------------\n");
            }
        }
Ejemplo n.º 2
0
        public Task WriteAsync(
            Stream output,
            HealthStatus healthStatus,
            CancellationToken cancellationToken = default)
        {
            if (output == null)
            {
                throw new ArgumentNullException(nameof(output));
            }

            var serializer = new HealthStatusSerializer();

            using (var stringWriter = new StreamWriter(output, _options.Encoding))
            {
                using (var textWriter = new HealthStatusTextWriter(stringWriter, _options.Separator, _options.Padding))
                {
                    serializer.Serialize(textWriter, healthStatus);
                }
            }

#if !NETSTANDARD1_6
            return(AppMetricsHealthTaskHelper.CompletedTask());
#else
            return(Task.CompletedTask);
#endif
        }
        public HealthStatusSerializationTests(ITestOutputHelper output)
        {
            _output     = output;
            _serializer = new HealthStatusSerializer(new TestClock());

            var healthyOne   = new HealthCheck.Result("test_one_healthy", HealthCheckResult.Healthy("first check was good"));
            var healthyTwo   = new HealthCheck.Result("test_two_healthy", HealthCheckResult.Healthy("second check was good"));
            var unhealthyOne = new HealthCheck.Result("test_three_unhealthy", HealthCheckResult.Unhealthy("something failed"));
            var unhealthyTwo = new HealthCheck.Result("test_four_unhealthy", HealthCheckResult.Unhealthy("something else failed"));
            var degradedOne  = new HealthCheck.Result("test_five_degraded", HealthCheckResult.Degraded("degrading service"));

            var checks = new[] { healthyOne, healthyTwo, unhealthyOne, unhealthyTwo, degradedOne };

            _healthStatus = new HealthStatus(checks);
        }