001 package org.picocontainer.monitors;
002
003 import java.io.PrintStream;
004 import java.lang.reflect.Constructor;
005 import java.lang.reflect.Method;
006
007 import junit.framework.TestCase;
008
009 import org.picocontainer.ComponentMonitor;
010
011 /**
012 * @author Aslak Hellesøy
013 * @author Mauro Talevi
014 * @version $Revision: 2024 $
015 */
016 public class ConsoleComponentMonitorTestCase extends TestCase {
017 private PrintStream out;
018 private ComponentMonitor componentMonitor;
019 private Constructor constructor;
020 private Method method;
021
022 protected void setUp() throws Exception {
023 out = System.out;
024 constructor = getClass().getConstructor((Class[])null);
025 method = getClass().getDeclaredMethod("setUp", (Class[])null);
026 componentMonitor = new ConsoleComponentMonitor(out);
027 }
028
029 public void testShouldTraceInstantiating() {
030 componentMonitor.instantiating(constructor);
031 }
032
033 public void testShouldTraceInstantiated() {
034 componentMonitor.instantiated(constructor, 543);
035 }
036
037 public void testShouldTraceInstantiatedWithInjected() {
038 componentMonitor.instantiated(constructor, new Object(), new Object[0], 543);
039 }
040
041 public void testShouldTraceInstantiationFailed() {
042 componentMonitor.instantiationFailed(constructor, new RuntimeException("doh"));
043 }
044
045 public void testShouldTraceInvoking() {
046 componentMonitor.invoking(method, this);
047 }
048
049 public void testShouldTraceInvoked() {
050 componentMonitor.invoked(method, this, 543);
051 }
052
053 public void testShouldTraceInvocatiationFailed() {
054 componentMonitor.invocationFailed(method, this, new RuntimeException("doh"));
055 }
056
057 }