类org.springframework.boot.test.context.runner.ApplicationContextRunner源码实例Demo

下面列出了怎么用org.springframework.boot.test.context.runner.ApplicationContextRunner的API类实例代码及写法,或者点击链接到github查看源代码。

@Test
public void testServiceDiscoveryWithEnv() {
    new ApplicationContextRunner()
        .withUserConfiguration(TestConfiguration.class)
        .withPropertyValues(
            "spring.main.banner-mode=off",
            "camel.cloud.kubernetes.service-discovery.enabled=true",
            "camel.cloud.kubernetes.service-discovery.lookup=env")
        .run(
            context -> {
                assertThat(context).hasSingleBean(KubernetesServiceCallServiceDiscoveryConfigurationProperties.class);
                assertThat(context).getBeans(ServiceDiscovery.class).containsKeys("kubernetes-service-discovery");
                assertThat(context).getBean("kubernetes-service-discovery").isInstanceOf(KubernetesEnvServiceDiscovery.class);
            }
        );
}
 
@Test
public void testServiceDiscoveryWithDns() {
    new ApplicationContextRunner()
        .withUserConfiguration(TestConfiguration.class)
        .withPropertyValues(
            "spring.main.banner-mode=off",
            "camel.cloud.kubernetes.service-discovery.enabled=true",
            "camel.cloud.kubernetes.service-discovery.lookup=dns",
            "camel.cloud.kubernetes.service-discovery.dns-domain=mydomain",
            "camel.cloud.kubernetes.service-discovery.namespace=mynamespace")
        .run(
            context -> {
                assertThat(context).hasSingleBean(KubernetesServiceCallServiceDiscoveryConfigurationProperties.class);
                assertThat(context).getBeans(ServiceDiscovery.class).containsKeys("kubernetes-service-discovery");
                assertThat(context).getBean("kubernetes-service-discovery").isInstanceOf(KubernetesDnsServiceDiscovery.class);
            }
        );
}
 
@Test
public void testServiceDiscoveryWithDnsSrv() {
    new ApplicationContextRunner()
        .withUserConfiguration(TestConfiguration.class)
        .withPropertyValues(
            "spring.main.banner-mode=off",
            "camel.cloud.kubernetes.service-discovery.enabled=true",
            "camel.cloud.kubernetes.service-discovery.lookup=dnssrv",
            "camel.cloud.kubernetes.service-discovery.port-name=myportname",
            "camel.cloud.kubernetes.service-discovery.port-proocole=myportproto",
            "camel.cloud.kubernetes.service-discovery.dns-domain=mydomain",
            "camel.cloud.kubernetes.service-discovery.namespace=mynamespace")
        .run(
            context -> {
                assertThat(context).hasSingleBean(KubernetesServiceCallServiceDiscoveryConfigurationProperties.class);
                assertThat(context).getBeans(ServiceDiscovery.class).containsKeys("kubernetes-service-discovery");
                assertThat(context).getBean("kubernetes-service-discovery").isInstanceOf(KubernetesDnsSrvServiceDiscovery.class);
            }
        );
}
 
@Test
public void testServiceDiscoveryWithClient() {
    new ApplicationContextRunner()
        .withUserConfiguration(TestConfiguration.class)
        .withPropertyValues(
            "spring.main.banner-mode=off",
            "camel.cloud.kubernetes.service-discovery.enabled=true",
            "camel.cloud.kubernetes.service-discovery.lookup=client")
        .run(
            context -> {
                assertThat(context).hasSingleBean(KubernetesServiceCallServiceDiscoveryConfigurationProperties.class);
                assertThat(context).getBeans(ServiceDiscovery.class).containsKeys("kubernetes-service-discovery");
                assertThat(context).getBean("kubernetes-service-discovery").isInstanceOf(KubernetesClientServiceDiscovery.class);
            }
        );
}
 
