下面列出了org.springframework.boot.test.context.FilteredClassLoader#org.springframework.cloud.client.discovery.health.reactive.ReactiveDiscoveryClientHealthIndicator 实例代码,或者点击链接到github查看源代码,也可以在右侧发表评论。
@Test
public void shouldUseDnsDiscovery() {
contextRunner
.withConfiguration(AutoConfigurations
.of(ReactiveCommonsClientAutoConfiguration.class))
.withPropertyValues("spring.cloud.cloudfoundry.discovery.use-dns=true",
"spring.cloud.cloudfoundry.discovery.use-container-ip=true")
.run(context -> {
assertThat(context)
.hasSingleBean(CloudFoundryReactiveHeartbeatSender.class);
assertThat(context).hasSingleBean(ReactiveDiscoveryClient.class);
assertThat(context).hasBean("dnsBasedReactiveDiscoveryClient");
assertThat(context)
.hasSingleBean(ReactiveDiscoveryClientHealthIndicator.class);
});
}
@Test
public void shouldUseAppServiceDiscovery() {
contextRunner
.withConfiguration(AutoConfigurations
.of(ReactiveCommonsClientAutoConfiguration.class))
.withPropertyValues("spring.cloud.cloudfoundry.discovery.use-dns=true",
"spring.cloud.cloudfoundry.discovery.use-container-ip=false")
.run(context -> {
assertThat(context)
.hasSingleBean(CloudFoundryReactiveHeartbeatSender.class);
assertThat(context).hasSingleBean(ReactiveDiscoveryClient.class);
assertThat(context).hasBean("appServiceReactiveDiscoveryClient");
assertThat(context)
.hasSingleBean(ReactiveDiscoveryClientHealthIndicator.class);
});
}
@Test
public void shouldUseCustomServiceDiscovery() {
contextRunner
.withConfiguration(AutoConfigurations
.of(ReactiveCommonsClientAutoConfiguration.class))
.withUserConfiguration(
CustomCloudFoundryReactiveDiscoveryClientConfiguration.class)
.run(context -> {
assertThat(context)
.hasSingleBean(CloudFoundryReactiveHeartbeatSender.class);
assertThat(context).getBeans(ReactiveDiscoveryClient.class)
.hasSize(2);
assertThat(context).hasBean("nativeCloudFoundryDiscoveryClient");
assertThat(context)
.hasSingleBean(ReactiveDiscoveryClientHealthIndicator.class);
});
}
@Bean
@ConditionalOnClass(
name = "org.springframework.boot.actuate.health.ReactiveHealthIndicator")
@ConditionalOnDiscoveryHealthIndicatorEnabled
public ReactiveDiscoveryClientHealthIndicator kubernetesReactiveDiscoveryClientHealthIndicator(
KubernetesReactiveDiscoveryClient client,
DiscoveryClientHealthIndicatorProperties properties) {
return new ReactiveDiscoveryClientHealthIndicator(client, properties);
}
@Test
public void shouldWorkWithDefaults() {
contextRunner.run(context -> {
assertThat(context).hasSingleBean(ReactiveDiscoveryClient.class);
assertThat(context)
.hasSingleBean(ReactiveDiscoveryClientHealthIndicator.class);
});
}
@Test
public void shouldNotHaveDiscoveryClientWhenDiscoveryDisabled() {
contextRunner.withPropertyValues("spring.cloud.discovery.enabled=false")
.run(context -> {
assertThat(context)
.doesNotHaveBean("kubernetesReactiveDiscoveryClient");
assertThat(context).doesNotHaveBean(ReactiveDiscoveryClient.class);
assertThat(context).doesNotHaveBean(
ReactiveDiscoveryClientHealthIndicator.class);
});
}
@Test
public void shouldNotHaveDiscoveryClientWhenReactiveDiscoveryDisabled() {
contextRunner.withPropertyValues("spring.cloud.discovery.reactive.enabled=false")
.run(context -> {
assertThat(context)
.doesNotHaveBean("kubernetesReactiveDiscoveryClient");
assertThat(context).doesNotHaveBean(ReactiveDiscoveryClient.class);
assertThat(context).doesNotHaveBean(
ReactiveDiscoveryClientHealthIndicator.class);
});
}
@Test
public void shouldNotHaveDiscoveryClientWhenKubernetesDisabled() {
contextRunner.withPropertyValues("spring.cloud.kubernetes.enabled=false")
.run(context -> {
assertThat(context)
.doesNotHaveBean("kubernetesReactiveDiscoveryClient");
assertThat(context).doesNotHaveBean(ReactiveDiscoveryClient.class);
assertThat(context).doesNotHaveBean(
ReactiveDiscoveryClientHealthIndicator.class);
});
}
@Test
public void shouldNotHaveDiscoveryClientWhenKubernetesDiscoveryDisabled() {
contextRunner
.withPropertyValues("spring.cloud.kubernetes.discovery.enabled=false")
.run(context -> {
assertThat(context)
.doesNotHaveBean("kubernetesReactiveDiscoveryClient");
assertThat(context).doesNotHaveBean(ReactiveDiscoveryClient.class);
assertThat(context).doesNotHaveBean(
ReactiveDiscoveryClientHealthIndicator.class);
});
}
@Test
public void worksWithoutWebflux() {
contextRunner
.withClassLoader(
new FilteredClassLoader("org.springframework.web.reactive"))
.run(context -> {
assertThat(context).doesNotHaveBean(ReactiveDiscoveryClient.class);
assertThat(context).doesNotHaveBean(
ReactiveDiscoveryClientHealthIndicator.class);
});
}
@Test
public void worksWithoutActuator() {
contextRunner
.withClassLoader(
new FilteredClassLoader("org.springframework.boot.actuate"))
.run(context -> {
assertThat(context).hasSingleBean(ReactiveDiscoveryClient.class);
assertThat(context).doesNotHaveBean(
ReactiveDiscoveryClientHealthIndicator.class);
});
}
@Bean
@ConditionalOnClass(name = "org.springframework.boot.actuate.health.ReactiveHealthIndicator")
@ConditionalOnDiscoveryHealthIndicatorEnabled
public ReactiveDiscoveryClientHealthIndicator zookeeperReactiveDiscoveryClientHealthIndicator(
ZookeeperReactiveDiscoveryClient client,
DiscoveryClientHealthIndicatorProperties properties) {
return new ReactiveDiscoveryClientHealthIndicator(client, properties);
}
@Test
public void shouldWorkWithDefaults() {
contextRunner.run(context -> {
assertThat(context).hasSingleBean(ReactiveDiscoveryClient.class);
assertThat(context).hasSingleBean(
ReactiveDiscoveryClientHealthIndicator.class);
});
}
@Test
public void shouldNotHaveDiscoveryClientWhenDiscoveryDisabled() {
contextRunner.withPropertyValues("spring.cloud.discovery.enabled=false")
.run(context -> {
assertThat(context).doesNotHaveBean("zookeeperReactiveDiscoveryClient");
assertThat(context).doesNotHaveBean(ReactiveDiscoveryClient.class);
assertThat(context).doesNotHaveBean(
ReactiveDiscoveryClientHealthIndicator.class);
});
}
@Test
public void shouldNotHaveDiscoveryClientWhenReactiveDiscoveryDisabled() {
contextRunner.withPropertyValues("spring.cloud.discovery.reactive.enabled=false")
.run(context -> {
assertThat(context).doesNotHaveBean("zookeeperReactiveDiscoveryClient");
assertThat(context).doesNotHaveBean(ReactiveDiscoveryClient.class);
assertThat(context).doesNotHaveBean(
ReactiveDiscoveryClientHealthIndicator.class);
});
}
@Test
public void shouldNotHaveDiscoveryClientWhenCloudFoundryDiscoveryDisabled() {
contextRunner
.withPropertyValues("spring.cloud.zookeeper.discovery.enabled=false")
.run(context -> {
assertThat(context).doesNotHaveBean("zookeeperReactiveDiscoveryClient");
assertThat(context).doesNotHaveBean(ReactiveDiscoveryClient.class);
assertThat(context).doesNotHaveBean(
ReactiveDiscoveryClientHealthIndicator.class);
});
}
@Test
public void worksWithoutWebflux() {
contextRunner
.withClassLoader(
new FilteredClassLoader("org.springframework.web.reactive"))
.run(context -> {
assertThat(context).doesNotHaveBean(ReactiveDiscoveryClient.class);
assertThat(context).doesNotHaveBean(
ReactiveDiscoveryClientHealthIndicator.class);
});
}
@Test
public void worksWithoutActuator() {
contextRunner
.withClassLoader(
new FilteredClassLoader("org.springframework.boot.actuate"))
.run(context -> {
assertThat(context).hasSingleBean(ReactiveDiscoveryClient.class);
assertThat(context).doesNotHaveBean(
ReactiveDiscoveryClientHealthIndicator.class);
});
}
@Bean
@ConditionalOnDiscoveryHealthIndicatorEnabled
public ReactiveDiscoveryClientHealthIndicator simpleReactiveDiscoveryClientHealthIndicator(
DiscoveryClientHealthIndicatorProperties properties,
SimpleReactiveDiscoveryClient simpleReactiveDiscoveryClient) {
return new ReactiveDiscoveryClientHealthIndicator(
simpleReactiveDiscoveryClient, properties);
}
@Test
public void beansCreatedNormally() {
applicationContextRunner
.withPropertyValues("management.endpoints.web.exposure.include=features")
.run(context -> {
then(context.getBean(ReactiveDiscoveryClientHealthIndicator.class))
.isNotNull();
then(context
.getBean(ReactiveDiscoveryCompositeHealthContributor.class))
.isNotNull();
then(context.getBean(FeaturesEndpoint.class)).isNotNull();
then(context.getBeansOfType(HasFeatures.class).values()).isNotEmpty();
});
}
@Test
public void disableAll() {
applicationContextRunner
.withPropertyValues("spring.cloud.discovery.enabled=false",
"management.endpoints.web.exposure.include=features")
.run(context -> {
assertThat(context).doesNotHaveBean(
ReactiveDiscoveryClientHealthIndicator.class);
assertThat(context).doesNotHaveBean(
ReactiveDiscoveryCompositeHealthContributor.class);
// features actuator is independent of discovery
then(context.getBean(FeaturesEndpoint.class)).isNotNull();
assertThat(context).doesNotHaveBean(HasFeatures.class);
});
}
@Test
public void disableReactive() {
applicationContextRunner
.withPropertyValues("spring.cloud.discovery.reactive.enabled=false",
"management.endpoints.web.exposure.include=features")
.run(context -> {
assertThat(context).doesNotHaveBean(
ReactiveDiscoveryClientHealthIndicator.class);
assertThat(context).doesNotHaveBean(
ReactiveDiscoveryCompositeHealthContributor.class);
// features actuator is independent of discovery
then(context.getBean(FeaturesEndpoint.class)).isNotNull();
assertThat(context).doesNotHaveBean(HasFeatures.class);
});
}
@Test
public void disableAllIndividually() {
applicationContextRunner.withPropertyValues(
"spring.cloud.discovery.client.health-indicator.enabled=false",
"spring.cloud.discovery.client.composite-indicator.enabled=false",
"spring.cloud.features.enabled=false").run(context -> {
assertThat(context).doesNotHaveBean(
ReactiveDiscoveryClientHealthIndicator.class);
assertThat(context).doesNotHaveBean(
ReactiveDiscoveryCompositeHealthContributor.class);
assertThat(context).doesNotHaveBean(FeaturesEndpoint.class);
});
}
@Test
public void disableHealthIndicator() {
applicationContextRunner
.withPropertyValues(
"spring.cloud.discovery.client.health-indicator.enabled=false")
.run(context -> {
assertThat(context).doesNotHaveBean(
ReactiveDiscoveryClientHealthIndicator.class);
assertThat(context).doesNotHaveBean(
ReactiveDiscoveryCompositeHealthContributor.class);
});
}
@Test
public void worksWithoutActuator() {
applicationContextRunner
.withClassLoader(
new FilteredClassLoader("org.springframework.boot.actuate"))
.run(context -> {
assertThat(context).doesNotHaveBean(
ReactiveDiscoveryClientHealthIndicator.class);
assertThat(context).doesNotHaveBean(
ReactiveDiscoveryCompositeHealthContributor.class);
then(context.getBeansOfType(HasFeatures.class).values()).isEmpty();
});
}
@Test
public void worksWithoutWebflux() {
applicationContextRunner
.withClassLoader(
new FilteredClassLoader("org.springframework.web.reactive"))
.run(context -> {
assertThat(context).doesNotHaveBean(
ReactiveDiscoveryClientHealthIndicator.class);
assertThat(context).doesNotHaveBean(
ReactiveDiscoveryCompositeHealthContributor.class);
assertThat(context).doesNotHaveBean(HasFeatures.class);
});
}
@Bean
@ConditionalOnClass(
name = "org.springframework.boot.actuate.health.ReactiveHealthIndicator")
@ConditionalOnDiscoveryHealthIndicatorEnabled
public ReactiveDiscoveryClientHealthIndicator eurekaReactiveDiscoveryClientHealthIndicator(
EurekaReactiveDiscoveryClient client,
DiscoveryClientHealthIndicatorProperties properties) {
return new ReactiveDiscoveryClientHealthIndicator(client, properties);
}
@Test
public void shouldWorkWithDefaults() {
contextRunner.run(context -> {
assertThat(context).hasSingleBean(ReactiveDiscoveryClient.class);
assertThat(context)
.hasSingleBean(ReactiveDiscoveryClientHealthIndicator.class);
});
}
@Test
public void shouldNotHaveDiscoveryClientWhenDiscoveryDisabled() {
contextRunner.withPropertyValues("spring.cloud.discovery.enabled=false")
.run(context -> {
assertThat(context).doesNotHaveBean(ReactiveDiscoveryClient.class);
assertThat(context).doesNotHaveBean(
ReactiveDiscoveryClientHealthIndicator.class);
});
}
@Test
public void shouldNotHaveDiscoveryClientWhenReactiveDiscoveryDisabled() {
contextRunner.withPropertyValues("spring.cloud.discovery.reactive.enabled=false")
.run(context -> {
assertThat(context).doesNotHaveBean(ReactiveDiscoveryClient.class);
assertThat(context).doesNotHaveBean(
ReactiveDiscoveryClientHealthIndicator.class);
});
}