1   /*
2    * Copyright (C) The Spice Group. All rights reserved.
3    *
4    * This software is published under the terms of the Spice
5    * Software License version 1.1, a copy of which has been included
6    * with this distribution in the LICENSE.txt file.
7    */
8   package org.codehaus.spice.netserve.connection.handlers;
9   
10  import com.mockobjects.dynamic.C;
11  import com.mockobjects.dynamic.Mock;
12  import java.net.Socket;
13  import junit.framework.TestCase;
14  import org.codehaus.spice.netserve.connection.RequestHandler;
15  
16  /***
17   *
18   * @author Peter Donald
19   * @version $Revision: 1.2 $ $Date: 2004/03/21 23:42:59 $
20   */
21  public class ManagedRequestHandlerTestCase
22      extends TestCase
23  {
24      public void testManagedRequestHandler()
25          throws Exception
26      {
27          final Mock mockHandler = new Mock( RequestHandler.class );
28          final Socket socket = new Socket();
29          mockHandler.expect( "handleConnection", C.args( C.eq( socket ) ) );
30          final RequestHandler handler = (RequestHandler)mockHandler.proxy();
31  
32          final Mock mockManager = new Mock( RequestManager.class );
33          mockManager.expectAndReturn( "aquireHandler",
34                                       C.args( C.isA( Socket.class ) ),
35                                       handler );
36          mockManager.expect( "releaseHandler",
37                              C.args( C.eq( handler ) ) );
38  
39          final RequestManager manager = (RequestManager)mockManager.proxy();
40  
41          final MockManagedRequestHandler managedHandler =
42              new MockManagedRequestHandler( manager );
43          managedHandler.handleConnection( socket );
44  
45          mockManager.verify();
46          mockHandler.verify();
47      }
48  }