@Test
public void testDatastoreOptionsCorrectlySet() {
	new ApplicationContextRunner()
			.withConfiguration(AutoConfigurations.of(
					GcpDatastoreEmulatorAutoConfiguration.class))
			.withPropertyValues(
					"spring.cloud.gcp.datastore.emulator.port=8182",
					"spring.cloud.gcp.datastore.emulator.enabled=true",
					"spring.cloud.gcp.datastore.emulator.consistency=0.8")
			.run((context) -> {
				LocalDatastoreHelper helper = context.getBean(LocalDatastoreHelper.class);
				DatastoreOptions datastoreOptions = helper.getOptions();
				assertThat(datastoreOptions.getHost()).isEqualTo("localhost:8182");
				assertThat(helper.getConsistency()).isEqualTo(0.8D);
			});
}
 
@Test
public void testInterceptors() {
	new ApplicationContextRunner()
			.withPropertyValues("feign.compression.response.enabled=true",
					"feign.compression.request.enabled=true",
					"feign.okhttp.enabled=false")
			.withConfiguration(AutoConfigurations.of(FeignAutoConfiguration.class,
					FeignContentGzipEncodingAutoConfiguration.class,
					FeignAcceptGzipEncodingAutoConfiguration.class,
					HttpClientConfiguration.class, PlainConfig.class))
			.run(context -> {
				FeignContext feignContext = context.getBean(FeignContext.class);
				Map<String, RequestInterceptor> interceptors = feignContext
						.getInstances("foo", RequestInterceptor.class);
				assertThat(interceptors.size()).isEqualTo(2);
				assertThat(interceptors.get("feignAcceptGzipEncodingInterceptor"))
						.isInstanceOf(FeignAcceptGzipEncodingInterceptor.class);
				assertThat(interceptors.get("feignContentGzipEncodingInterceptor"))
						.isInstanceOf(FeignContentGzipEncodingInterceptor.class);
			});
}
 
源代码7 项目: liiklus   文件: GRPCConfigurationTest.java
@Test
void shouldConsiderTransportConfigurers() {
    var service = ServerServiceDefinition.builder("test").build();

    new ApplicationContextRunner()
            .withInitializer((ApplicationContextInitializer) new GRPCConfiguration())
            .withPropertyValues(
                    "spring.profiles.active: gateway",
                    "grpc.port: 0"
            )
            .withInitializer(ctx -> {
                var context = (GenericApplicationContext) ctx;
                context.registerBean(LiiklusService.class, () -> Mockito.mock(LiiklusService.class));
                context.registerBean(GRPCLiiklusTransportConfigurer.class, () -> builder -> builder.addService(() -> service));
            })
            .run(context -> {
                assertThat(context).getBeans(GRPCLiiklusTransportConfigurer.class).isNotEmpty();

                assertThat(context)
                        .getBean(Server.class)
                        .satisfies(server -> {
                            assertThat(server.getServices()).contains(service);
                        });
            });
}
 
private ApplicationContextRunner configuredContext() {
	return this.contextRunner
		.withPropertyValues(
			"spring.cloud.appbroker.services[0].service-name=service1",
			"spring.cloud.appbroker.services[0].plan-name=service1-plan1",

			"spring.cloud.appbroker.services[0].apps[0].path=classpath:app1.jar",
			"spring.cloud.appbroker.services[0].apps[0].name=app1",
			"spring.cloud.appbroker.services[0].apps[0].properties.memory=1G",

			"spring.cloud.appbroker.services[0].apps[1].path=classpath:app2.jar",
			"spring.cloud.appbroker.services[0].apps[1].name=app2",
			"spring.cloud.appbroker.services[0].apps[1].properties.memory=2G",
			"spring.cloud.appbroker.services[0].apps[1].properties.instances=2",

			"spring.cloud.appbroker.services[1].service-name=service2",
			"spring.cloud.appbroker.services[1].plan-name=service2-plan1",

			"spring.cloud.appbroker.services[1].apps[0].path=classpath:app3.jar",
			"spring.cloud.appbroker.services[1].apps[0].name=app3",

			"spring.cloud.appbroker.deployer.cloudfoundry.api-host=https://api.example.local",
			"spring.cloud.appbroker.deployer.cloudfoundry.username=user",
			"spring.cloud.appbroker.deployer.cloudfoundry.password=secret"
		);
}
 
