You can not select more than 25 topics
			Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
		
		
		
		
			
				
					139 lines
				
				3.5 KiB
			
		
		
			
		
	
	
					139 lines
				
				3.5 KiB
			| 
								 
											14 years ago
										 
									 | 
							
								<?php
							 | 
						||
| 
								 | 
							
								/**
							 | 
						||
| 
								 | 
							
								 *  Base include file for SimpleTest
							 | 
						||
| 
								 | 
							
								 *  @package    SimpleTest
							 | 
						||
| 
								 | 
							
								 *  @subpackage UnitTester
							 | 
						||
| 
								 | 
							
								 *  @version    $Id: invoker.php 1722 2008-04-07 19:30:56Z lastcraft $
							 | 
						||
| 
								 | 
							
								 */
							 | 
						||
| 
								 | 
							
								
							 | 
						||
| 
								 | 
							
								/**#@+
							 | 
						||
| 
								 | 
							
								 * Includes SimpleTest files and defined the root constant
							 | 
						||
| 
								 | 
							
								 * for dependent libraries.
							 | 
						||
| 
								 | 
							
								 */
							 | 
						||
| 
								 | 
							
								require_once(dirname(__FILE__) . '/errors.php');
							 | 
						||
| 
								 | 
							
								require_once(dirname(__FILE__) . '/compatibility.php');
							 | 
						||
| 
								 | 
							
								require_once(dirname(__FILE__) . '/scorer.php');
							 | 
						||
| 
								 | 
							
								require_once(dirname(__FILE__) . '/expectation.php');
							 | 
						||
| 
								 | 
							
								require_once(dirname(__FILE__) . '/dumper.php');
							 | 
						||
| 
								 | 
							
								if (! defined('SIMPLE_TEST')) {
							 | 
						||
| 
								 | 
							
								    define('SIMPLE_TEST', dirname(__FILE__) . '/');
							 | 
						||
| 
								 | 
							
								}
							 | 
						||
| 
								 | 
							
								/**#@-*/
							 | 
						||
| 
								 | 
							
								
							 | 
						||
| 
								 | 
							
								/**
							 | 
						||
| 
								 | 
							
								 *    This is called by the class runner to run a
							 | 
						||
| 
								 | 
							
								 *    single test method. Will also run the setUp()
							 | 
						||
| 
								 | 
							
								 *    and tearDown() methods.
							 | 
						||
| 
								 | 
							
								 *    @package SimpleTest
							 | 
						||
| 
								 | 
							
								 *    @subpackage UnitTester
							 | 
						||
| 
								 | 
							
								 */
							 | 
						||
| 
								 | 
							
								class SimpleInvoker {
							 | 
						||
| 
								 | 
							
								    var $_test_case;
							 | 
						||
| 
								 | 
							
								
							 | 
						||
| 
								 | 
							
								    /**
							 | 
						||
| 
								 | 
							
								     *    Stashes the test case for later.
							 | 
						||
| 
								 | 
							
								     *    @param SimpleTestCase $test_case  Test case to run.
							 | 
						||
| 
								 | 
							
								     */
							 | 
						||
| 
								 | 
							
								    function SimpleInvoker(&$test_case) {
							 | 
						||
| 
								 | 
							
								        $this->_test_case = &$test_case;
							 | 
						||
| 
								 | 
							
								    }
							 | 
						||
| 
								 | 
							
								
							 | 
						||
| 
								 | 
							
								    /**
							 | 
						||
| 
								 | 
							
								     *    Accessor for test case being run.
							 | 
						||
| 
								 | 
							
								     *    @return SimpleTestCase    Test case.
							 | 
						||
| 
								 | 
							
								     *    @access public
							 | 
						||
| 
								 | 
							
								     */
							 | 
						||
| 
								 | 
							
								    function &getTestCase() {
							 | 
						||
| 
								 | 
							
								        return $this->_test_case;
							 | 
						||
| 
								 | 
							
								    }
							 | 
						||
| 
								 | 
							
								
							 | 
						||
| 
								 | 
							
								    /**
							 | 
						||
| 
								 | 
							
								     *    Runs test level set up. Used for changing
							 | 
						||
| 
								 | 
							
								     *    the mechanics of base test cases.
							 | 
						||
| 
								 | 
							
								     *    @param string $method    Test method to call.
							 | 
						||
| 
								 | 
							
								     *    @access public
							 | 
						||
| 
								 | 
							
								     */
							 | 
						||
| 
								 | 
							
								    function before($method) {
							 | 
						||
| 
								 | 
							
								        $this->_test_case->before($method);
							 | 
						||
| 
								 | 
							
								    }
							 | 
						||
| 
								 | 
							
								
							 | 
						||
| 
								 | 
							
								    /**
							 | 
						||
| 
								 | 
							
								     *    Invokes a test method and buffered with setUp()
							 | 
						||
| 
								 | 
							
								     *    and tearDown() calls.
							 | 
						||
| 
								 | 
							
								     *    @param string $method    Test method to call.
							 | 
						||
| 
								 | 
							
								     *    @access public
							 | 
						||
| 
								 | 
							
								     */
							 | 
						||
| 
								 | 
							
								    function invoke($method) {
							 | 
						||
| 
								 | 
							
								        $this->_test_case->setUp();
							 | 
						||
| 
								 | 
							
								        $this->_test_case->$method();
							 | 
						||
| 
								 | 
							
								        $this->_test_case->tearDown();
							 | 
						||
| 
								 | 
							
								    }
							 | 
						||
| 
								 | 
							
								
							 | 
						||
| 
								 | 
							
								    /**
							 | 
						||
| 
								 | 
							
								     *    Runs test level clean up. Used for changing
							 | 
						||
| 
								 | 
							
								     *    the mechanics of base test cases.
							 | 
						||
| 
								 | 
							
								     *    @param string $method    Test method to call.
							 | 
						||
| 
								 | 
							
								     *    @access public
							 | 
						||
| 
								 | 
							
								     */
							 | 
						||
| 
								 | 
							
								    function after($method) {
							 | 
						||
| 
								 | 
							
								        $this->_test_case->after($method);
							 | 
						||
| 
								 | 
							
								    }
							 | 
						||
| 
								 | 
							
								}
							 | 
						||
