196 lines
		
	
	
		
			6.8 KiB
		
	
	
	
		
			PHP
		
	
	
		
			Executable File
		
	
	
	
	
			
		
		
	
	
			196 lines
		
	
	
		
			6.8 KiB
		
	
	
	
		
			PHP
		
	
	
		
			Executable File
		
	
	
	
	
| <?php
 | |
|     /**
 | |
|      *	adapter for SimpleTest to use PEAR PHPUnit test cases
 | |
|      *	@package	SimpleTest
 | |
|      *	@subpackage Extensions
 | |
|      *	@version	$Id: pear_test_case.php 1836 2008-12-21 00:02:26Z edwardzyang $
 | |
|      */
 | |
|     
 | |
|     /**#@+
 | |
|      * include SimpleTest files
 | |
|      */
 | |
|     require_once(dirname(__FILE__) . '/../dumper.php');
 | |
|     require_once(dirname(__FILE__) . '/../compatibility.php');
 | |
|     require_once(dirname(__FILE__) . '/../test_case.php');
 | |
|     require_once(dirname(__FILE__) . '/../expectation.php');
 | |
| 	/**#@-*/
 | |
|    
 | |
|     /**
 | |
|      *    Adapter for PEAR PHPUnit test case to allow
 | |
|      *    legacy PEAR test cases to be used with SimpleTest.
 | |
|      *    @package      SimpleTest
 | |
|      *    @subpackage   Extensions
 | |
|      */
 | |