@Test
void testDecoratedHikariSpecificPropertiesIsSet() {
    ApplicationContextRunner contextRunner = this.contextRunner.withPropertyValues(
            "spring.datasource.type:" + HikariDataSource.class.getName(),
            "spring.datasource.hikari.catalog:test_catalog"
    );

    contextRunner.run(context -> {
        DataSource dataSource = context.getBean(DataSource.class);
        assertThat(dataSource).isNotNull();
        assertThat(dataSource).isInstanceOf(DecoratedDataSource.class);
        DataSource realDataSource = ((DecoratedDataSource) dataSource).getRealDataSource();
        assertThat(realDataSource).isInstanceOf(HikariDataSource.class);
        assertThat(((HikariDataSource) realDataSource).getCatalog()).isEqualTo("test_catalog");
    });
}
 
@Test
void testCustomDataSourceDecoratorApplied() {
    ApplicationContextRunner contextRunner = this.contextRunner.withUserConfiguration(TestDataSourceDecoratorConfiguration.class);

    contextRunner.run(context -> {
        DataSource dataSource = context.getBean(DataSource.class);
        assertThat(dataSource).isNotNull();

        DataSource customDataSource = ((DecoratedDataSource) dataSource).getDecoratedDataSource();
        assertThat(customDataSource).isInstanceOf(CustomDataSourceProxy.class);

        DataSource realDataSource = ((DecoratedDataSource) dataSource).getRealDataSource();
        assertThat(realDataSource).isInstanceOf(HikariDataSource.class);

        assertThatDataSourceDecoratingChain(dataSource).containsExactly(CustomDataSourceProxy.class, P6DataSource.class, ProxyDataSource.class,
                FlexyPoolDataSource.class);
    });
}
 
@Test
@SuppressWarnings("unchecked")
void testDecoratingHikariDataSourceWithDefaultStrategies() {
    ApplicationContextRunner contextRunner = this.contextRunner.withPropertyValues("spring.datasource.type:" + HikariDataSource.class.getName());

    contextRunner.run(context -> {
        DataSource dataSource = context.getBean(DataSource.class);
        assertDataSourceOfType(dataSource, HikariDataSource.class);
        FlexyPoolDataSource<HikariDataSource> flexyPoolDataSource = assertDataSourceOfType(dataSource, HikariDataSource.class);
        IncrementPoolOnTimeoutConnectionAcquiringStrategy<HikariDataSource> strategy1 =
                findStrategy(flexyPoolDataSource, IncrementPoolOnTimeoutConnectionAcquiringStrategy.class);
        assertThat(strategy1).isNotNull();
        assertThat(strategy1).hasFieldOrPropertyWithValue("maxOverflowPoolSize", 15);
        assertThat(strategy1).hasFieldOrPropertyWithValue("timeoutMillis", 500);

        RetryConnectionAcquiringStrategy<HikariDataSource> strategy2 =
                findStrategy(flexyPoolDataSource, RetryConnectionAcquiringStrategy.class);
        assertThat(strategy2).isNotNull();
        assertThat(strategy2).hasFieldOrPropertyWithValue("retryAttempts", 2);
    });
}
 
@Test
@SuppressWarnings("unchecked")
void testDecoratingHikariDataSourceWithCustomPropertyStrategies() {
    ApplicationContextRunner contextRunner = this.contextRunner.withPropertyValues("spring.datasource.type:" + HikariDataSource.class.getName(),
            "decorator.datasource.flexy-pool.acquiring-strategy.increment-pool.max-overflow-pool-size:15",
            "decorator.datasource.flexy-pool.acquiring-strategy.increment-pool.timeout-millis:500",
            "decorator.datasource.flexy-pool.acquiring-strategy.retry.attempts:5")
            .withUserConfiguration(HikariConfiguration.class);

    contextRunner.run(context -> {
        DataSource dataSource = context.getBean(DataSource.class);
        FlexyPoolDataSource<HikariDataSource> flexyPoolDataSource = assertDataSourceOfType(dataSource, HikariDataSource.class);
        IncrementPoolOnTimeoutConnectionAcquiringStrategy<HikariDataSource> strategy1 =
                findStrategy(flexyPoolDataSource, IncrementPoolOnTimeoutConnectionAcquiringStrategy.class);
        assertThat(strategy1).isNotNull();
        assertThat(strategy1).hasFieldOrPropertyWithValue("maxOverflowPoolSize", 35);
        assertThat(strategy1).hasFieldOrPropertyWithValue("timeoutMillis", 10000);

        RetryConnectionAcquiringStrategy<HikariDataSource> strategy2 =
                findStrategy(flexyPoolDataSource, RetryConnectionAcquiringStrategy.class);
        assertThat(strategy2).isNotNull();
        assertThat(strategy2).hasFieldOrPropertyWithValue("retryAttempts", 5);
    });
}
 
