org.springframework.boot.test.context.FilteredClassLoader#org.springframework.cloud.client.discovery.health.reactive.ReactiveDiscoveryClientHealthIndicator源码实例Demo

下面列出了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);
			});
}