<?php
require_once dirname(__DIR__) . DIRECTORY_SEPARATOR . '_files' . DIRECTORY_SEPARATOR . 'ExceptionTest.php';
require_once dirname(__DIR__) . DIRECTORY_SEPARATOR . '_files' . DIRECTORY_SEPARATOR . 'ExceptionNamespaceTest.php';
require_once dirname(__DIR__) . DIRECTORY_SEPARATOR . '_files' . DIRECTORY_SEPARATOR . 'RequirementsTest.php';
require_once dirname(__DIR__) . DIRECTORY_SEPARATOR . '_files' . DIRECTORY_SEPARATOR . 'RequirementsClassDocBlockTest.php';
class Util_TestTest extends PHPUnit_Framework_TestCase {
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' => NULL,
'message' => '',
), PHPUnit_Util_Test::getExpectedException('ExceptionTest', 'testSingleLine'));
$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'));
$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'));
}
public function provideRequirements() {
return array(
array(
'testOne',
array(),
),
array(
'testTwo',
array(
'PHPUnit' => '1.0',
),
),
array(
'testThree',
array(
'PHP' => '2.0',
),
),
array(
'testFour',
array(
'PHPUnit' => '2.0',
'PHP' => '1.0',
),
),
array(
'testFive',
array(
'PHP' => '5.4.0RC6',
),
),
array(
'testSix',
array(
'PHP' => '5.4.0-alpha1',
),
),
array(
'testSeven',
array(
'PHP' => '5.4.0beta2',
),
),
array(
'testEight',
array(
'PHP' => '5.4-dev',
),
),
array(
'testNine',
array(
'functions' => array(
'testFunc',
),
),
),
array(
'testTen',
array(
'extensions' => array(
'testExt',
),
),
),
array(
'testAllPossibleRequirements',
array(
'PHP' => '99-dev',
'PHPUnit' => '9-dev',
'functions' => array(
'testFuncOne',
'testFuncTwo',
),
'extensions' => array(
'testExtOne',
'testExtTwo',
),
),
),
);
}
public function testGetRequirements($test, $result) {
$this
->assertEquals($result, PHPUnit_Util_Test::getRequirements('RequirementsTest', $test));
}
public function testGetRequirementsMergesClassAndMethodDocBlocks() {
$expectedAnnotations = array(
'PHP' => '5.4',
'PHPUnit' => '3.7',
'functions' => array(
'testFuncClass',
'testFuncMethod',
),
'extensions' => array(
'testExtClass',
'testExtMethod',
),
);
$this
->assertEquals($expectedAnnotations, PHPUnit_Util_Test::getRequirements('RequirementsClassDocBlockTest', 'testMethod'));
}
public function testGetProvidedDataRegEx() {
$result = preg_match(PHPUnit_Util_Test::REGEX_DATA_PROVIDER, '@dataProvider method', $matches);
$this
->assertEquals(1, $result);
$this
->assertEquals('method', $matches[1]);
$result = preg_match(PHPUnit_Util_Test::REGEX_DATA_PROVIDER, '@dataProvider class::method', $matches);
$this
->assertEquals(1, $result);
$this
->assertEquals('class::method', $matches[1]);
$result = preg_match(PHPUnit_Util_Test::REGEX_DATA_PROVIDER, '@dataProvider namespace\\class::method', $matches);
$this
->assertEquals(1, $result);
$this
->assertEquals('namespace\\class::method', $matches[1]);
$result = preg_match(PHPUnit_Util_Test::REGEX_DATA_PROVIDER, '@dataProvider namespace\\namespace\\class::method', $matches);
$this
->assertEquals(1, $result);
$this
->assertEquals('namespace\\namespace\\class::method', $matches[1]);
$result = preg_match(PHPUnit_Util_Test::REGEX_DATA_PROVIDER, '@dataProvider メソッド', $matches);
$this
->assertEquals(1, $result);
$this
->assertEquals('メソッド', $matches[1]);
}
public function testParseAnnotation() {
$this
->assertEquals(array(
'Foo',
'ほげ',
), PHPUnit_Util_Test::getDependencies(get_class($this), 'methodForTestParseAnnotation'));
}
public function methodForTestParseAnnotation() {
}
public function testParseAnnotationThatIsOnlyOneLine() {
$this
->assertEquals(array(
'Bar',
), PHPUnit_Util_Test::getDependencies(get_class($this), 'methodForTestParseAnnotationThatIsOnlyOneLine'));
}
public function methodForTestParseAnnotationThatIsOnlyOneLine() {
}
}