radarrplexorganizrnginxsonarrdashboardserverhomepagesabnzbdheimdallembycouchpotatonzbgetbookmarkapplication-dashboardmuximuxlandingpagestartpagelandinghtpc
		
		
		
		
			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.
		
		
		
		
		
			
		
			
				
					
					
						
							72 lines
						
					
					
						
							2.2 KiB
						
					
					
				
			
		
		
		
			
			
			
				
					
				
				
					
				
			
		
		
	
	
							72 lines
						
					
					
						
							2.2 KiB
						
					
					
				| <?php declare(strict_types = 1); | |
| namespace TheSeer\Tokenizer; | |
| 
 | |
| use PHPUnit\Framework\TestCase; | |
| 
 | |
| /** | |
|  * @covers \TheSeer\Tokenizer\TokenCollection | |
|  */ | |
| class TokenCollectionTest extends TestCase { | |
| 
 | |
|     /** @var  TokenCollection */ | |
|     private $collection; | |
| 
 | |
|     protected function setUp() { | |
|         $this->collection = new TokenCollection(); | |
|     } | |
| 
 | |
|     public function testCollectionIsInitiallyEmpty() { | |
|         $this->assertCount(0, $this->collection); | |
|     } | |
| 
 | |
|     public function testTokenCanBeAddedToCollection() { | |
|         $token = $this->createMock(Token::class); | |
|         $this->collection->addToken($token); | |
| 
 | |
|         $this->assertCount(1, $this->collection); | |
|         $this->assertSame($token, $this->collection[0]); | |
|     } | |
| 
 | |
|     public function testCanIterateOverTokens() { | |
|         $token = $this->createMock(Token::class); | |
|         $this->collection->addToken($token); | |
|         $this->collection->addToken($token); | |
| 
 | |
|         foreach($this->collection as $position => $current) { | |
|             $this->assertInternalType('integer', $position); | |
|             $this->assertSame($token, $current); | |
|         } | |
|     } | |
| 
 | |
|     public function testOffsetCanBeUnset() { | |
|         $token = $this->createMock(Token::class); | |
|         $this->collection->addToken($token); | |
| 
 | |
|         $this->assertCount(1, $this->collection); | |
|         unset($this->collection[0]); | |
|         $this->assertCount(0, $this->collection); | |
|     } | |
| 
 | |
|     public function testTokenCanBeSetViaOffsetPosition() { | |
|         $token = $this->createMock(Token::class); | |
|         $this->collection[0] = $token; | |
|         $this->assertCount(1, $this->collection); | |
|         $this->assertSame($token, $this->collection[0]); | |
|     } | |
| 
 | |
|     public function testTryingToUseNonIntegerOffsetThrowsException() { | |
|         $this->expectException(TokenCollectionException::class); | |
|         $this->collection['foo'] = $this->createMock(Token::class); | |
|     } | |
| 
 | |
|     public function testTryingToSetNonTokenAtOffsetThrowsException() { | |
|         $this->expectException(TokenCollectionException::class); | |
|         $this->collection[0] = 'abc'; | |
|     } | |
| 
 | |
|     public function testTryingToGetTokenAtNonExistingOffsetThrowsException() { | |
|         $this->expectException(TokenCollectionException::class); | |
|         $x = $this->collection[3]; | |
|     } | |
| 
 | |
| }
 | |
| 
 |