Code Search for Developers
 
 
  

unit_tester.php from Brim at Krugle


Show unit_tester.php syntax highlighted

<?php
    /**
     *	base include file for SimpleTest
     *	@package	SimpleTest
     *	@subpackage	UnitTester
     *	@version	$Id: unit_tester.php 1175 2006-03-16 09:53:09Z barrel $
     */

    /**#@+
     *	include other SimpleTest class files
     */
    require_once(dirname(__FILE__) . '/test_case.php');
    require_once(dirname(__FILE__) . '/dumper.php');
    /**#@-*/

    /**
     *    Standard unit test class for day to day testing
     *    of PHP code XP style. Adds some useful standard
     *    assertions.
	 *	  @package	SimpleTest
	 *	  @subpackage	UnitTester
     */
    class UnitTestCase extends SimpleTestCase {

        /**
         *    Creates an empty test case. Should be subclassed
         *    with test methods for a functional test case.
         *    @param string $label     Name of test case. Will use
         *                             the class name if none specified.
         *    @access public
         */
        function UnitTestCase($label = false) {
            if (! $label) {
                $label = get_class($this);
            }
            $this->SimpleTestCase($label);
        }

        /**
         *    Will be true if the value is null.
         *    @param null $value       Supposedly null value.
         *    @param string $message   Message to display.
         *    @return boolean                        True on pass
         *    @access public
         */
        function assertNull($value, $message = "%s") {
            $dumper = &new SimpleDumper();
            $message = sprintf(
                    $message,
                    "[" . $dumper->describeValue($value) . "] should be null");
            return $this->assertTrue(! isset($value), $message);
        }

        /**
         *    Will be true if the value is set.
         *    @param mixed $value           Supposedly set value.
         *    @param string $message        Message to display.
         *    @return boolean               True on pass.
         *    @access public
         */
        function assertNotNull($value, $message = "%s") {
            $dumper = &new SimpleDumper();
            $message = sprintf(
                    $message,
                    "[" . $dumper->describeValue($value) . "] should not be null");
            return $this->assertTrue(isset($value), $message);
        }

        /**
         *    Type and class test. Will pass if class
         *    matches the type name or is a subclass or
         *    if not an object, but the type is correct.
         *    @param mixed $object         Object to test.
         *    @param string $type          Type name as string.
         *    @param string $message       Message to display.
         *    @return boolean              True on pass.
         *    @access public
         */
        function assertIsA($object, $type, $message = "%s") {
            return $this->assert(
                    new IsAExpectation($type),
                    $object,
                    $message);
        }

        /**
         *    Type and class mismatch test. Will pass if class
         *    name or underling type does not match the one
         *    specified.
         *    @param mixed $object         Object to test.
         *    @param string $type          Type name as string.
         *    @param string $message       Message to display.
         *    @return boolean              True on pass.
         *    @access public
         */
        function assertNotA($object, $type, $message = "%s") {
            return $this->assert(
                    new NotAExpectation($type),
                    $object,
                    $message);
        }

        /**
         *    Will trigger a pass if the two parameters have
         *    the same value only. Otherwise a fail.
         *    @param mixed $first          Value to compare.
         *    @param mixed $second         Value to compare.
         *    @param string $message       Message to display.
         *    @return boolean              True on pass
         *    @access public
         */
        function assertEqual($first, $second, $message = "%s") {
            return $this->assert(
                    new EqualExpectation($first),
                    $second,
                    $message);
        }

        /**
         *    Will trigger a pass if the two parameters have
         *    a different value. Otherwise a fail.
         *    @param mixed $first           Value to compare.
         *    @param mixed $second          Value to compare.
         *    @param string $message        Message to display.
         *    @return boolean               True on pass
         *    @access public
         */
        function assertNotEqual($first, $second, $message = "%s") {
            return $this->assert(
                    new NotEqualExpectation($first),
                    $second,
                    $message);
        }

        /**
         *    Will trigger a pass if the if the first parameter
         *    is near enough to the second by the margin.
         *    @param mixed $first          Value to compare.
         *    @param mixed $second         Value to compare.
         *    @param mixed $margin         Fuzziness of match.
         *    @param string $message       Message to display.
         *    @return boolean              True on pass
         *    @access public
         */
        function assertWithinMargin($first, $second, $margin, $message = "%s") {
            return $this->assert(
                    new WithinMarginExpectation($first, $margin),
                    $second,
                    $message);
        }

        /**
         *    Will trigger a pass if the two parameters differ
         *    by more than the margin.
         *    @param mixed $first          Value to compare.
         *    @param mixed $second         Value to compare.
         *    @param mixed $margin         Fuzziness of match.
         *    @param string $message       Message to display.
         *    @return boolean              True on pass
         *    @access public
         */
        function assertOutsideMargin($first, $second, $margin, $message = "%s") {
            return $this->assert(
                    new OutsideMarginExpectation($first, $margin),
                    $second,
                    $message);
        }

        /**
         *    Will trigger a pass if the two parameters have
         *    the same value and same type. Otherwise a fail.
         *    @param mixed $first           Value to compare.
         *    @param mixed $second          Value to compare.
         *    @param string $message        Message to display.
         *    @return boolean               True on pass
         *    @access public
         */
        function assertIdentical($first, $second, $message = "%s") {
            return $this->assert(
                    new IdenticalExpectation($first),
                    $second,
                    $message);
        }

        /**
         *    Will trigger a pass if the two parameters have
         *    the different value or different type.
         *    @param mixed $first           Value to compare.
         *    @param mixed $second          Value to compare.
         *    @param string $message        Message to display.
         *    @return boolean               True on pass
         *    @access public
         */
        function assertNotIdentical($first, $second, $message = "%s") {
            return $this->assert(
                    new NotIdenticalExpectation($first),
                    $second,
                    $message);
        }

        /**
         *    Will trigger a pass if both parameters refer
         *    to the same object. Fail otherwise.
         *    @param mixed $first           Object reference to check.
         *    @param mixed $second          Hopefully the same object.
         *    @param string $message        Message to display.
         *    @return boolean               True on pass
         *    @access public
         */
        function assertReference(&$first, &$second, $message = "%s") {
            $dumper = &new SimpleDumper();
            $message = sprintf(
                    $message,
                    "[" . $dumper->describeValue($first) .
                            "] and [" . $dumper->describeValue($second) .
                            "] should reference the same object");
            return $this->assertTrue(
                    SimpleTestCompatibility::isReference($first, $second),
                    $message);
        }

        /**
         *    Will trigger a pass if both parameters refer
         *    to different objects. Fail otherwise. The objects
         *    have to be identical though.
         *    @param mixed $first           Object reference to check.
         *    @param mixed $second          Hopefully not the same object.
         *    @param string $message        Message to display.
         *    @return boolean               True on pass
         *    @access public
         */
        function assertClone(&$first, &$second, $message = "%s") {
            $dumper = &new SimpleDumper();
            $message = sprintf(
                    $message,
                    "[" . $dumper->describeValue($first) .
                            "] and [" . $dumper->describeValue($second) .
                            "] should not be the same object");
            $identical = &new IdenticalExpectation($first);
            return $this->assertTrue(
                    $identical->test($second) &&
                            ! SimpleTestCompatibility::isReference($first, $second),
                    $message);
        }

        /**
         *    @deprecated
         */
        function assertCopy(&$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->assertFalse(
                    SimpleTestCompatibility::isReference($first, $second),
                    $message);
        }

        /**
         *    Will trigger a pass if the Perl regex pattern
         *    is found in the subject. Fail otherwise.
         *    @param string $pattern    Perl regex to look for including
         *                              the regex delimiters.
         *    @param string $subject    String to search in.
         *    @param string $message    Message to display.
         *    @return boolean           True on pass
         *    @access public
         */
        function assertPattern($pattern, $subject, $message = "%s") {
            return $this->assert(
                    new PatternExpectation($pattern),
                    $subject,
                    $message);
        }

        /**
         *	  @deprecated
         */
        function assertWantedPattern($pattern, $subject, $message = "%s") {
        	return $this->assertPattern($pattern, $subject, $message);
        }

        /**
         *    Will trigger a pass if the perl regex pattern
         *    is not present in subject. Fail if found.
         *    @param string $pattern    Perl regex to look for including
         *                              the regex delimiters.
         *    @param string $subject    String to search in.
         *    @param string $message    Message to display.
         *    @return boolean           True on pass
         *    @access public
         */
        function assertNoPattern($pattern, $subject, $message = "%s") {
            return $this->assert(
                    new NoPatternExpectation($pattern),
                    $subject,
                    $message);
        }

        /**
         *	  @deprecated
         */
        function assertNoUnwantedPattern($pattern, $subject, $message = "%s") {
        	return $this->assertNoPattern($pattern, $subject, $message);
        }

        /**
         *    Confirms that no errors have occoured so
         *    far in the test method.
         *    @param string $message    Message to display.
         *    @return boolean           True on pass
         *    @access public
         */
        function assertNoErrors($message = "%s") {
            $queue = &SimpleErrorQueue::instance();
            return $this->assertTrue(
                    $queue->isEmpty(),
                    sprintf($message, "Should be no errors"));
        }

        /**
         *    Confirms that an error has occoured and
         *    optionally that the error text matches exactly.
         *    @param string $expected   Expected error text or
         *                              false for no check.
         *    @param string $message    Message to display.
         *    @return boolean           True on pass
         *    @access public
         */
        function assertError($expected = false, $message = "%s") {
            $queue = &SimpleErrorQueue::instance();
            if ($queue->isEmpty()) {
                $this->fail(sprintf($message, "Expected error not found"));
                return;
            }
            list($severity, $content, $file, $line, $globals) = $queue->extract();
            $severity = SimpleErrorQueue::getSeverityAsString($severity);
            if (! $expected) {
                return $this->pass(
                        "Captured a PHP error of [$content] severity [$severity] in [$file] line [$line] -> %s");
            }
            $expected = $this->_coerceToExpectation($expected);
            return $this->assert(
                    $expected,
                    $content,
                    "Expected PHP error [$content] severity [$severity] in [$file] line [$line] -> %s");
        }

        /**
         *    Creates an equality expectation if the
         *    object/value is not already some type
         *    of expectation.
         *    @param mixed $expected      Expected value.
         *    @return SimpleExpectation   Expectation object.
         *    @access private
         */
        function _coerceToExpectation($expected) {
            if (SimpleTestCompatibility::isA($expected, 'SimpleExpectation')) {
                return $expected;
            }
            return new EqualExpectation($expected);
        }

        /**
         *    @deprecated
         */
        function assertErrorPattern($pattern, $message = "%s") {
            return $this->assertError(new PatternExpectation($pattern), $message);
        }
    }
