View Javadoc
1   package com.atlassian.plugin.osgi.spring;
2   
3   import org.junit.Test;
4   import org.springframework.beans.factory.config.BeanPostProcessor;
5   import org.springframework.beans.factory.support.DefaultListableBeanFactory;
6   import org.springframework.beans.factory.support.RootBeanDefinition;
7   
8   import javax.annotation.PostConstruct;
9   
10  import static org.junit.Assert.assertFalse;
11  import static org.junit.Assert.assertTrue;
12  
13  public class BeanPostProcessorTest {
14      private static class SomeBean {
15          boolean postConstructInvoked;
16          @PostConstruct
17          void postConstruct() {
18              postConstructInvoked = true;
19          }
20      }
21      
22      @Test
23      public void invokesPostConstruct() {
24          final DefaultListableBeanFactory bf = new DefaultListableBeanFactory();
25          bf.registerBeanDefinition("bean", new RootBeanDefinition(SomeBean.class));
26          final CommonAnnotationBeanFactoryPostProcessor commonAnnotationBeanFactoryPostProcessor = new CommonAnnotationBeanFactoryPostProcessor();
27          
28          assertFalse(bf.createBean(SomeBean.class).postConstructInvoked);
29          commonAnnotationBeanFactoryPostProcessor.postProcessBeanFactory(null, bf);
30          for (final BeanPostProcessor bpp : bf.getBeansOfType(BeanPostProcessor.class).values()) {
31              bf.addBeanPostProcessor(bpp);
32          }
33          assertTrue(bf.createBean(SomeBean.class).postConstructInvoked);
34      }
35  }