@Before
public void setUpPubSubResources() {
	this.topicName = "desafinado-" + UUID.randomUUID();
	this.subscriptionName = "doralice-" + UUID.randomUUID();

	if (pubSubAdmin.getTopic(this.topicName) == null) {
		pubSubAdmin.createTopic(this.topicName);
	}

	if (pubSubAdmin.getSubscription(this.subscriptionName) == null) {
		pubSubAdmin.createSubscription(this.subscriptionName, this.topicName, 10);
	}

	this.contextRunner = new ApplicationContextRunner()
			.withConfiguration(AutoConfigurations.of(
					GcpContextAutoConfiguration.class,
					GcpPubSubAutoConfiguration.class))
			.withBean("topicName", String.class, this.topicName)
			.withBean("subscriptionName", String.class, this.subscriptionName);
}
 
@Test
public void keepAliveValue_custom() {
	ApplicationContextRunner contextRunner = new ApplicationContextRunner()
			.withConfiguration(AutoConfigurations.of(GcpPubSubAutoConfiguration.class))
			.withUserConfiguration(TestConfig.class)
			.withPropertyValues("spring.cloud.gcp.pubsub.keepAliveIntervalMinutes=2");

	contextRunner.run(ctx -> {
		GcpPubSubProperties props = ctx.getBean(GcpPubSubProperties.class);
		assertThat(props.getKeepAliveIntervalMinutes()).isEqualTo(2);

		TransportChannelProvider tcp = ctx.getBean(TransportChannelProvider.class);
		assertThat(((InstantiatingGrpcChannelProvider) tcp).getKeepAliveTime().toMinutes())
				.isEqualTo(2);
	});
}
 
@Test
public void testServiceDiscoveryDisabled() {
    new ApplicationContextRunner()
        .withUserConfiguration(TestConfiguration.class)
        .withPropertyValues(
            "spring.main.banner-mode=off",
            "camel.cloud.dns.service-discovery.enabled=false")
        .run(
            context -> {
                assertThat(context).doesNotHaveBean(DnsServiceCallServiceDiscoveryConfigurationProperties.class);
                assertThat(context).getBeans(ServiceDiscovery.class).doesNotContainKeys("dns-service-discovery");
            }
        );
}
 
@Test
public void testServiceDiscoveryEnabled() {
    new ApplicationContextRunner()
        .withUserConfiguration(TestConfiguration.class)
        .withPropertyValues(
            "spring.main.banner-mode=off",
            "camel.cloud.dns.service-discovery.enabled=true")
        .run(
            context -> {
                assertThat(context).hasSingleBean(DnsServiceCallServiceDiscoveryConfigurationProperties.class);
                assertThat(context).getBeans(ServiceDiscovery.class).containsKeys("dns-service-discovery");
            }
        );
}
 
@Test
public void testServiceDiscoveryDisabled() {
    new ApplicationContextRunner()
        .withUserConfiguration(TestConfiguration.class)
        .withPropertyValues(
            "spring.main.banner-mode=off",
            "camel.cloud.kubernetes.service-discovery.enabled=false")
        .run(
            context -> {
                assertThat(context).doesNotHaveBean(KubernetesServiceCallServiceDiscoveryConfigurationProperties.class);
                assertThat(context).getBeans(ServiceDiscovery.class).doesNotContainKeys("kubernetes-service-discovery");
            }
        );
}
 
