1 package org.codehaus.spice.netserve.connection.impl; 2 3 import java.io.IOException ; 4 import java.net.ServerSocket ; 5 import junit.framework.TestCase; 6 import org.apache.avalon.framework.logger.Logger; 7 import com.mockobjects.dynamic.C; 8 import com.mockobjects.dynamic.Mock; 9 10 public class AvalonAcceptorMonitorTestCase 11 extends TestCase 12 { 13 public void testAvalonAcceptorMonitor() 14 throws Exception 15 { 16 final Mock mockLogger = new Mock( Logger.class ); 17 18 final String name = "MyName"; 19 final ServerSocket serverSocket = new ServerSocket ( 2023 ); 20 final IOException ioe = new IOException (); 21 22 final String acceptorCreatedMessage = 23 "Creating Acceptor " + name + " on " + 24 serverSocket.getInetAddress().getHostAddress() + ":" + 25 serverSocket.getLocalPort() + "."; 26 27 final String acceptorClosingMessage = 28 "Closing Acceptor " + name + "."; 29 30 final String serverSocketListening = 31 "About to call accept() on ServerSocket '" + name + "'."; 32 33 final String errorAcceptingConnectionMessage = 34 "Error Accepting connection on " + name; 35 36 final String errorClosingServerSocketMessage = 37 "Error Closing Server Socket " + name; 38 39 mockLogger.expect( "info", C.args( C.eq( acceptorCreatedMessage ) ) ); 40 mockLogger.expect( "info", C.args( C.eq( acceptorClosingMessage ) ) ); 41 mockLogger.expectAndReturn( "isDebugEnabled", C.NO_ARGS, false ); 42 mockLogger.expectAndReturn( "isDebugEnabled", C.NO_ARGS, true ); 43 mockLogger.expect( "debug", C.args( C.eq( serverSocketListening ) ) ); 44 mockLogger.expect( "warn", C.args( C.eq( errorAcceptingConnectionMessage ), C.eq( ioe ) ) ); 45 mockLogger.expect( "warn", C.args( C.eq( errorClosingServerSocketMessage ), C.eq( ioe ) ) ); 46 final Logger logger = (Logger) mockLogger.proxy(); 47 48 final AcceptorMonitor monitor = new AvalonAcceptorMonitor( logger ); 49 monitor.acceptorCreated( name, serverSocket ); 50 monitor.acceptorClosing( name, serverSocket ); 51 monitor.serverSocketListening( name, serverSocket ); 52 monitor.serverSocketListening( name, serverSocket ); 53 monitor.errorAcceptingConnection( name, ioe ); 54 monitor.errorClosingServerSocket( name, ioe ); 55 56 mockLogger.verify(); 57 } 58 59 public void testAvalonAcceptorMonitorPassedNullIntoCtor() 60 throws Exception 61 { 62 try 63 { 64 new AvalonAcceptorMonitor( null ); 65 } 66 catch ( final NullPointerException npe ) 67 { 68 assertEquals( "npe.getMessage()", "logger", npe.getMessage() ); 69 return; 70 } 71 fail( "Expected to fail due to npe in ctor" ); 72 } 73 } 74 | Popular Tags |