radarrplexorganizrnginxsonarrdashboardsabnzbdheimdallembycouchpotatonzbgetbookmarkapplication-dashboardmuximuxlandingpagestartpagelandinghtpcserverhomepage
		
		
		
		
			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.
		
		
		
		
		
			
		
			
				
					
					
						
							139 lines
						
					
					
						
							3.3 KiB
						
					
					
				
			
		
		
		
			
			
			
				
					
				
				
					
				
			
		
		
	
	
							139 lines
						
					
					
						
							3.3 KiB
						
					
					
				| <?php | |
| /* | |
|  * This file is part of Object Enumerator. | |
|  * | |
|  * (c) Sebastian Bergmann <sebastian@phpunit.de> | |
|  * | |
|  * For the full copyright and license information, please view the LICENSE | |
|  * file that was distributed with this source code. | |
|  */ | |
| 
 | |
| namespace SebastianBergmann\ObjectEnumerator; | |
| 
 | |
| use SebastianBergmann\ObjectEnumerator\Fixtures\ExceptionThrower; | |
| use PHPUnit\Framework\TestCase; | |
| 
 | |
| /** | |
|  * @covers SebastianBergmann\ObjectEnumerator\Enumerator | |
|  */ | |
| class EnumeratorTest extends TestCase | |
| { | |
|     /** | |
|      * @var Enumerator | |
|      */ | |
|     private $enumerator; | |
| 
 | |
|     protected function setUp() | |
|     { | |
|         $this->enumerator = new Enumerator; | |
|     } | |
| 
 | |
|     public function testEnumeratesSingleObject() | |
|     { | |
|         $a = new \stdClass; | |
| 
 | |
|         $objects = $this->enumerator->enumerate($a); | |
| 
 | |
|         $this->assertCount(1, $objects); | |
|         $this->assertSame($a, $objects[0]); | |
|     } | |
| 
 | |
|     public function testEnumeratesArrayWithSingleObject() | |
|     { | |
|         $a = new \stdClass; | |
| 
 | |
|         $objects = $this->enumerator->enumerate([$a]); | |
| 
 | |
|         $this->assertCount(1, $objects); | |
|         $this->assertSame($a, $objects[0]); | |
|     } | |
| 
 | |
|     public function testEnumeratesArrayWithTwoReferencesToTheSameObject() | |
|     { | |
|         $a = new \stdClass; | |
| 
 | |
|         $objects = $this->enumerator->enumerate([$a, $a]); | |
| 
 | |
|         $this->assertCount(1, $objects); | |
|         $this->assertSame($a, $objects[0]); | |
|     } | |
| 
 | |
|     public function testEnumeratesArrayOfObjects() | |
|     { | |
|         $a = new \stdClass; | |
|         $b = new \stdClass; | |
| 
 | |
|         $objects = $this->enumerator->enumerate([$a, $b, null]); | |
| 
 | |
|         $this->assertCount(2, $objects); | |
|         $this->assertSame($a, $objects[0]); | |
|         $this->assertSame($b, $objects[1]); | |
|     } | |
| 
 | |
|     public function testEnumeratesObjectWithAggregatedObject() | |
|     { | |
|         $a = new \stdClass; | |
|         $b = new \stdClass; | |
| 
 | |
|         $a->b = $b; | |
|         $a->c = null; | |
| 
 | |
|         $objects = $this->enumerator->enumerate($a); | |
| 
 | |
|         $this->assertCount(2, $objects); | |
|         $this->assertSame($a, $objects[0]); | |
|         $this->assertSame($b, $objects[1]); | |
|     } | |
| 
 | |
|     public function testEnumeratesObjectWithAggregatedObjectsInArray() | |
|     { | |
|         $a = new \stdClass; | |
|         $b = new \stdClass; | |
| 
 | |
|         $a->b = [$b]; | |
| 
 | |
|         $objects = $this->enumerator->enumerate($a); | |
| 
 | |
|         $this->assertCount(2, $objects); | |
|         $this->assertSame($a, $objects[0]); | |
|         $this->assertSame($b, $objects[1]); | |
|     } | |
| 
 | |
|     public function testEnumeratesObjectsWithCyclicReferences() | |
|     { | |
|         $a = new \stdClass; | |
|         $b = new \stdClass; | |
| 
 | |
|         $a->b = $b; | |
|         $b->a = $a; | |
| 
 | |
|         $objects = $this->enumerator->enumerate([$a, $b]); | |
| 
 | |
|         $this->assertCount(2, $objects); | |
|         $this->assertSame($a, $objects[0]); | |
|         $this->assertSame($b, $objects[1]); | |
|     } | |
| 
 | |
|     public function testEnumeratesClassThatThrowsException() | |
|     { | |
|         $thrower = new ExceptionThrower(); | |
| 
 | |
|         $objects = $this->enumerator->enumerate($thrower); | |
| 
 | |
|         $this->assertSame($thrower, $objects[0]); | |
|     } | |
| 
 | |
|     public function testExceptionIsRaisedForInvalidArgument() | |
|     { | |
|         $this->expectException(InvalidArgumentException::class); | |
| 
 | |
|         $this->enumerator->enumerate(null); | |
|     } | |
| 
 | |
|     public function testExceptionIsRaisedForInvalidArgument2() | |
|     { | |
|         $this->expectException(InvalidArgumentException::class); | |
| 
 | |
|         $this->enumerator->enumerate([], ''); | |
|     } | |
| }
 | |
| 
 |