@Test void autoConfigRegistersProjectRequestResolver() { this.contextRunner.run((context) -> assertThat(context) .hasSingleBean(ProjectRequestResolver.class)); }
@Test void autoConfigRegistersTemplateRenderer() { this.contextRunner.run( (context) -> assertThat(context).hasSingleBean(TemplateRenderer.class)); }
@Test void autoConfigRegistersDependencyMetadataProvider() { this.contextRunner.run((context) -> assertThat(context) .hasSingleBean(DependencyMetadataProvider.class)); }
@Test void autoConfigRegistersProjectGenerator() { this.contextRunner.run( (context) -> assertThat(context).hasSingleBean(ProjectGenerator.class)); }
@Test void autoConfigRegistersProjectResourceLocator() { this.contextRunner.run((context) -> assertThat(context) .hasSingleBean(ProjectResourceLocator.class)); }
@Test void autoConfigRegistersInitializrMetadataProvider() { this.contextRunner.run((context) -> assertThat(context) .hasSingleBean(InitializrMetadataProvider.class)); }
@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); }); }
@Test void autoConfigWhenTemplateRendererBeanPresentDoesNotRegisterTemplateRenderer() { this.contextRunner .withUserConfiguration(CustomTemplateRendererConfiguration.class) .run((context) -> { assertThat(context).hasSingleBean(TemplateRenderer.class); assertThat(context).hasBean("testTemplateRenderer"); }); }
@Test void autoConfigWhenProjectGeneratorBeanPresentDoesNotRegisterProjectGenerator() { this.contextRunner .withUserConfiguration(CustomProjectGeneratorConfiguration.class) .run((context) -> { assertThat(context).hasSingleBean(ProjectGenerator.class); assertThat(context).hasBean("testProjectGenerator"); }); }
@Test void autoConfigWhenInitializrMetadataProviderBeanPresentDoesNotRegisterInitializrMetadataProvider() { this.contextRunner .withUserConfiguration( CustomInitializrMetadataProviderConfiguration.class) .run((context) -> { assertThat(context).hasSingleBean(InitializrMetadataProvider.class); assertThat(context).hasBean("testInitializrMetadataProvider"); }); }
@Test void autoConfigWhenProjectRequestResolverBeanPresentDoesNotRegisterProjectRequestResolver() { this.contextRunner .withUserConfiguration(CustomProjectRequestResolverConfiguration.class) .run((context) -> { assertThat(context).hasSingleBean(ProjectRequestResolver.class); assertThat(context).hasBean("testProjectRequestResolver"); }); }
@Test void autoConfigWhenDependencyMetadataProviderBeanPresentDoesNotRegisterDependencyMetadataProvider() { this.contextRunner .withUserConfiguration( CustomDependencyMetadataProviderConfiguration.class) .run((context) -> { assertThat(context).hasSingleBean(DependencyMetadataProvider.class); assertThat(context).hasBean("testDependencyMetadataProvider"); }); }
@Test void autoConfigWhenProjectResourceLocatorBeanPresentDoesNotRegisterProjectResourceLocator() { this.contextRunner .withUserConfiguration(CustomProjectResourceLocatorConfiguration.class) .run((context) -> { assertThat(context).hasSingleBean(ProjectResourceLocator.class); assertThat(context).hasBean("testProjectResourceLocator"); }); }
@Test void cacheConfigurationConditionalOnClass() { this.contextRunner .withClassLoader(new FilteredClassLoader("javax.cache.CacheManager")) .run((context) -> assertThat(context) .doesNotHaveBean(JCacheManagerCustomizer.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 public void controllersAreNotCreatedWithNonWebConfiguration() { nonWebApplicationContextRunner() .withUserConfiguration(FullServicesConfiguration.class) .run((context) -> { assertThat(context).doesNotHaveBean(CatalogController.class); assertThat(context).doesNotHaveBean(ServiceInstanceController.class); assertThat(context).doesNotHaveBean(ServiceInstanceBindingController.class); }); }
@Test public void apiVersionBeansAreNotCreatedWithNonWebConfiguration() { nonWebApplicationContextRunner() .withUserConfiguration(ServicesConfiguration.class) .run((context) -> { assertThat(context).doesNotHaveBean(BrokerApiVersion.class); assertThat(context).doesNotHaveBean(ApiVersionInterceptor.class); assertThat(context).doesNotHaveBean(ApiVersionWebMvcConfigurerAdapter.class); }); }
@Test public void shouldNotRegisterBeansIfDiscoveryDisabled() { contextRunner .withUserConfiguration(DiscoveryConfiguration.class) .withPropertyValues("spring.cloud.vault.token=foo", "spring.cloud.vault.discovery.enabled=false") .run(context -> { assertThat( context.getBeanNamesForType(VaultServiceInstanceProvider.class)) .isEmpty(); }); }
@Test void testDoesNotAddDatasourceProxyListenerIfNoTracer() { ApplicationContextRunner contextRunner = this.contextRunner.withPropertyValues("spring.sleuth.enabled:false"); contextRunner.run(context -> { DataSource dataSource = context.getBean(DataSource.class); ProxyDataSource proxyDataSource = (ProxyDataSource) ((DecoratedDataSource) dataSource).getDecoratedDataSource(); ChainListener chainListener = proxyDataSource.getProxyConfig().getQueryListener(); assertThat(chainListener.getListeners()).extracting("class").doesNotContain(TracingQueryExecutionListener.class); }); } }