123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114 |
- <?php
- /*
- * This file is part of Psy Shell.
- *
- * (c) 2012-2018 Justin Hileman
- *
- * For the full copyright and license information, please view the LICENSE
- * file that was distributed with this source code.
- */
- namespace Psy\Test\Reflection;
- use Psy\Reflection\ReflectionConstant_;
- \define('Psy\\Test\\Reflection\\SOME_CONSTANT', 'yep');
- class ReflectionConstantTest extends \PHPUnit\Framework\TestCase
- {
- public function testConstruction()
- {
- $refl = new ReflectionConstant_('Psy\\Test\\Reflection\\SOME_CONSTANT');
- $this->assertFalse($refl->getDocComment());
- $this->assertEquals('Psy\\Test\\Reflection\\SOME_CONSTANT', $refl->getName());
- $this->assertEquals('Psy\\Test\\Reflection', $refl->getNamespaceName());
- $this->assertEquals('yep', $refl->getValue());
- $this->assertTrue($refl->inNamespace());
- $this->assertEquals('Psy\\Test\\Reflection\\SOME_CONSTANT', (string) $refl);
- $this->assertNull($refl->getFileName());
- }
- public function testBuiltInConstant()
- {
- $refl = new ReflectionConstant_('PHP_VERSION');
- $this->assertEquals('PHP_VERSION', $refl->getName());
- $this->assertEquals('PHP_VERSION', (string) $refl);
- $this->assertEquals(PHP_VERSION, $refl->getValue());
- $this->assertFalse($refl->inNamespace());
- $this->assertSame('', $refl->getNamespaceName());
- }
- /**
- * @dataProvider magicConstants
- */
- public function testIsMagicConstant($name, $is)
- {
- $this->assertEquals($is, ReflectionConstant_::isMagicConstant($name));
- }
- public function magicConstants()
- {
- return [
- ['__LINE__', true],
- ['__FILE__', true],
- ['__DIR__', true],
- ['__FUNCTION__', true],
- ['__CLASS__', true],
- ['__TRAIT__', true],
- ['__METHOD__', true],
- ['__NAMESPACE__', true],
- ['__COMPILER_HALT_OFFSET__', true],
- ['PHP_VERSION', false],
- ['PHP_EOL', false],
- ['Psy\\Test\\Reflection\\SOME_CONSTANT', false],
- ['What if it isn\'t even a valid constant name?', false],
- ];
- }
- /**
- * @expectedException \InvalidArgumentException
- */
- public function testUnknownConstantThrowsException()
- {
- new ReflectionConstant_('UNKNOWN_CONSTANT');
- }
- public function testExport()
- {
- $ret = ReflectionConstant_::export('Psy\\Test\\Reflection\\SOME_CONSTANT', true);
- $this->assertEquals($ret, 'Constant [ string Psy\\Test\\Reflection\\SOME_CONSTANT ] { yep }');
- }
- public function testExportOutput()
- {
- $this->expectOutputString("Constant [ string Psy\\Test\\Reflection\\SOME_CONSTANT ] { yep }\n");
- ReflectionConstant_::export('Psy\\Test\\Reflection\\SOME_CONSTANT', false);
- }
- public function testGetFileName()
- {
- $refl = new ReflectionConstant_('Psy\\Test\\Reflection\\SOME_CONSTANT');
- $this->assertNull($refl->getFileName());
- }
- /**
- * @expectedException \RuntimeException
- * @dataProvider notYetImplemented
- */
- public function testNotYetImplemented($method)
- {
- $refl = new ReflectionConstant_('Psy\\Test\\Reflection\\SOME_CONSTANT');
- $refl->$method();
- }
- public function notYetImplemented()
- {
- return [
- ['getStartLine'],
- ['getEndLine'],
- ];
- }
- }
|