?>




See more files for this project here

Brim

BRIM is a MVC framework, written in PHP and based on items with a hierarchical relationship. The list of plugins make BRIM a Information Manager with plugins like bookmarks, a calendar, contacts tasks, notes, RSS etc. The application is multilingual.

Project homepage: http://sourceforge.net/projects/brim
Programming language(s): JavaScript,PHP,SQL
License: other

  extensions/
    index.php
    pear_test_case.php
    phpunit_test_case.php
  test/
    acceptance_test.php
    adapter_test.php
    all_tests.php
    authentication_test.php
    browser_test.php
    collector_test.php
    compatibility_test.php
    cookies_test.php
    detached_test.php
    dumper_test.php
    encoding_test.php
    errors_test.php
    expectation_test.php
    form_test.php
    frames_test.php
    http_test.php
    index.php
    interfaces_test.php
    live_test.php
    mock_objects_test.php
    options_test.php
    page_test.php
    parse_error_test.php
    parser_test.php
    real_sites_test.php
    reflection_php4_test.php
    remote_test.php
    shell_test.php
    shell_tester_test.php
    simple_mock_test.php
    simpletest_test.php
    socket_test.php
    tag_test.php
    test_groups.php
    test_with_parse_error.php
    unit_tester_test.php
    unit_tests.php
    url_test.php
    user_agent_test.php
    visual_test.php
    web_tester_test.php
    xml_test.php
  HELP_MY_TESTS_DONT_WORK_ANYMORE
  LICENSE
  README
  VERSION
  authentication.php
  browser.php
  collector.php
  compatibility.php
  cookies.php
  detached.php
  dumper.php
  encoding.php
  errors.php
  exceptions.php
  expectation.php
  form.php
  frames.php
  http.php
  index.php
  invoker.php
  mock_objects.php
  options.php
  page.php
  parser.php
  reflection_php4.php
  remote.php
  reporter.php
  runner.php
  scorer.php
  selector.php
  shell_tester.php
  simple_test.php
  simpletest.php
  socket.php
  tag.php
  test_case.php
  unit_tester.php
  url.php
  user_agent.php
  web_tester.php
  xml.php