| 
								 | 
							
								
							 | 
						||
| 
								 | 
							
								/**
							 | 
						||
| 
								 | 
							
								 *    Do nothing decorator. Just passes the invocation
							 | 
						||
| 
								 | 
							
								 *    straight through.
							 | 
						||
| 
								 | 
							
								 *    @package SimpleTest
							 | 
						||
| 
								 | 
							
								 *    @subpackage UnitTester
							 | 
						||
| 
								 | 
							
								 */
							 | 
						||
| 
								 | 
							
								class SimpleInvokerDecorator {
							 | 
						||
| 
								 | 
							
								    var $_invoker;
							 | 
						||
| 
								 | 
							
								
							 | 
						||
| 
								 | 
							
								    /**
							 | 
						||
| 
								 | 
							
								     *    Stores the invoker to wrap.
							 | 
						||
| 
								 | 
							
								     *    @param SimpleInvoker $invoker  Test method runner.
							 | 
						||
| 
								 | 
							
								     */
							 | 
						||
| 
								 | 
							
								    function SimpleInvokerDecorator(&$invoker) {
							 | 
						||
| 
								 | 
							
								        $this->_invoker = &$invoker;
							 | 
						||
| 
								 | 
							
								    }
							 | 
						||
| 
								 | 
							
								
							 | 
						||
| 
								 | 
							
								    /**
							 | 
						||
| 
								 | 
							
								     *    Accessor for test case being run.
							 | 
						||
| 
								 | 
							
								     *    @return SimpleTestCase    Test case.
							 | 
						||
| 
								 | 
							
								     *    @access public
							 | 
						||
| 
								 | 
							
								     */
							 | 
						||
| 
								 | 
							
								    function &getTestCase() {
							 | 
						||
| 
								 | 
							
								        return $this->_invoker->getTestCase();
							 | 
						||
| 
								 | 
							
								    }
							 | 
						||
| 
								 | 
							
								
							 | 
						||
| 
								 | 
							
								    /**
							 | 
						||
| 
								 | 
							
								     *    Runs test level set up. Used for changing
							 | 
						||
| 
								 | 
							
								     *    the mechanics of base test cases.
							 | 
						||
| 
								 | 
							
								     *    @param string $method    Test method to call.
							 | 
						||
| 
								 | 
							
								     *    @access public
							 | 
						||
| 
								 | 
							
								     */
							 | 
						||
| 
								 | 
							
								    function before($method) {
							 | 
						||
| 
								 | 
							
								        $this->_invoker->before($method);
							 | 
						||
| 
								 | 
							
								    }
							 | 
						||
| 
								 | 
							
								
							 | 
						||
| 
								 | 
							
								    /**
							 | 
						||
| 
								 | 
							
								     *    Invokes a test method and buffered with setUp()
							 | 
						||
| 
								 | 
							
								     *    and tearDown() calls.
							 | 
						||
| 
								 | 
							
								     *    @param string $method    Test method to call.
							 | 
						||
| 
								 | 
							
								     *    @access public
							 | 
						||
| 
								 | 
							
								     */
							 | 
						||
| 
								 | 
							
								    function invoke($method) {
							 | 
						||
| 
								 | 
							
								        $this->_invoker->invoke($method);
							 | 
						||
| 
								 | 
							
								    }
							 | 
						||
| 
								 | 
							
								
							 | 
						||
| 
								 | 
							
								    /**
							 | 
						||
| 
								 | 
							
								     *    Runs test level clean up. Used for changing
							 | 
						||
| 
								 | 
							
								     *    the mechanics of base test cases.
							 | 
						||
| 
								 | 
							
								     *    @param string $method    Test method to call.
							 | 
						||
| 
								 | 
							
								     *    @access public
							 | 
						||
| 
								 | 
							
								     */
							 | 
						||
| 
								 | 
							
								    function after($method) {
							 | 
						||
| 
								 | 
							
								        $this->_invoker->after($method);
							 | 
						||
| 
								 | 
							
								    }
							 | 
						||
| 
								 | 
							
								}
							 | 
						||
| 
								 | 
							
								?>
							 |