Search in sources :

Example 1 with TestListener

use of org.springframework.context.TestListener in project spring-framework by spring-projects.

the class XmlWebApplicationContextTests method doTestEvents.

/**
	 * Overridden as we can't trust superclass method
	 * @see org.springframework.context.AbstractApplicationContextTests#testEvents()
	 */
@Override
protected void doTestEvents(TestListener listener, TestListener parentListener, MyEvent event) {
    TestListener listenerBean = (TestListener) this.applicationContext.getBean("testListener");
    TestListener parentListenerBean = (TestListener) this.applicationContext.getParent().getBean("parentListener");
    super.doTestEvents(listenerBean, parentListenerBean, event);
}
Also used : TestListener(org.springframework.context.TestListener)

Example 2 with TestListener

use of org.springframework.context.TestListener in project spring-framework by spring-projects.

the class EventPublicationInterceptorTests method testExpectedBehavior.

@Test
public void testExpectedBehavior() throws Exception {
    TestBean target = new TestBean();
    final TestListener listener = new TestListener();
    class TestContext extends StaticApplicationContext {

        @Override
        protected void onRefresh() throws BeansException {
            addApplicationListener(listener);
        }
    }
    StaticApplicationContext ctx = new TestContext();
    MutablePropertyValues pvs = new MutablePropertyValues();
    pvs.add("applicationEventClass", TestEvent.class.getName());
    // should automatically receive applicationEventPublisher reference
    ctx.registerSingleton("publisher", EventPublicationInterceptor.class, pvs);
    ctx.registerSingleton("otherListener", FactoryBeanTestListener.class);
    ctx.refresh();
    EventPublicationInterceptor interceptor = (EventPublicationInterceptor) ctx.getBean("publisher");
    ProxyFactory factory = new ProxyFactory(target);
    factory.addAdvice(0, interceptor);
    ITestBean testBean = (ITestBean) factory.getProxy();
    // invoke any method on the advised proxy to see if the interceptor has been invoked
    testBean.getAge();
    // two events: ContextRefreshedEvent and TestEvent
    assertTrue("Interceptor must have published 2 events", listener.getEventCount() == 2);
    TestListener otherListener = (TestListener) ctx.getBean("&otherListener");
    assertTrue("Interceptor must have published 2 events", otherListener.getEventCount() == 2);
}
Also used : ITestBean(org.springframework.tests.sample.beans.ITestBean) ITestBean(org.springframework.tests.sample.beans.ITestBean) TestBean(org.springframework.tests.sample.beans.TestBean) StaticApplicationContext(org.springframework.context.support.StaticApplicationContext) TestEvent(org.springframework.context.event.test.TestEvent) ProxyFactory(org.springframework.aop.framework.ProxyFactory) MutablePropertyValues(org.springframework.beans.MutablePropertyValues) TestListener(org.springframework.context.TestListener) Test(org.junit.Test)

Aggregations

TestListener (org.springframework.context.TestListener)2 Test (org.junit.Test)1 ProxyFactory (org.springframework.aop.framework.ProxyFactory)1 MutablePropertyValues (org.springframework.beans.MutablePropertyValues)1 TestEvent (org.springframework.context.event.test.TestEvent)1 StaticApplicationContext (org.springframework.context.support.StaticApplicationContext)1 ITestBean (org.springframework.tests.sample.beans.ITestBean)1 TestBean (org.springframework.tests.sample.beans.TestBean)1