@Test void autoConfigWhenProjectResourceLocatorBeanPresentDoesNotRegisterProjectResourceLocator() { this.contextRunner .withUserConfiguration(CustomProjectResourceLocatorConfiguration.class) .run((context) -> { assertThat(context).hasSingleBean(ProjectResourceLocator.class); assertThat(context).hasBean("testProjectResourceLocator"); }); }
@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 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 servicesAreNotCreatedWhenMissingCatalogAndCatalogServiceConfiguration() { this.contextRunner .withUserConfiguration(MissingCatalogAndCatalogServiceConfiguration.class) .run((context) -> assertThat(context.getStartupFailure()) .isExactlyInstanceOf(UnsatisfiedDependencyException.class)); }
@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 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 servicesAreNotCreatedWithoutInstanceService() { this.contextRunner .withUserConfiguration(MissingInstanceServiceConfiguration.class) .run(context -> assertThat(context.getStartupFailure()) .isExactlyInstanceOf(UnsatisfiedDependencyException.class)); }
@Test public void servicesAreNotCreatedWhenMissingAllConfiguration() { this.contextRunner .withUserConfiguration(MissingAllConfiguration.class) .run((context) -> assertThat(context.getStartupFailure()) .isExactlyInstanceOf(UnsatisfiedDependencyException.class)); }
@Test public void apiVersionBeansAreNotCreatedWithNonWebConfiguration() { nonWebApplicationContextRunner() .withUserConfiguration(ServicesConfiguration.class) .run((context) -> { assertThat(context).doesNotHaveBean(BrokerApiVersion.class); assertThat(context).doesNotHaveBean(ApiVersionWebFilter.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 public void shouldNotRegisterBeansIfVaultDisabled() { contextRunner .withUserConfiguration(DiscoveryConfiguration.class) .withPropertyValues("spring.cloud.vault.token=foo", "spring.cloud.vault.enabled=false") .run(context -> { assertThat( context.getBeanNamesForType(VaultServiceInstanceProvider.class)) .isEmpty(); }); }
@Test public void shouldNotConfigureIfHttpClientIsMissing() { contextRunner .withUserConfiguration(AuthenticationFactoryConfiguration.class) .withClassLoader( new FilteredClassLoader("reactor.netty.http.client.HttpClient")) .run(context -> { assertThat(context.getBeanNamesForType(ReactiveVaultOperations.class)) .isEmpty(); }); }
@Test public void testJsfManagedBeans() { this.applicationContextRunner .withUserConfiguration(DummyConfiguration.class) .run(context -> { assertThat(context.getBeanNamesForAnnotation(ManagedBean.class)).isNotEmpty(); ApplicationStartedEvent applicationStartedEvent = mock(ApplicationStartedEvent.class); when(applicationStartedEvent.getApplicationContext()).thenReturn(context.getSourceApplicationContext()); this.joinfacesApplicationAnalyzer.onApplicationEvent(applicationStartedEvent); }); }
@Test void testDecoratingCanBeDisabledForSpecificBeans() { ApplicationContextRunner contextRunner = this.contextRunner.withPropertyValues("decorator.datasource.exclude-beans:secondDataSource") .withUserConfiguration(TestMultiDataSourceConfiguration.class); contextRunner.run(context -> { DataSource dataSource = context.getBean("dataSource", DataSource.class); assertThat(dataSource).isInstanceOf(DecoratedDataSource.class); DataSource secondDataSource = context.getBean("secondDataSource", DataSource.class); assertThat(secondDataSource).isInstanceOf(BasicDataSource.class); }); }
@Test void testCustomListeners() { ApplicationContextRunner contextRunner = this.contextRunner.withUserConfiguration(CustomListenerConfiguration.class); contextRunner.run(context -> { DataSource dataSource = context.getBean(DataSource.class); ProxyDataSource proxyDataSource = (ProxyDataSource) ((DecoratedDataSource) dataSource).getDecoratedDataSource(); QueryExecutionListener queryExecutionListener = context.getBean(QueryExecutionListener.class); ChainListener chainListener = proxyDataSource.getProxyConfig().getQueryListener(); assertThat(chainListener.getListeners()).contains(queryExecutionListener); }); }