sonarrradarrplexorganizrnginxdashboardhtpcserverhomepagesabnzbdheimdallembycouchpotatonzbgetbookmarkapplication-dashboardmuximuxlandingpagestartpagelanding
		
		
		
		
			You can not select more than 25 topics
			Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
		
		
		
		
		
			
		
			
				
					
					
						
							114 lines
						
					
					
						
							3.4 KiB
						
					
					
				
			
		
		
		
			
			
			
				
					
				
				
					
				
			
		
		
	
	
							114 lines
						
					
					
						
							3.4 KiB
						
					
					
				
								<?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'],
							 | 
						|
								        ];
							 | 
						|
								    }
							 | 
						|
								}
							 | 
						|
								
							 |