Package org.codehaus.spice.netserve.connection.impl

Source Code of org.codehaus.spice.netserve.connection.impl.AvalonAcceptorMonitorTestCase

package org.codehaus.spice.netserve.connection.impl;

import java.io.IOException;
import java.net.ServerSocket;
import junit.framework.TestCase;
import org.apache.avalon.framework.logger.Logger;
import com.mockobjects.dynamic.C;
import com.mockobjects.dynamic.Mock;

public class AvalonAcceptorMonitorTestCase
   extends TestCase
{
   public void testAvalonAcceptorMonitor()
      throws Exception
   {
      final Mock mockLogger = new Mock( Logger.class );

      final String name = "MyName";
      final ServerSocket serverSocket = new ServerSocket( 2023 );
      final IOException ioe = new IOException();

      final String acceptorCreatedMessage =
         "Creating Acceptor " + name + " on " +
         serverSocket.getInetAddress().getHostAddress() + ":" +
         serverSocket.getLocalPort() + ".";

      final String acceptorClosingMessage =
         "Closing Acceptor " + name + ".";

      final String serverSocketListening =
         "About to call accept() on ServerSocket '" + name + "'.";

      final String errorAcceptingConnectionMessage =
         "Error Accepting connection on " + name;

      final String errorClosingServerSocketMessage =
         "Error Closing Server Socket " + name;

      mockLogger.expect( "info", C.args( C.eq( acceptorCreatedMessage ) ) );
      mockLogger.expect( "info", C.args( C.eq( acceptorClosingMessage ) ) );
      mockLogger.expectAndReturn( "isDebugEnabled", C.NO_ARGS, false );
      mockLogger.expectAndReturn( "isDebugEnabled", C.NO_ARGS, true );
      mockLogger.expect( "debug", C.args( C.eq( serverSocketListening ) ) );
      mockLogger.expect( "warn", C.args( C.eq( errorAcceptingConnectionMessage ), C.eq( ioe ) ) );
      mockLogger.expect( "warn", C.args( C.eq( errorClosingServerSocketMessage ), C.eq( ioe ) ) );
      final Logger logger = (Logger) mockLogger.proxy();

      final AcceptorMonitor monitor = new AvalonAcceptorMonitor( logger );
      monitor.acceptorCreated( name, serverSocket );
      monitor.acceptorClosing( name, serverSocket );
      monitor.serverSocketListening( name, serverSocket );
      monitor.serverSocketListening( name, serverSocket );
      monitor.errorAcceptingConnection( name, ioe );
      monitor.errorClosingServerSocket( name, ioe );

      mockLogger.verify();
   }

   public void testAvalonAcceptorMonitorPassedNullIntoCtor()
      throws Exception
   {
      try
      {
         new AvalonAcceptorMonitor( null );
      }
      catch ( final NullPointerException npe )
      {
         assertEquals( "npe.getMessage()", "logger", npe.getMessage() );
         return;
      }
      fail( "Expected to fail due to npe in ctor" );
   }
}
TOP

Related Classes of org.codehaus.spice.netserve.connection.impl.AvalonAcceptorMonitorTestCase

TOP
Copyright © 2018 www.massapi.com. All rights reserved.
All source code are property of their respective owners. Java is a trademark of Sun Microsystems, Inc and owned by ORACLE Inc. Contact coftware#gmail.com.