@Test
public void testServiceDiscoveryEnabled() {
    new ApplicationContextRunner()
        .withUserConfiguration(TestConfiguration.class)
        .withPropertyValues(
            "spring.main.banner-mode=off",
            "camel.cloud.kubernetes.service-discovery.enabled=true")
        .run(
            context -> {
                assertThat(context).hasSingleBean(KubernetesServiceCallServiceDiscoveryConfigurationProperties.class);
                assertThat(context).getBeans(ServiceDiscovery.class).containsKeys("kubernetes-service-discovery");
                assertThat(context).getBean("kubernetes-service-discovery").isInstanceOf(KubernetesEnvServiceDiscovery.class);
            }
        );
}
 
@Test
public void testDisable() {
    new ApplicationContextRunner()
        .withConfiguration(AutoConfigurations.of(KubernetesClusterServiceAutoConfiguration.class))
        .withUserConfiguration(TestConfiguration.class)
        .run(
            context -> {
                assertThat(context).doesNotHaveBean(KubernetesClusterService.class);
            }
        );
}
 
@Test
public void testClusterService() throws Exception {
    final int zkPort =  AvailablePortFinder.getNextAvailable();
    final File zkDir =  temporaryFolder.newFolder();

    final TestingServer zkServer = new TestingServer(zkPort, zkDir);
    zkServer.start();

    try {
        new ApplicationContextRunner()
            .withUserConfiguration(TestConfiguration.class)
            .withPropertyValues(
                "debug=false",
                "spring.main.banner-mode=OFF",
                "spring.application.name=" + UUID.randomUUID().toString(),
                "camel.component.zookeeper.cluster.service.enabled=true",
                "camel.component.zookeeper.cluster.service.nodes=localhost:" + zkPort,
                "camel.component.zookeeper.cluster.service.id=" + UUID.randomUUID().toString(),
                "camel.component.zookeeper.cluster.service.base-path=" + SERVICE_PATH)
            .run(
                context -> {
                    assertThat(context).hasSingleBean(CamelContext.class);
                    assertThat(context).hasSingleBean(CamelClusterService.class);

                    final CamelContext camelContext = context.getBean(CamelContext.class);
                    final CamelClusterService clusterService = camelContext.hasService(CamelClusterService.class);

                    assertThat(clusterService).isNotNull();
                    assertThat(clusterService).isInstanceOf(ZooKeeperClusterService.class);
                }
            );
    } finally {
        zkServer.stop();
    }
}
 
@Test
public void testConsulServiceDiscoveryDisabled() {
    new ApplicationContextRunner()
        .withUserConfiguration(TestConfiguration.class)
        .withPropertyValues(
            "spring.main.banner-mode=off",
            "camel.cloud.consul.service-discovery.enabled=false")
        .run(
            context -> {
                assertThat(context).doesNotHaveBean(ConsulServiceCallServiceDiscoveryConfigurationProperties.class);
                assertThat(context).getBeans(ServiceDiscovery.class).doesNotContainKeys("consul-service-discovery");
            }
        );
}
 
@Test
public void testConsulServiceDiscoveryEnabled() {
    new ApplicationContextRunner()
        .withUserConfiguration(TestConfiguration.class)
        .withPropertyValues(
            "spring.main.banner-mode=off",
            "camel.cloud.consul.service-discovery.enabled=true")
        .run(
            context -> {
                assertThat(context).hasSingleBean(ConsulServiceCallServiceDiscoveryConfigurationProperties.class);
                assertThat(context).getBeans(ServiceDiscovery.class).containsKeys("consul-service-discovery");
            }
        );
}
 
源代码23 项目: camel-spring-boot   文件: RibbonLoadBalancerTest.java
@Test
public void testLoadBalancer() throws Exception {
    new ApplicationContextRunner()
        .withUserConfiguration(TestConfiguration.class)
        .withPropertyValues(
            "spring.main.banner-mode=off",
            "camel.cloud.consul.service-discovery.enabled=false",
            "debug=false",
            "camel.cloud.service-discovery.services[myService]=localhost:" + PORT1 + ",localhost:" + PORT2,
            "camel.cloud.ribbon.load-balancer.enabled=true")
        .run(
            context -> {
                final CamelContext camelContext = context.getBean(CamelContext.class);
                final ProducerTemplate template = camelContext.createProducerTemplate();

                DefaultServiceCallProcessor processor = findServiceCallProcessor(camelContext);
                assertThat(processor.getLoadBalancer()).isNotNull();
                assertThat(processor.getLoadBalancer()).isInstanceOf(RibbonServiceLoadBalancer.class);

                RibbonServiceLoadBalancer loadBalancer = (RibbonServiceLoadBalancer)processor.getLoadBalancer();
                assertThat(loadBalancer.getServiceDiscovery()).isInstanceOf(CamelCloudServiceDiscovery.class);
                assertThat(loadBalancer.getServiceFilter()).isInstanceOf(CamelCloudServiceFilter.class);

                assertThat(template.requestBody("direct:start", null, String.class)).isEqualTo("" + PORT2);
                assertThat(template.requestBody("direct:start", null, String.class)).isEqualTo("" + PORT1);
            }
        );
}
 