|     class PHPUnit_TestCase extends SimpleTestCase {
 | |
|         private $_loosely_typed;
 | |
|         
 | |
|         /**
 | |
|          *    Constructor. Sets the test name.
 | |
|          *    @param $label        Test name to display.
 | |
|          *    @public
 | |
|          */
 | |
|         function __construct($label = false) {
 | |
|             parent::__construct($label);
 | |
|             $this->_loosely_typed = false;
 | |
|         }
 | |
|         
 | |
|         /**
 | |
|          *    Will test straight equality if set to loose
 | |
|          *    typing, or identity if not.
 | |
|          *    @param $first          First value.
 | |
|          *    @param $second         Comparison value.
 | |
|          *    @param $message        Message to display.
 | |
|          *    @public
 | |
|          */
 | |
|         function assertEquals($first, $second, $message = "%s", $delta = 0) {
 | |
|             if ($this->_loosely_typed) {
 | |
|                 $expectation = new EqualExpectation($first);
 | |
|             } else {
 | |
|                 $expectation = new IdenticalExpectation($first);
 | |
|             }
 | |
|             $this->assert($expectation, $second, $message);
 | |
|         }
 | |
|         
 | |
|         /**
 | |
|          *    Passes if the value tested is not null.
 | |
|          *    @param $value          Value to test against.
 | |
|          *    @param $message        Message to display.
 | |
|          *    @public
 | |
|          */
 | |
|         function assertNotNull($value, $message = "%s") {
 | |
|             parent::assert(new TrueExpectation(), isset($value), $message);
 | |
|         }
 | |
|         
 | |
|         /**
 | |
|          *    Passes if the value tested is null.
 | |
|          *    @param $value          Value to test against.
 | |
|          *    @param $message        Message to display.
 | |
|          *    @public
 | |
|          */
 | |
|         function assertNull($value, $message = "%s") {
 | |
|             parent::assert(new TrueExpectation(), !isset($value), $message);
 | |
|         }
 | |
|         
 | |
|         /**
 | |
|          *    Identity test tests for the same object.
 | |
|          *    @param $first          First object handle.
 | |
|          *    @param $second         Hopefully the same handle.
 | |
|          *    @param $message        Message to display.
 | |
|          *    @public
 | |
|          */
 | |
|         function assertSame($first, $second, $message = "%s") {
 | |
|             $dumper = new SimpleDumper();
 | |
|             $message = sprintf(
 | |
|                     $message,
 | |
|                     "[" . $dumper->describeValue($first) .
 | |
|                             "] and [" . $dumper->describeValue($second) .
 | |
|                             "] should reference the same object");
 | |
|             return $this->assert(
 | |
| 					new TrueExpectation(),
 | |
|                     SimpleTestCompatibility::isReference($first, $second),
 | |
|                     $message);
 | |
|         }
 | |
|         
 | |
|         /**
 | |
|          *    Inverted identity test.
 | |
|          *    @param $first          First object handle.
 | |
|          *    @param $second         Hopefully a different handle.
 | |
|          *    @param $message        Message to display.
 | |
|          *    @public
 | |
|          */
 | |
|         function assertNotSame($first, $second, $message = "%s") {
 | |
|             $dumper = new SimpleDumper();
 | |
|             $message = sprintf(
 | |
|                     $message,
 | |
|                     "[" . $dumper->describeValue($first) .
 | |
|                             "] and [" . $dumper->describeValue($second) .
 | |
|                             "] should not be the same object");
 | |
|             return $this->assert(
 | |
| 					new falseExpectation(),
 | |
|                     SimpleTestCompatibility::isReference($first, $second),
 | |
|                     $message);
 | |
|         }
 | |
|         
 | |
|         /**
 | |
|          *    Sends pass if the test condition resolves true,
 | |
|          *    a fail otherwise.
 | |
|          *    @param $condition      Condition to test true.
 | |
|          *    @param $message        Message to display.
 | |
|          *    @public
 | |
|          */
 | |
|         function assertTrue($condition, $message = "%s") {
 | |
|             parent::assert(new TrueExpectation(), $condition, $message);
 | |
|         }
 | |
|         
 | |
|         /**
 | |
|          *    Sends pass if the test condition resolves false,
 | |
|          *    a fail otherwise.
 | |
|          *    @param $condition      Condition to test false.
 | |
|          *    @param $message        Message to display.
 | |
|          *    @public
 | |
|          */
 | |
|         function assertFalse($condition, $message = "%s") {
 | |
|             parent::assert(new FalseExpectation(), $condition, $message);
 | |
|         }
 | |
|         
 | |
|         /**
 | |
|          *    Tests a regex match. Needs refactoring.
 | |
|          *    @param $pattern        Regex to match.
 | |
|          *    @param $subject        String to search in.
 | |
|          *    @param $message        Message to display.
 | |
|          *    @public
 | |
|          */
 | |
|         function assertRegExp($pattern, $subject, $message = "%s") {
 | |
|             $this->assert(new PatternExpectation($pattern), $subject, $message);
 | |
|         }
 | |
|         
 | |
|         /**
 | |
|          *    Tests the type of a value.
 | |
|          *    @param $value          Value to take type of.
 | |
|          *    @param $type           Hoped for type.
 | |
|          *    @param $message        Message to display.
 | |
|          *    @public
 | |
|          */
 | |
|         function assertType($value, $type, $message = "%s") {
 | |
|             parent::assert(new TrueExpectation(), gettype($value) == strtolower($type), $message);
 | |
|         }
 | |
|         
 | |
|         /**
 | |
|          *    Sets equality operation to act as a simple equal
 | |
|          *    comparison only, allowing a broader range of
 | |
|          *    matches.
 | |
|          *    @param $loosely_typed     True for broader comparison.
 | |
|          *    @public
 | |
|          */
 | |
|         function setLooselyTyped($loosely_typed) {
 | |
|             $this->_loosely_typed = $loosely_typed;
 | |
|         }
 | |
| 
 | |
|         /**
 | |
|          *    For progress indication during
 | |
|          *    a test amongst other things.
 | |
|          *    @return            Usually one.
 | |
|          *    @public
 | |
|          */
 | |
|         function countTestCases() {
 | |
|             return $this->getSize();
 | |
|         }
 | |
|         
 | |
|         /**
 | |
|          *    Accessor for name, normally just the class
 | |
|          *    name.
 | |
|          *    @public
 | |
|          */
 | |
|         function getName() {
 | |
|             return $this->getLabel();
 | |
|         }
 | |
|         
 | |
|         /**
 | |
|          *    Does nothing. For compatibility only.
 | |
|          *    @param $name        Dummy
 | |
|          *    @public
 | |
|          */
 | |
|         function setName($name) {
 | |
|         }
 | |
|     }
 | |
| ?>
 |