Ejemplo n.º 1
0
        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));
        }
Ejemplo n.º 2
0
        // 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));
        }
Ejemplo n.º 3
0
            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);
            }
Ejemplo n.º 4
0
            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);
            }