View Javadoc

1   /*
2    * $Id$
3    * --------------------------------------------------------------------------------------
4    * Copyright (c) MuleSource, Inc.  All rights reserved.  http://www.mulesource.com
5    *
6    * The software in this package is published under the terms of the CPAL v1.0
7    * license, a copy of which has been included with this distribution in the
8    * LICENSE.txt file.
9    */
10  
11  package org.mule.tck;
12  
13  
14  /**
15   * Extend this class instead of FunctionalTestCase to add dynamic port support to
16   * your tests. The test will need to only implement 'getNumPortsToFind' to tell this
17   * class how many free test ports to find.
18   */
19  public abstract class DynamicPortTestCase extends FunctionalTestCase
20  {
21      protected abstract int getNumPortsToFind();
22  
23      public DynamicPortTestCase()
24      {
25          super();
26          
27          // each test class sets the number of free ports to find 
28          numPorts = getNumPortsToFind();
29      }
30  
31      @Override
32      protected void doSetUp() throws Exception
33      {
34          super.doSetUp();
35          // see if the ports are available, tests should fail if they are not
36          //checkPorts(false, "SETUP");
37      }
38  
39      @Override
40      protected void doTearDown() throws Exception
41      {
42          super.doTearDown();
43          // make sure that the ports have been freed. It's not a fatal error, but we
44          // want to track down why it's not being released
45          checkPorts(false, "TEARDOWN");
46          
47          //find a new set of ports so the next test does not fail, regardless of the current ports not being available
48          //ports = findFreePorts(getNumPortsToFind());
49          // this will propagate to the mule configuration
50          //setPortProperties();        
51      }
52  }