sonarrradarrplexorganizrnginxdashboardmuximuxlandingpagestartpagelandinghtpcserverhomepagesabnzbdheimdallembycouchpotatonzbgetbookmarkapplication-dashboard
		
		
		
		
			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.
		
		
		
		
		
			
		
			
				
					
					
						
							86 lines
						
					
					
						
							2.2 KiB
						
					
					
				
			
		
		
		
			
			
			
				
					
				
				
					
				
			
		
		
	
	
							86 lines
						
					
					
						
							2.2 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\Util; | |
| 
 | |
| use Psy\Util\Mirror; | |
| 
 | |
| class MirrorTest extends \PHPUnit\Framework\TestCase | |
| { | |
|     const FOO           = 1; | |
|     private $bar        = 2; | |
|     private static $baz = 3; | |
| 
 | |
|     public function aPublicMethod() | |
|     { | |
|         // nada | |
|     } | |
| 
 | |
|     public function testMirror() | |
|     { | |
|         $refl = Mirror::get('sort'); | |
|         $this->assertInstanceOf('ReflectionFunction', $refl); | |
| 
 | |
|         $refl = Mirror::get('Psy\Test\Util\MirrorTest'); | |
|         $this->assertInstanceOf('ReflectionClass', $refl); | |
| 
 | |
|         $refl = Mirror::get($this); | |
|         $this->assertInstanceOf('ReflectionObject', $refl); | |
| 
 | |
|         $refl = Mirror::get($this, 'FOO'); | |
|         if (version_compare(PHP_VERSION, '7.1.0', '>=')) { | |
|             $this->assertInstanceOf('ReflectionClassConstant', $refl); | |
|         } else { | |
|             $this->assertInstanceOf('Psy\Reflection\ReflectionClassConstant', $refl); | |
|         } | |
| 
 | |
|         $refl = Mirror::get('PHP_VERSION'); | |
|         $this->assertInstanceOf('Psy\Reflection\ReflectionConstant_', $refl); | |
| 
 | |
|         $refl = Mirror::get($this, 'bar'); | |
|         $this->assertInstanceOf('ReflectionProperty', $refl); | |
| 
 | |
|         $refl = Mirror::get($this, 'baz'); | |
|         $this->assertInstanceOf('ReflectionProperty', $refl); | |
| 
 | |
|         $refl = Mirror::get($this, 'aPublicMethod'); | |
|         $this->assertInstanceOf('ReflectionMethod', $refl); | |
| 
 | |
|         $refl = Mirror::get($this, 'baz', Mirror::STATIC_PROPERTY); | |
|         $this->assertInstanceOf('ReflectionProperty', $refl); | |
|     } | |
| 
 | |
|     /** | |
|      * @expectedException \RuntimeException | |
|      */ | |
|     public function testMirrorThrowsExceptions() | |
|     { | |
|         Mirror::get($this, 'notAMethod'); | |
|     } | |
| 
 | |
|     /** | |
|      * @expectedException \InvalidArgumentException | |
|      * @dataProvider invalidArguments | |
|      */ | |
|     public function testMirrorThrowsInvalidArgumentExceptions($value) | |
|     { | |
|         Mirror::get($value); | |
|     } | |
| 
 | |
|     public function invalidArguments() | |
|     { | |
|         return [ | |
|             ['not_a_function_or_class'], | |
|             [[]], | |
|             [1], | |
|         ]; | |
|     } | |
| }
 | |
| 
 |