public function testGetExpectedException() { $this->assertEquals(array('class' => 'FooBarBaz', 'code' => 0, 'message' => ''), PHPUnit_Util_Test::getExpectedException('ExceptionTest', 'testOne')); $this->assertEquals(array('class' => 'Foo_Bar_Baz', 'code' => 0, 'message' => ''), PHPUnit_Util_Test::getExpectedException('ExceptionTest', 'testTwo')); $this->assertEquals(array('class' => 'Foo\\Bar\\Baz', 'code' => 0, 'message' => ''), PHPUnit_Util_Test::getExpectedException('ExceptionTest', 'testThree')); $this->assertEquals(array('class' => 'ほげ', 'code' => 0, 'message' => ''), PHPUnit_Util_Test::getExpectedException('ExceptionTest', 'testFour')); $this->assertEquals(array('class' => 'Class', 'code' => 1234, 'message' => 'Message'), PHPUnit_Util_Test::getExpectedException('ExceptionTest', 'testFive')); $this->assertEquals(array('class' => 'Class', 'code' => 1234, 'message' => 'Message'), PHPUnit_Util_Test::getExpectedException('ExceptionTest', 'testSix')); }
public function testGetExpectedException() { $this->assertSame(array('class' => 'FooBarBaz', 'code' => NULL, 'message' => ''), PHPUnit_Util_Test::getExpectedException('ExceptionTest', 'testOne')); $this->assertSame(array('class' => 'Foo_Bar_Baz', 'code' => NULL, 'message' => ''), PHPUnit_Util_Test::getExpectedException('ExceptionTest', 'testTwo')); $this->assertSame(array('class' => 'Foo\\Bar\\Baz', 'code' => NULL, 'message' => ''), PHPUnit_Util_Test::getExpectedException('ExceptionTest', 'testThree')); $this->assertSame(array('class' => 'ほげ', 'code' => NULL, 'message' => ''), PHPUnit_Util_Test::getExpectedException('ExceptionTest', 'testFour')); $this->assertSame(array('class' => 'Class', 'code' => 1234, 'message' => 'Message'), PHPUnit_Util_Test::getExpectedException('ExceptionTest', 'testFive')); $this->assertSame(array('class' => 'Class', 'code' => 1234, 'message' => 'Message'), PHPUnit_Util_Test::getExpectedException('ExceptionTest', 'testSix')); $this->assertSame(array('class' => 'Class', 'code' => 'ExceptionCode', 'message' => 'Message'), PHPUnit_Util_Test::getExpectedException('ExceptionTest', 'testSeven')); $this->assertSame(array('class' => 'Class', 'code' => 0, 'message' => 'Message'), PHPUnit_Util_Test::getExpectedException('ExceptionTest', 'testEight')); $this->assertSame(array('class' => 'Class', 'code' => ExceptionTest::ERROR_CODE, 'message' => ExceptionTest::ERROR_MESSAGE), PHPUnit_Util_Test::getExpectedException('ExceptionTest', 'testNine')); $this->assertSame(array('class' => 'Class', 'code' => My\Space\ExceptionNamespaceTest::ERROR_CODE, 'message' => My\Space\ExceptionNamespaceTest::ERROR_MESSAGE), PHPUnit_Util_Test::getExpectedException('My\\Space\\ExceptionNamespaceTest', 'testConstants')); // Ensure the Class::CONST expression is only evaluated when the constant really exists $this->assertSame(array('class' => 'Class', 'code' => 'ExceptionTest::UNKNOWN_CODE_CONSTANT', 'message' => 'ExceptionTest::UNKNOWN_MESSAGE_CONSTANT'), PHPUnit_Util_Test::getExpectedException('ExceptionTest', 'testUnknownConstants')); $this->assertSame(array('class' => 'Class', 'code' => 'My\\Space\\ExceptionNamespaceTest::UNKNOWN_CODE_CONSTANT', 'message' => 'My\\Space\\ExceptionNamespaceTest::UNKNOWN_MESSAGE_CONSTANT'), PHPUnit_Util_Test::getExpectedException('My\\Space\\ExceptionNamespaceTest', 'testUnknownConstants')); }
/** * @since Method available since Release 3.4.0 */ protected function setExpectedExceptionFromAnnotation() { try { $expectedException = PHPUnit_Util_Test::getExpectedException(get_class($this), $this->name); if ($expectedException !== false) { $this->setExpectedException($expectedException['class'], $expectedException['message'], $expectedException['code']); if (!empty($expectedException['message_regex'])) { $this->setExpectedExceptionRegExp($expectedException['class'], $expectedException['message_regex'], $expectedException['code']); } } } catch (ReflectionException $e) { } }
/** * @since Method available since Release 3.4.0 */ protected function setExpectedExceptionFromAnnotation() { try { $method = new ReflectionMethod(get_class($this), $this->name); $methodDocComment = $method->getDocComment(); $expectedException = PHPUnit_Util_Test::getExpectedException($methodDocComment); if ($expectedException !== FALSE) { $this->setExpectedException($expectedException['class'], $expectedException['message'], $expectedException['code']); } } catch (ReflectionException $e) { } }
public function testGetExpectedException() { $this->assertEquals(array('class' => 'FooBarBaz', 'code' => 0, 'message' => ''), PHPUnit_Util_Test::getExpectedException('@expectedException FooBarBaz')); $this->assertEquals(array('class' => 'Foo_Bar_Baz', 'code' => 0, 'message' => ''), PHPUnit_Util_Test::getExpectedException('@expectedException Foo_Bar_Baz')); $this->assertEquals(array('class' => 'Foo\\Bar\\Baz', 'code' => 0, 'message' => ''), PHPUnit_Util_Test::getExpectedException('@expectedException Foo\\Bar\\Baz')); }
/** * @covers PHPUnit_Util_Test::getExpectedException */ public function testGetExpectedRegExp() { $this->assertArraySubset(array('message_regex' => '#regex#'), PHPUnit_Util_Test::getExpectedException('ExceptionTest', 'testWithRegexMessage')); $this->assertArraySubset(array('message_regex' => '#regex#'), PHPUnit_Util_Test::getExpectedException('ExceptionTest', 'testWithRegexMessageFromClassConstant')); $this->assertArraySubset(array('message_regex' => 'ExceptionTest::UNKNOWN_MESSAGE_REGEX_CONSTANT'), PHPUnit_Util_Test::getExpectedException('ExceptionTest', 'testWithUnknowRegexMessageFromClassConstant')); }
/** * @param ReflectionClass $theClass * @param string $name * @param array $classGroups * @return PHPUnit_Framework_Test */ public static function createTest(ReflectionClass $theClass, $name, array $classGroups = array()) { $className = $theClass->getName(); $method = new ReflectionMethod($className, $name); $methodDocComment = $method->getDocComment(); if (!$theClass->isInstantiable()) { return self::warning(sprintf('Cannot instantiate class "%s".', $className)); } $constructor = $theClass->getConstructor(); $expectedException = PHPUnit_Util_Test::getExpectedException($methodDocComment); if ($constructor !== NULL) { $parameters = $constructor->getParameters(); // TestCase() or TestCase($name) if (count($parameters) < 2) { $test = new $className(); } else { $data = PHPUnit_Util_Test::getProvidedData($className, $name, $methodDocComment); $groups = PHPUnit_Util_Test::getGroups($methodDocComment, $classGroups); if (is_array($data) || $data instanceof Iterator) { $test = new PHPUnit_Framework_TestSuite($className . '::' . $name); foreach ($data as $_dataName => $_data) { $_test = new $className($name, $_data, $_dataName); if ($_test instanceof PHPUnit_Framework_TestCase && isset($expectedException)) { $_test->setExpectedException($expectedException['class'], $expectedException['message'], $expectedException['code']); } $test->addTest($_test, $groups); } } else { $test = new $className(); } } } if ($test instanceof PHPUnit_Framework_TestCase) { $test->setName($name); if (isset($expectedException)) { $test->setExpectedException($expectedException['class'], $expectedException['message'], $expectedException['code']); } } return $test; }
/** * @since Method available since Release 3.4.0 * @param $class * @param $methodName * @return \Exception | null */ protected static function getExpectedExceptionFromAnnotation($class, $methodName) { try { return \PHPUnit_Util_Test::getExpectedException(get_class($class), $methodName); } catch (\ReflectionException $e) { } return null; }
/** * @since Method available since Release 3.4.0 */ protected function setExpectedExceptionFromAnnotation() { try { $expectedException = PHPUnit_Util_Test::getExpectedException(get_class($this), $this->name); if ($expectedException !== false) { $this->expectException($expectedException['class']); if ($expectedException['code'] !== null) { $this->expectExceptionCode($expectedException['code']); } if ($expectedException['message'] !== '') { $this->expectExceptionMessage($expectedException['message']); } elseif ($expectedException['message_regex'] !== '') { $this->expectExceptionMessageRegExp($expectedException['message_regex']); } } } catch (ReflectionException $e) { } }