From 55c4ac1bfe565f1ca7f537fdd8b7a201be28e581 Mon Sep 17 00:00:00 2001 From: xue <> Date: Thu, 10 Nov 2005 12:47:19 +0000 Subject: Initial import of prado framework --- tests/UnitTests/simpletest/unit_tester.php | 303 +++++++++++++++++++++++++++++ 1 file changed, 303 insertions(+) create mode 100644 tests/UnitTests/simpletest/unit_tester.php (limited to 'tests/UnitTests/simpletest/unit_tester.php') diff --git a/tests/UnitTests/simpletest/unit_tester.php b/tests/UnitTests/simpletest/unit_tester.php new file mode 100644 index 00000000..a8d4e9db --- /dev/null +++ b/tests/UnitTests/simpletest/unit_tester.php @@ -0,0 +1,303 @@ +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->assertExpectation( + 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->assertExpectation( + 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->assertExpectation( + 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->assertExpectation( + new NotEqualExpectation($first), + $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->assertExpectation( + 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->assertExpectation( + 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. + * @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 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 assertWantedPattern($pattern, $subject, $message = "%s") { + return $this->assertExpectation( + new WantedPatternExpectation($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 assertNoUnwantedPattern($pattern, $subject, $message = "%s") { + return $this->assertExpectation( + new UnwantedPatternExpectation($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); + return $this->assertTrue( + ! $expected || ($expected == $content), + "Expected [$expected] in PHP error [$content] severity [$severity] in [$file] line [$line]"); + } + + /** + * Confirms that an error has occoured and + * that the error text matches a Perl regular + * expression. + * @param string $pattern Perl regular expresion to + * match against. + * @param string $message Message to display. + * @return boolean True on pass + * @access public + */ + function assertErrorPattern($pattern, $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); + return $this->assertTrue( + (boolean)preg_match($pattern, $content), + "Expected pattern match [$pattern] in PHP error [$content] severity [$severity] in [$file] line [$line]"); + } + } +?> -- cgit v1.2.3