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:
Arjen Poutsma 2008-10-31 09:46:08 +00:00
parent 488d109d9d
commit 94b3fecb9f
1 changed files with 42 additions and 57 deletions

View File

@ -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) {