@Test void autoConfigWhenProjectGeneratorBeanPresentDoesNotRegisterProjectGenerator() { this.contextRunner .withUserConfiguration(CustomProjectGeneratorConfiguration.class) .run((context) -> { assertThat(context).hasSingleBean(ProjectGenerator.class); assertThat(context).hasBean("testProjectGenerator"); }); }
@Test void autoConfigRegistersProjectRequestResolver() { this.contextRunner.run((context) -> assertThat(context) .hasSingleBean(ProjectRequestResolver.class)); }
@Test void cacheConfigurationConditionalOnClass() { this.contextRunner .withClassLoader(new FilteredClassLoader("javax.cache.CacheManager")) .run((context) -> assertThat(context) .doesNotHaveBean(JCacheManagerCustomizer.class)); }
@Test void webConfiguration() { WebApplicationContextRunner webContextRunner = new WebApplicationContextRunner() .withConfiguration( AutoConfigurations.of(RestTemplateAutoConfiguration.class, JacksonAutoConfiguration.class, HttpMessageConvertersAutoConfiguration.class, WebMvcAutoConfiguration.class, InitializrAutoConfiguration.class)); webContextRunner.run((context) -> { assertThat(context).hasSingleBean(InitializrWebConfig.class); assertThat(context).hasSingleBean(MainController.class); assertThat(context).hasSingleBean(UiController.class); }); }
@Test public void nettyHttpClientDefaults() { new ReactiveWebApplicationContextRunner() .withConfiguration(AutoConfigurations.of(WebFluxAutoConfiguration.class, MetricsAutoConfiguration.class, SimpleMetricsExportAutoConfiguration.class, GatewayAutoConfiguration.class)) .withPropertyValues("debug=true") .run(context -> { assertThat(context).hasSingleBean(HttpClient.class); HttpClient httpClient = context.getBean(HttpClient.class); /*FIXME: 2.1.0 HttpClientOptions options = httpClient.options(); PoolResources poolResources = options.getPoolResources(); assertThat(poolResources).isNotNull(); //TODO: howto test PoolResources ClientProxyOptions proxyOptions = options.getProxyOptions(); assertThat(proxyOptions).isNull(); SslContext sslContext = options.sslContext(); assertThat(sslContext).isNull();*/ }); }
@Test void autoConfigWhenInitializrMetadataProviderBeanPresentDoesNotRegisterInitializrMetadataProvider() { this.contextRunner .withUserConfiguration( CustomInitializrMetadataProviderConfiguration.class) .run((context) -> { assertThat(context).hasSingleBean(InitializrMetadataProvider.class); assertThat(context).hasBean("testInitializrMetadataProvider"); }); }
@Test void autoConfigRegistersTemplateRenderer() { this.contextRunner.run( (context) -> assertThat(context).hasSingleBean(TemplateRenderer.class)); }
@Test public void nettyHttpClientConfigured() { new ReactiveWebApplicationContextRunner() .withConfiguration(AutoConfigurations.of(WebFluxAutoConfiguration.class, MetricsAutoConfiguration.class, SimpleMetricsExportAutoConfiguration.class, GatewayAutoConfiguration.class)) .withPropertyValues("spring.cloud.gateway.httpclient.ssl.use-insecure-trust-manager=true", "spring.cloud.gateway.httpclient.connect-timeout=10", "spring.cloud.gateway.httpclient.response-timeout=10s", "spring.cloud.gateway.httpclient.pool.type=fixed", "spring.cloud.gateway.httpclient.proxy.host=myhost") .run(context -> { assertThat(context).hasSingleBean(HttpClient.class); HttpClient httpClient = context.getBean(HttpClient.class);
@Test void autoConfigWhenProjectRequestResolverBeanPresentDoesNotRegisterProjectRequestResolver() { this.contextRunner .withUserConfiguration(CustomProjectRequestResolverConfiguration.class) .run((context) -> { assertThat(context).hasSingleBean(ProjectRequestResolver.class); assertThat(context).hasBean("testProjectRequestResolver"); }); }
@Test void autoConfigRegistersDependencyMetadataProvider() { this.contextRunner.run((context) -> assertThat(context) .hasSingleBean(DependencyMetadataProvider.class)); }
@Test void autoConfigWhenDependencyMetadataProviderBeanPresentDoesNotRegisterDependencyMetadataProvider() { this.contextRunner .withUserConfiguration( CustomDependencyMetadataProviderConfiguration.class) .run((context) -> { assertThat(context).hasSingleBean(DependencyMetadataProvider.class); assertThat(context).hasBean("testDependencyMetadataProvider"); }); }
@Test void autoConfigRegistersProjectGenerator() { this.contextRunner.run( (context) -> assertThat(context).hasSingleBean(ProjectGenerator.class)); }
@Test void autoConfigWhenTemplateRendererBeanPresentDoesNotRegisterTemplateRenderer() { this.contextRunner .withUserConfiguration(CustomTemplateRendererConfiguration.class) .run((context) -> { assertThat(context).hasSingleBean(TemplateRenderer.class); assertThat(context).hasBean("testTemplateRenderer"); }); }
@Test void autoConfigRegistersProjectResourceLocator() { this.contextRunner.run((context) -> assertThat(context) .hasSingleBean(ProjectResourceLocator.class)); }
@Test void autoConfigWhenProjectResourceLocatorBeanPresentDoesNotRegisterProjectResourceLocator() { this.contextRunner .withUserConfiguration(CustomProjectResourceLocatorConfiguration.class) .run((context) -> { assertThat(context).hasSingleBean(ProjectResourceLocator.class); assertThat(context).hasBean("testProjectResourceLocator"); }); }
@Test void autoConfigRegistersInitializrMetadataProvider() { this.contextRunner.run((context) -> assertThat(context) .hasSingleBean(InitializrMetadataProvider.class)); }
@Test void customRestTemplateBuilderIsUsed() { this.contextRunner.withUserConfiguration(CustomRestTemplateConfiguration.class) .run((context) -> { assertThat(context).hasSingleBean(InitializrMetadataProvider.class); RestTemplate restTemplate = (RestTemplate) new DirectFieldAccessor( context.getBean(InitializrMetadataProvider.class)) .getPropertyValue("restTemplate"); assertThat(restTemplate.getErrorHandler()) .isSameAs(CustomRestTemplateConfiguration.errorHandler); }); }
@Test void cacheConfiguration() { this.contextRunner.run((context) -> assertThat(context) .hasSingleBean(JCacheManagerCustomizer.class)); }
@Test void webConfigurationConditionalOnWebApplication() { this.contextRunner.run((context) -> { assertThat(context).doesNotHaveBean(InitializrWebConfig.class); assertThat(context).doesNotHaveBean(MainController.class); assertThat(context).doesNotHaveBean(UiController.class); }); }