Ejemplo n.º 1
0
        public async Task OriginalHealthCheck_Is_Not_Executed_When_ThePredicate_Returns_False()
        {
            // Arrange
            var decoratedHealthCheckMock = new Mock <IHealthCheck>();
            var sut = new ConditionalHealthCheck(() => decoratedHealthCheckMock.Object, (_, __) => Task.FromResult(false), null, null);

            // Act
            await sut.CheckHealthAsync(new HealthCheckContextBuilder().WithInstance(decoratedHealthCheckMock.Object)
                                       .Build());

            // Assert
            decoratedHealthCheckMock.Verify(c => c.CheckHealthAsync(It.IsAny <HealthCheckContext>(), It.IsAny <CancellationToken>()), Times.Never);
        }
Ejemplo n.º 2
0
        public async Task Context_Contains_NotChecked_Tag_When_The_Original_Check_Is_Not_Executed()
        {
            // Arrange
            var decoratedHealthCheckMock = new Mock <IHealthCheck>();
            var sut     = new ConditionalHealthCheck(() => decoratedHealthCheckMock.Object, (_, __) => Task.FromResult(false), null, null);
            var context = new HealthCheckContextBuilder().WithInstance(decoratedHealthCheckMock.Object)
                          .Build();

            // Act
            await sut.CheckHealthAsync(context);

            // Assert
            context.Registration.Tags.Should().Contain("NotChecked");
        }
Ejemplo n.º 3
0
        public async Task Result_Is_Healthy()
        {
            // Arrange
            var decoratedHealthCheckMock = new Mock <IHealthCheck>();
            var sut     = new ConditionalHealthCheck(() => decoratedHealthCheckMock.Object, (_, __) => Task.FromResult(false), null, null);
            var context = new HealthCheckContextBuilder().WithInstance(decoratedHealthCheckMock.Object)
                          .Build();

            // Act
            var result = await sut.CheckHealthAsync(context);

            // Assert
            result.Status.Should().Be(HealthStatus.Healthy);
        }
Ejemplo n.º 4
0
        public async Task Result_Has_A_Meaningful_Description()
        {
            // Arrange
            var decoratedHealthCheckMock = new Mock <IHealthCheck>();
            var sut     = new ConditionalHealthCheck(() => decoratedHealthCheckMock.Object, (_, __) => Task.FromResult(false), null, null);
            var context = new HealthCheckContextBuilder().WithInstance(decoratedHealthCheckMock.Object)
                          .Build();

            // Act
            var result = await sut.CheckHealthAsync(context);

            // Assert
            result.Description.Should().Match("*`TheCheck` will not be evaluated*");
        }
Ejemplo n.º 5
0
        public async Task Logs_a_Debug_Message_When_The_Original_Health_Check_Is_Not_Executed()
        {
            // Arrange
            var decoratedHealthCheckMock = new Mock <IHealthCheck>();
            var loggerMock = new Mock <ILogger <ConditionalHealthCheck> >();
            var sut        = new ConditionalHealthCheck(() => decoratedHealthCheckMock.Object, (_, __) => Task.FromResult(false), null, loggerMock.Object);
            var context    = new HealthCheckContextBuilder().WithInstance(decoratedHealthCheckMock.Object)
                             .Build();

            // Act
            await sut.CheckHealthAsync(context);

            // Assert
            loggerMock.VerifyLog(logger => logger.LogDebug("HealthCheck `TheCheck` will not be executed as its checking condition is not met."));
        }