@Test public void testLazyValidatorForMethodValidation() { AnnotationConfigApplicationContext ctx = new AnnotationConfigApplicationContext( LazyMethodValidationConfig.class, CustomValidatorBean.class, MyValidBean.class, MyValidFactoryBean.class); ctx.getBeansOfType(MyValidInterface.class).values().forEach(bean -> bean.myValidMethod("value", 5)); }
@Test public void testLazyValidatorForMethodValidationWithProxyTargetClass() { AnnotationConfigApplicationContext ctx = new AnnotationConfigApplicationContext( LazyMethodValidationConfigWithProxyTargetClass.class, CustomValidatorBean.class, MyValidBean.class, MyValidFactoryBean.class); ctx.getBeansOfType(MyValidInterface.class).values().forEach(bean -> bean.myValidMethod("value", 5)); }
@Test public void testLazyValidatorForMethodValidationWithProxyTargetClass() { AnnotationConfigApplicationContext ctx = new AnnotationConfigApplicationContext( LazyMethodValidationConfigWithProxyTargetClass.class, CustomValidatorBean.class, MyValidBean.class, MyValidFactoryBean.class); ctx.getBeansOfType(MyValidInterface.class).values().forEach(bean -> bean.myValidMethod("value", 5)); }
@Test public void testLazyValidatorForMethodValidation() { AnnotationConfigApplicationContext ctx = new AnnotationConfigApplicationContext( LazyMethodValidationConfig.class, CustomValidatorBean.class, MyValidBean.class, MyValidFactoryBean.class); ctx.getBeansOfType(MyValidInterface.class).values().forEach(bean -> bean.myValidMethod("value", 5)); }
@Test public void configWithAlternativeBeans() { AnnotationConfigApplicationContext context = new AnnotationConfigApplicationContext(ConfigWithAlternativeBeans.class); Map<String, ExampleBean> beans = context.getBeansOfType(ExampleBean.class); assertEquals(1, beans.size()); assertEquals("baz", beans.keySet().iterator().next()); }
@Test public void conditionOnOverriddenMethodHonored() { AnnotationConfigApplicationContext context = new AnnotationConfigApplicationContext(ConfigWithBeanSkipped.class); assertEquals(0, context.getBeansOfType(ExampleBean.class).size()); }
@Test public void noConditionOnOverriddenMethodHonored() { AnnotationConfigApplicationContext context = new AnnotationConfigApplicationContext(ConfigWithBeanReactivated.class); Map<String, ExampleBean> beans = context.getBeansOfType(ExampleBean.class); assertEquals(1, beans.size()); assertEquals("baz", beans.keySet().iterator().next()); }
@Test public void testAutowiredConfigurationMethodDependenciesWithOptionalAndNotAvailable() { AnnotationConfigApplicationContext context = new AnnotationConfigApplicationContext( OptionalAutowiredMethodConfig.class); assertTrue(context.getBeansOfType(Colour.class).isEmpty()); assertThat(context.getBean(TestBean.class).getName(), equalTo("")); }
@Test public void findsBeansByTypeIfNotInstantiated() { AnnotationConfigApplicationContext bf = new AnnotationConfigApplicationContext(); bf.registerBeanDefinition("fooConfig", new RootBeanDefinition(FooConfig.class)); bf.getBeanFactory().addBeanPostProcessor(new PredictingBPP()); bf.refresh(); assertThat(bf.isTypeMatch("&foo", FactoryBean.class), is(true)); @SuppressWarnings("rawtypes") Map<String, FactoryBean> fbBeans = bf.getBeansOfType(FactoryBean.class); assertThat(1, equalTo(fbBeans.size())); assertThat("&foo", equalTo(fbBeans.keySet().iterator().next())); Map<String, AnInterface> aiBeans = bf.getBeansOfType(AnInterface.class); assertThat(1, equalTo(aiBeans.size())); assertThat("&foo", equalTo(aiBeans.keySet().iterator().next())); }
@Test public void repro() { AnnotationConfigApplicationContext bf = new AnnotationConfigApplicationContext(); bf.registerBeanDefinition("fooConfig", new RootBeanDefinition(FooConfig.class)); bf.getBeanFactory().addBeanPostProcessor(new PredictingBPP()); bf.refresh(); assertThat(bf.getBean("foo"), instanceOf(Foo.class)); assertThat(bf.getBean("&foo"), instanceOf(FooFactoryBean.class)); assertThat(bf.isTypeMatch("&foo", FactoryBean.class), is(true)); @SuppressWarnings("rawtypes") Map<String, FactoryBean> fbBeans = bf.getBeansOfType(FactoryBean.class); assertThat(1, equalTo(fbBeans.size())); assertThat("&foo", equalTo(fbBeans.keySet().iterator().next())); Map<String, AnInterface> aiBeans = bf.getBeansOfType(AnInterface.class); assertThat(1, equalTo(aiBeans.size())); assertThat("&foo", equalTo(aiBeans.keySet().iterator().next())); }
@Test public void transactionalEventListenerRegisteredProperly() { AnnotationConfigApplicationContext ctx = new AnnotationConfigApplicationContext(EnableTxConfig.class); assertTrue(ctx.containsBean(TransactionManagementConfigUtils.TRANSACTIONAL_EVENT_LISTENER_FACTORY_BEAN_NAME)); assertEquals(1, ctx.getBeansOfType(TransactionalEventListenerFactory.class).size()); ctx.close(); }
@Test public void individualBeanWithNullReturningSupplier() { AnnotationConfigApplicationContext context = new AnnotationConfigApplicationContext(); context.registerBean("a", BeanA.class, () -> null); context.registerBean("b", BeanB.class, BeanB::new); context.registerBean("c", BeanC.class, BeanC::new); context.refresh(); assertTrue(ObjectUtils.containsElement(context.getBeanNamesForType(BeanA.class), "a")); assertTrue(ObjectUtils.containsElement(context.getBeanNamesForType(BeanB.class), "b")); assertTrue(ObjectUtils.containsElement(context.getBeanNamesForType(BeanC.class), "c")); assertTrue(context.getBeansOfType(BeanA.class).isEmpty()); assertSame(context.getBean(BeanB.class), context.getBeansOfType(BeanB.class).values().iterator().next()); assertSame(context.getBean(BeanC.class), context.getBeansOfType(BeanC.class).values().iterator().next()); }
@Override @SneakyThrows(PluginArchiveException.class) public synchronized void onPluginLoaded(ManagedPlugin managedPlugin) { Map<String, IArchiveProviderPlugin> archiveProviderBeans = managedPlugin.getPluginContext().getBeansOfType(IArchiveProviderPlugin.class); for (Map.Entry<String, IArchiveProviderPlugin> archiveProvider : safe(archiveProviderBeans).entrySet()) { try { indexArchives(archiveProvider.getValue().getArchives()); } catch (PluginArchiveException e) { log.error("Fail to upload archive from plugin " + managedPlugin.getPlugin().getId() + "/" + archiveProvider.getKey() + ". The plugin will not be enabled."); throw e; } } }
private void assertNoBean(AnnotationConfigApplicationContext context) { Map<String, AutoServiceRegistration> beans = context.getBeansOfType(AutoServiceRegistration.class); assertThat(beans).isEmpty(); }
@Test public void shouldNotFailIfInstrumentationKeyIsNotSet() { context.register(PropertyPlaceholderAutoConfiguration.class, ApplicationInsightsTelemetryAutoConfiguration.class); context.refresh(); assertThat(context.getBeansOfType(TelemetryClient.class)).isEmpty(); assertThat(context.getBeansOfType(TelemetryConfiguration.class)).isEmpty(); }
@Test public void testDisabled() { load(new Class[] {RiveScriptAutoConfiguration.class}, "rivescript.enabled: false"); assertThat(this.context.getBeansOfType(RiveScript.class).size(), is(0)); }
@Test public void shouldBeAbleToDisableDefaultModules() { EnvironmentTestUtils.addEnvironment(context, "azure.application-insights.instrumentation-key: 00000000-0000-0000-0000-000000000000", "azure.application-insights.default-modules.WebUserTrackingTelemetryModule.enabled=false"); context.register(PropertyPlaceholderAutoConfiguration.class, ApplicationInsightsTelemetryAutoConfiguration.class); context.refresh(); assertThat(context.getBeansOfType(WebUserTrackingTelemetryModule.class)).isEmpty(); }
@Test public void heartBeatModuleShouldBeEnabledByDefault() { EnvironmentTestUtils.addEnvironment(context, "azure.application-insights.instrumentation-key: 00000000-0000-0000-0000-000000000000", "azure.application-insights.heart-beat.enabled=true"); context.register(PropertyPlaceholderAutoConfiguration.class, ApplicationInsightsTelemetryAutoConfiguration.class); context.refresh(); assertThat(context.getBeansOfType(HeartBeatModule.class)).isNotEmpty(); }
@Test public void shouldBeAbleToDisableAllWebModules() { EnvironmentTestUtils.addEnvironment(context, "azure.application-insights.instrumentation-key: 00000000-0000-0000-0000-000000000000", "azure.application-insights.web.enabled=false"); context.register(PropertyPlaceholderAutoConfiguration.class, ApplicationInsightsTelemetryAutoConfiguration.class); context.refresh(); assertThat(context.getBeansOfType(WebUserTrackingTelemetryModule.class)).isEmpty(); }
@Test public void shouldBeAbleToConfigureJvmPerformanceCounters() { EnvironmentTestUtils.addEnvironment(context, "azure.application-insights.instrumentation-key: 00000000-0000-0000-0000-000000000000", "azure.application-insights.default.modules.JvmPerformanceCountersModule.enabled=true"); context.register(PropertyPlaceholderAutoConfiguration.class, ApplicationInsightsTelemetryAutoConfiguration.class); context.refresh(); assertThat(context.getBeansOfType(JvmPerformanceCountersModule.class)).isNotEmpty(); }