@Test
public void testRibbonLoadBalancerDisabled() {
    new ApplicationContextRunner()
        .withUserConfiguration(TestConfiguration.class)
        .withPropertyValues(
            "spring.main.banner-mode=off",
            "camel.cloud.ribbon.load-balancer.enabled=false")
        .run(
            context -> {
                assertThat(context).doesNotHaveBean(RibbonServiceCallServiceLoadBalancerConfigurationProperties.class);
                assertThat(context).getBeans(ServiceLoadBalancer.class).doesNotContainKeys("ribbon-load-balancer");
            }
        );
}
 
@Test
public void testRibbonLoadBalancerEnabled() {
    new ApplicationContextRunner()
        .withUserConfiguration(TestConfiguration.class)
        .withPropertyValues(
            "spring.main.banner-mode=off",
            "camel.cloud.ribbon.load-balancer.enabled=true")
        .run(
            context -> {
                assertThat(context).hasSingleBean(RibbonServiceCallServiceLoadBalancerConfigurationProperties.class);
                assertThat(context).getBeans(ServiceLoadBalancer.class).containsKeys("ribbon-load-balancer");
            }
        );
}
 
@Test
public void testAutoConfiguration() {
    new ApplicationContextRunner()
        .withConfiguration(
            AutoConfigurations.of(
                CamelAutoConfiguration.class,
                CamelCloudAutoConfiguration.class,
                CamelSpringCloudServiceRegistryAutoConfiguration.class,
                CamelCloudNetflixServiceLoadBalancerAutoConfiguration.class,
                RibbonAutoConfiguration.class,
                RibbonClientConfiguration.class
            ))
        .withUserConfiguration(
            TestConfiguration.class)
        .withPropertyValues(
            "debug=true",
            "spring.main.banner-mode=off",
            "ribbon.client.name=test")
        .run(
            context -> {
                assertThat(context).hasSingleBean(LoadBalancerClient.class);
                assertThat(context).getBean(LoadBalancerClient.class).isInstanceOf(RibbonLoadBalancerClient.class);

                assertThat(context).hasSingleBean(CamelSpringCloudServiceLoadBalancer.LoadBalancerClientAdapter.class);

                LoadBalancerClient client = context.getBean(LoadBalancerClient.class);
                ServiceLoadBalancer balancer = context.getBean(CamelSpringCloudServiceLoadBalancer.LoadBalancerClientAdapter.class).adapt(client);

                assertThat(balancer).isInstanceOf(CamelCloudNetflixServiceLoadBalancer.class);
            }
        );
}
 
@Test
public void testAutoConfiguration() {
    new ApplicationContextRunner()
        .withConfiguration(
            AutoConfigurations.of(
                CamelAutoConfiguration.class,
                CamelCloudAutoConfiguration.class,
                CamelSpringCloudServiceRegistryAutoConfiguration.class
            ))
        .withUserConfiguration(
            TestConfiguration.class)
        .withPropertyValues(
            "spring.main.banner-mode=off",
            "ribbon.eureka.enabled=false",
            "ribbon.enabled=false")
        .run(
            context -> {
                // spring cloud registry
                assertThat(context).hasSingleBean(org.springframework.cloud.client.serviceregistry.ServiceRegistry.class);
                assertThat(context).getBean(org.springframework.cloud.client.serviceregistry.ServiceRegistry.class).isInstanceOf(MyServiceRegistry.class);

                // camel registry
                assertThat(context).hasSingleBean(org.apache.camel.cloud.ServiceRegistry.class);
                assertThat(context).getBean(org.apache.camel.cloud.ServiceRegistry.class).isInstanceOf(CamelSpringCloudServiceRegistry.class);

                assertThat(context).getBean(org.apache.camel.cloud.ServiceRegistry.class).hasFieldOrPropertyWithValue(
                    "nativeServiceRegistry",
                    context.getBean(org.springframework.cloud.client.serviceregistry.ServiceRegistry.class)
                );
            }
        );
}
 
