|
|
|
|
@ -1,5 +1,5 @@
@@ -1,5 +1,5 @@
|
|
|
|
|
/* |
|
|
|
|
* Copyright 2012-2021 the original author or authors. |
|
|
|
|
* Copyright 2012-2022 the original author or authors. |
|
|
|
|
* |
|
|
|
|
* Licensed under the Apache License, Version 2.0 (the "License"); |
|
|
|
|
* you may not use this file except in compliance with the License. |
|
|
|
|
@ -17,6 +17,7 @@
@@ -17,6 +17,7 @@
|
|
|
|
|
package org.springframework.boot.actuate.autoconfigure.health; |
|
|
|
|
|
|
|
|
|
import java.util.Collections; |
|
|
|
|
import java.util.Map; |
|
|
|
|
|
|
|
|
|
import org.junit.jupiter.api.Test; |
|
|
|
|
import reactor.core.publisher.Flux; |
|
|
|
|
@ -45,8 +46,10 @@ import org.springframework.boot.actuate.health.ReactiveHealthEndpointWebExtensio
@@ -45,8 +46,10 @@ import org.springframework.boot.actuate.health.ReactiveHealthEndpointWebExtensio
|
|
|
|
|
import org.springframework.boot.actuate.health.ReactiveHealthIndicator; |
|
|
|
|
import org.springframework.boot.actuate.health.Status; |
|
|
|
|
import org.springframework.boot.actuate.health.StatusAggregator; |
|
|
|
|
import org.springframework.boot.actuate.health.SystemHealth; |
|
|
|
|
import org.springframework.boot.autoconfigure.AutoConfigurations; |
|
|
|
|
import org.springframework.boot.test.context.FilteredClassLoader; |
|
|
|
|
import org.springframework.boot.test.context.runner.ApplicationContextRunner; |
|
|
|
|
import org.springframework.boot.test.context.runner.ReactiveWebApplicationContextRunner; |
|
|
|
|
import org.springframework.boot.test.context.runner.WebApplicationContextRunner; |
|
|
|
|
import org.springframework.context.annotation.Bean; |
|
|
|
|
@ -264,6 +267,32 @@ class HealthEndpointAutoConfigurationTests {
@@ -264,6 +267,32 @@ class HealthEndpointAutoConfigurationTests {
|
|
|
|
|
}); |
|
|
|
|
} |
|
|
|
|
|
|
|
|
|
@Test |
|
|
|
|
void runWithIndicatorsInParentContextFindsIndicators() { |
|
|
|
|
new ApplicationContextRunner().withUserConfiguration(HealthIndicatorsConfiguration.class) |
|
|
|
|
.run((parent) -> new WebApplicationContextRunner().withConfiguration(AutoConfigurations |
|
|
|
|
.of(HealthContributorAutoConfiguration.class, HealthEndpointAutoConfiguration.class)) |
|
|
|
|
.withParent(parent).run((context) -> { |
|
|
|
|
HealthComponent health = context.getBean(HealthEndpoint.class).health(); |
|
|
|
|
Map<String, HealthComponent> components = ((SystemHealth) health).getComponents(); |
|
|
|
|
assertThat(components).containsKeys("additional", "ping", "simple"); |
|
|
|
|
})); |
|
|
|
|
} |
|
|
|
|
|
|
|
|
|
@Test |
|
|
|
|
void runWithReactiveContextAndIndicatorsInParentContextFindsIndicators() { |
|
|
|
|
new ApplicationContextRunner().withUserConfiguration(HealthIndicatorsConfiguration.class) |
|
|
|
|
.run((parent) -> new ReactiveWebApplicationContextRunner() |
|
|
|
|
.withConfiguration(AutoConfigurations.of(HealthContributorAutoConfiguration.class, |
|
|
|
|
HealthEndpointAutoConfiguration.class, WebEndpointAutoConfiguration.class, |
|
|
|
|
EndpointAutoConfiguration.class)) |
|
|
|
|
.withParent(parent).run((context) -> { |
|
|
|
|
HealthComponent health = context.getBean(HealthEndpoint.class).health(); |
|
|
|
|
Map<String, HealthComponent> components = ((SystemHealth) health).getComponents(); |
|
|
|
|
assertThat(components).containsKeys("additional", "ping", "simple"); |
|
|
|
|
})); |
|
|
|
|
} |
|
|
|
|
|
|
|
|
|
@Configuration(proxyBeanMethods = false) |
|
|
|
|
static class HealthIndicatorsConfiguration { |
|
|
|
|
|
|
|
|
|
|