Changed use of AssertThrows to @Test(expected = ...)
git-svn-id: https://src.springframework.org/svn/spring-framework/trunk@242 50f2f4bb-b051-0410-bef5-90022cba6387
This commit is contained in:
parent
488d109d9d
commit
94b3fecb9f
|
|
@ -19,11 +19,11 @@ package org.springframework.context.event;
|
||||||
import java.util.ArrayList;
|
import java.util.ArrayList;
|
||||||
import java.util.List;
|
import java.util.List;
|
||||||
|
|
||||||
import junit.framework.TestCase;
|
|
||||||
import org.aopalliance.intercept.MethodInvocation;
|
import org.aopalliance.intercept.MethodInvocation;
|
||||||
import org.easymock.MockControl;
|
import org.easymock.EasyMock;
|
||||||
import org.easymock.internal.AlwaysMatcher;
|
import static org.easymock.EasyMock.*;
|
||||||
import org.easymock.internal.EqualsMatcher;
|
import static org.junit.Assert.*;
|
||||||
|
import org.junit.Test;
|
||||||
|
|
||||||
import org.springframework.beans.FatalBeanException;
|
import org.springframework.beans.FatalBeanException;
|
||||||
import org.springframework.beans.factory.BeanCreationException;
|
import org.springframework.beans.factory.BeanCreationException;
|
||||||
|
|
@ -36,7 +36,6 @@ import org.springframework.context.ApplicationListener;
|
||||||
import org.springframework.context.BeanThatBroadcasts;
|
import org.springframework.context.BeanThatBroadcasts;
|
||||||
import org.springframework.context.BeanThatListens;
|
import org.springframework.context.BeanThatListens;
|
||||||
import org.springframework.context.support.StaticApplicationContext;
|
import org.springframework.context.support.StaticApplicationContext;
|
||||||
import org.springframework.test.AssertThrows;
|
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* Unit and integration tests for the ApplicationContext event support.
|
* Unit and integration tests for the ApplicationContext event support.
|
||||||
|
|
@ -44,7 +43,7 @@ import org.springframework.test.AssertThrows;
|
||||||
* @author Alef Arendsen
|
* @author Alef Arendsen
|
||||||
* @author Rick Evans
|
* @author Rick Evans
|
||||||
*/
|
*/
|
||||||
public class ApplicationContextEventTests extends TestCase {
|
public class ApplicationContextEventTests {
|
||||||
|
|
||||||
private AbstractApplicationEventMulticaster getMulticaster() {
|
private AbstractApplicationEventMulticaster getMulticaster() {
|
||||||
return new AbstractApplicationEventMulticaster() {
|
return new AbstractApplicationEventMulticaster() {
|
||||||
|
|
@ -53,7 +52,8 @@ public class ApplicationContextEventTests extends TestCase {
|
||||||
};
|
};
|
||||||
}
|
}
|
||||||
|
|
||||||
public void testMulticasterNewCollectionClass() {
|
@Test
|
||||||
|
public void multicasterNewCollectionClass() {
|
||||||
AbstractApplicationEventMulticaster mc = getMulticaster();
|
AbstractApplicationEventMulticaster mc = getMulticaster();
|
||||||
|
|
||||||
mc.addApplicationListener(new NoOpApplicationListener());
|
mc.addApplicationListener(new NoOpApplicationListener());
|
||||||
|
|
@ -64,34 +64,26 @@ public class ApplicationContextEventTests extends TestCase {
|
||||||
assertEquals(ArrayList.class, mc.getApplicationListeners().getClass());
|
assertEquals(ArrayList.class, mc.getApplicationListeners().getClass());
|
||||||
}
|
}
|
||||||
|
|
||||||
public void testMulticasterInvalidCollectionClass_NotEvenACollectionType() {
|
@Test(expected = IllegalArgumentException.class)
|
||||||
new AssertThrows(IllegalArgumentException.class) {
|
public void multicasterInvalidCollectionClass_NotEvenACollectionType() {
|
||||||
public void test() throws Exception {
|
AbstractApplicationEventMulticaster mc = getMulticaster();
|
||||||
AbstractApplicationEventMulticaster mc = getMulticaster();
|
mc.setCollectionClass(ApplicationContextEventTests.class);
|
||||||
mc.setCollectionClass(ApplicationContextEventTests.class);
|
|
||||||
}
|
|
||||||
}.runTest();
|
|
||||||
}
|
}
|
||||||
|
|
||||||
public void testMulticasterInvalidCollectionClass_PassingAnInterfaceNotAConcreteClass() {
|
@Test(expected = FatalBeanException.class)
|
||||||
new AssertThrows(FatalBeanException.class) {
|
public void multicasterInvalidCollectionClass_PassingAnInterfaceNotAConcreteClass() {
|
||||||
public void test() throws Exception {
|
AbstractApplicationEventMulticaster mc = getMulticaster();
|
||||||
AbstractApplicationEventMulticaster mc = getMulticaster();
|
mc.setCollectionClass(List.class);
|
||||||
mc.setCollectionClass(List.class);
|
|
||||||
}
|
|
||||||
}.runTest();
|
|
||||||
}
|
}
|
||||||
|
|
||||||
public void testMulticasterNullCollectionClass() {
|
@Test(expected = IllegalArgumentException.class)
|
||||||
new AssertThrows(IllegalArgumentException.class) {
|
public void multicasterNullCollectionClass() {
|
||||||
public void test() throws Exception {
|
AbstractApplicationEventMulticaster mc = getMulticaster();
|
||||||
AbstractApplicationEventMulticaster mc = getMulticaster();
|
mc.setCollectionClass(null);
|
||||||
mc.setCollectionClass(null);
|
|
||||||
}
|
|
||||||
}.runTest();
|
|
||||||
}
|
}
|
||||||
|
|
||||||
public void testMulticasterRemoveAll() {
|
@Test
|
||||||
|
public void multicasterRemoveAll() {
|
||||||
AbstractApplicationEventMulticaster mc = getMulticaster();
|
AbstractApplicationEventMulticaster mc = getMulticaster();
|
||||||
mc.addApplicationListener(new NoOpApplicationListener());
|
mc.addApplicationListener(new NoOpApplicationListener());
|
||||||
mc.removeAllListeners();
|
mc.removeAllListeners();
|
||||||
|
|
@ -99,7 +91,8 @@ public class ApplicationContextEventTests extends TestCase {
|
||||||
assertEquals(0, mc.getApplicationListeners().size());
|
assertEquals(0, mc.getApplicationListeners().size());
|
||||||
}
|
}
|
||||||
|
|
||||||
public void testMulticasterRemoveOne() {
|
@Test
|
||||||
|
public void multicasterRemoveOne() {
|
||||||
AbstractApplicationEventMulticaster mc = getMulticaster();
|
AbstractApplicationEventMulticaster mc = getMulticaster();
|
||||||
ApplicationListener one = new NoOpApplicationListener();
|
ApplicationListener one = new NoOpApplicationListener();
|
||||||
ApplicationListener two = new NoOpApplicationListener();
|
ApplicationListener two = new NoOpApplicationListener();
|
||||||
|
|
@ -112,55 +105,48 @@ public class ApplicationContextEventTests extends TestCase {
|
||||||
assertTrue("Remaining listener present", mc.getApplicationListeners().contains(two));
|
assertTrue("Remaining listener present", mc.getApplicationListeners().contains(two));
|
||||||
}
|
}
|
||||||
|
|
||||||
public void testSimpleApplicationEventMulticaster() {
|
@Test
|
||||||
MockControl ctrl = MockControl.createControl(ApplicationListener.class);
|
public void simpleApplicationEventMulticaster() {
|
||||||
ApplicationListener listener = (ApplicationListener) ctrl.getMock();
|
ApplicationListener listener = EasyMock.createMock(ApplicationListener.class);
|
||||||
|
|
||||||
ApplicationEvent evt = new ContextClosedEvent(new StaticApplicationContext());
|
ApplicationEvent evt = new ContextClosedEvent(new StaticApplicationContext());
|
||||||
listener.onApplicationEvent(evt);
|
listener.onApplicationEvent(evt);
|
||||||
ctrl.setMatcher(new EqualsMatcher());
|
|
||||||
|
|
||||||
SimpleApplicationEventMulticaster smc = new SimpleApplicationEventMulticaster();
|
SimpleApplicationEventMulticaster smc = new SimpleApplicationEventMulticaster();
|
||||||
smc.addApplicationListener(listener);
|
smc.addApplicationListener(listener);
|
||||||
|
|
||||||
ctrl.replay();
|
replay(listener);
|
||||||
|
|
||||||
smc.multicastEvent(evt);
|
smc.multicastEvent(evt);
|
||||||
|
|
||||||
ctrl.verify();
|
verify(listener);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@Test
|
||||||
public void testEvenPublicationInterceptor() throws Throwable {
|
public void testEvenPublicationInterceptor() throws Throwable {
|
||||||
MockControl invCtrl = MockControl.createControl(MethodInvocation.class);
|
MethodInvocation invocation = EasyMock.createMock(MethodInvocation.class);
|
||||||
MethodInvocation invocation = (MethodInvocation) invCtrl.getMock();
|
ApplicationContext ctx = EasyMock.createMock(ApplicationContext.class);
|
||||||
|
|
||||||
MockControl ctxCtrl = MockControl.createControl(ApplicationContext.class);
|
EventPublicationInterceptor interceptor = new EventPublicationInterceptor();
|
||||||
ApplicationContext ctx = (ApplicationContext) ctxCtrl.getMock();
|
|
||||||
|
|
||||||
EventPublicationInterceptor interceptor =
|
|
||||||
new EventPublicationInterceptor();
|
|
||||||
interceptor.setApplicationEventClass(MyEvent.class);
|
interceptor.setApplicationEventClass(MyEvent.class);
|
||||||
interceptor.setApplicationEventPublisher(ctx);
|
interceptor.setApplicationEventPublisher(ctx);
|
||||||
interceptor.afterPropertiesSet();
|
interceptor.afterPropertiesSet();
|
||||||
|
|
||||||
invocation.proceed();
|
expect(invocation.proceed()).andReturn(new Object());
|
||||||
invCtrl.setReturnValue(new Object());
|
|
||||||
|
|
||||||
invocation.getThis();
|
expect(invocation.getThis()).andReturn(new Object());
|
||||||
invCtrl.setReturnValue(new Object());
|
|
||||||
ctx.publishEvent(new MyEvent(new Object()));
|
|
||||||
ctxCtrl.setDefaultMatcher(new AlwaysMatcher());
|
|
||||||
|
|
||||||
ctxCtrl.replay();
|
ctx.publishEvent(isA(MyEvent.class));
|
||||||
invCtrl.replay();
|
|
||||||
|
replay(invocation, ctx);
|
||||||
|
|
||||||
interceptor.invoke(invocation);
|
interceptor.invoke(invocation);
|
||||||
|
|
||||||
ctxCtrl.verify();
|
verify(invocation, ctx);
|
||||||
invCtrl.verify();
|
|
||||||
}
|
}
|
||||||
|
|
||||||
public void testListenerAndBroadcasterWithUnresolvableCircularReference() {
|
@Test
|
||||||
|
public void listenerAndBroadcasterWithUnresolvableCircularReference() {
|
||||||
StaticApplicationContext context = new StaticApplicationContext();
|
StaticApplicationContext context = new StaticApplicationContext();
|
||||||
context.setDisplayName("listener context");
|
context.setDisplayName("listener context");
|
||||||
context.registerBeanDefinition("broadcaster", new RootBeanDefinition(BeanThatBroadcasts.class));
|
context.registerBeanDefinition("broadcaster", new RootBeanDefinition(BeanThatBroadcasts.class));
|
||||||
|
|
@ -176,7 +162,8 @@ public class ApplicationContextEventTests extends TestCase {
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
public void testListenerAndBroadcasterWithResolvableCircularReference() {
|
@Test
|
||||||
|
public void listenerAndBroadcasterWithResolvableCircularReference() {
|
||||||
StaticApplicationContext context = new StaticApplicationContext();
|
StaticApplicationContext context = new StaticApplicationContext();
|
||||||
context.registerBeanDefinition("broadcaster", new RootBeanDefinition(BeanThatBroadcasts.class));
|
context.registerBeanDefinition("broadcaster", new RootBeanDefinition(BeanThatBroadcasts.class));
|
||||||
RootBeanDefinition listenerDef = new RootBeanDefinition(BeanThatListens.class);
|
RootBeanDefinition listenerDef = new RootBeanDefinition(BeanThatListens.class);
|
||||||
|
|
@ -189,7 +176,6 @@ public class ApplicationContextEventTests extends TestCase {
|
||||||
assertEquals("The event was not received by the listener", 2, broadcaster.receivedCount);
|
assertEquals("The event was not received by the listener", 2, broadcaster.receivedCount);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
public static class MyEvent extends ApplicationEvent {
|
public static class MyEvent extends ApplicationEvent {
|
||||||
|
|
||||||
public MyEvent(Object source) {
|
public MyEvent(Object source) {
|
||||||
|
|
@ -197,7 +183,6 @@ public class ApplicationContextEventTests extends TestCase {
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
private static final class NoOpApplicationListener implements ApplicationListener {
|
private static final class NoOpApplicationListener implements ApplicationListener {
|
||||||
|
|
||||||
public void onApplicationEvent(ApplicationEvent event) {
|
public void onApplicationEvent(ApplicationEvent event) {
|
||||||
|
|
|
||||||
Loading…
Reference in New Issue