@Test
public void testDisabledCamelCloud() {
    new ApplicationContextRunner()
        .withConfiguration(
            AutoConfigurations.of(
                CamelAutoConfiguration.class,
                CamelCloudAutoConfiguration.class,
                CamelSpringCloudServiceRegistryAutoConfiguration.class
            ))
        .withUserConfiguration(
            TestConfiguration.class)
        .withPropertyValues(
            "spring.main.banner-mode=off",
            "ribbon.eureka.enabled=false",
            "ribbon.enabled=false",
            "camel.cloud.enabled=false")
        .run(
            context -> {
                // spring cloud registry
                assertThat(context).hasSingleBean(org.springframework.cloud.client.serviceregistry.ServiceRegistry.class);
                assertThat(context).getBean(org.springframework.cloud.client.serviceregistry.ServiceRegistry.class).isInstanceOf(MyServiceRegistry.class);

                // camel registry
                assertThat(context).doesNotHaveBean(org.apache.camel.cloud.ServiceRegistry.class);
            }
        );
}
 
@Test
public void testDisabledCamelServiceRegistry() {
    new ApplicationContextRunner()
        .withConfiguration(
            AutoConfigurations.of(
                CamelAutoConfiguration.class,
                CamelCloudAutoConfiguration.class,
                CamelSpringCloudServiceRegistryAutoConfiguration.class
            ))
        .withUserConfiguration(
            TestConfiguration.class)
        .withPropertyValues(
            "spring.main.banner-mode=off",
            "ribbon.eureka.enabled=false",
            "ribbon.enabled=false",
            "camel.cloud.enabled=true",
            "camel.cloud.service-registry.enabled=false")
        .run(
            context -> {
                // spring cloud registry
                assertThat(context).hasSingleBean(org.springframework.cloud.client.serviceregistry.ServiceRegistry.class);
                assertThat(context).getBean(org.springframework.cloud.client.serviceregistry.ServiceRegistry.class).isInstanceOf(MyServiceRegistry.class);

                // camel registry
                assertThat(context).doesNotHaveBean(org.apache.camel.cloud.ServiceRegistry.class);
            }
        );
}
 
@Test
public void testEnabledCamelServiceRegistry() {
    new ApplicationContextRunner()
        .withConfiguration(
            AutoConfigurations.of(
                CamelAutoConfiguration.class,
                CamelCloudAutoConfiguration.class,
                CamelSpringCloudServiceRegistryAutoConfiguration.class
            ))
        .withUserConfiguration(
            TestConfiguration.class)
        .withPropertyValues(
            "spring.main.banner-mode=off",
            "ribbon.eureka.enabled=false",
            "ribbon.enabled=false",
            "camel.cloud.enabled=false",
            "camel.cloud.service-registry.enabled=true")
        .run(
            context -> {
                // spring cloud registry
                assertThat(context).hasSingleBean(org.springframework.cloud.client.serviceregistry.ServiceRegistry.class);
                assertThat(context).getBean(org.springframework.cloud.client.serviceregistry.ServiceRegistry.class).isInstanceOf(MyServiceRegistry.class);

                // camel registry
                assertThat(context).hasSingleBean(org.apache.camel.cloud.ServiceRegistry.class);
                assertThat(context).getBean(org.apache.camel.cloud.ServiceRegistry.class).isInstanceOf(CamelSpringCloudServiceRegistry.class);

                assertThat(context).getBean(org.apache.camel.cloud.ServiceRegistry.class).hasFieldOrPropertyWithValue(
                    "nativeServiceRegistry",
                    context.getBean(org.springframework.cloud.client.serviceregistry.ServiceRegistry.class)
                );
            }
        );
}
 
 类所在包
 类方法
 同包方法