annotate vendor/theseer/tokenizer/tests/TokenCollectionTest.php @ 19:fa3358dc1485 tip

Add ndrum files
author Chris Cannam
date Wed, 28 Aug 2019 13:14:47 +0100
parents 1fec387a4317
children
rev   line source
Chris@14 1 <?php declare(strict_types = 1);
Chris@14 2 namespace TheSeer\Tokenizer;
Chris@14 3
Chris@14 4 use PHPUnit\Framework\TestCase;
Chris@14 5
Chris@14 6 /**
Chris@14 7 * @covers \TheSeer\Tokenizer\TokenCollection
Chris@14 8 */
Chris@14 9 class TokenCollectionTest extends TestCase {
Chris@14 10
Chris@14 11 /** @var TokenCollection */
Chris@14 12 private $collection;
Chris@14 13
Chris@14 14 protected function setUp() {
Chris@14 15 $this->collection = new TokenCollection();
Chris@14 16 }
Chris@14 17
Chris@14 18 public function testCollectionIsInitiallyEmpty() {
Chris@14 19 $this->assertCount(0, $this->collection);
Chris@14 20 }
Chris@14 21
Chris@14 22 public function testTokenCanBeAddedToCollection() {
Chris@14 23 $token = $this->createMock(Token::class);
Chris@14 24 $this->collection->addToken($token);
Chris@14 25
Chris@14 26 $this->assertCount(1, $this->collection);
Chris@14 27 $this->assertSame($token, $this->collection[0]);
Chris@14 28 }
Chris@14 29
Chris@14 30 public function testCanIterateOverTokens() {
Chris@14 31 $token = $this->createMock(Token::class);
Chris@14 32 $this->collection->addToken($token);
Chris@14 33 $this->collection->addToken($token);
Chris@14 34
Chris@14 35 foreach($this->collection as $position => $current) {
Chris@14 36 $this->assertInternalType('integer', $position);
Chris@14 37 $this->assertSame($token, $current);
Chris@14 38 }
Chris@14 39 }
Chris@14 40
Chris@14 41 public function testOffsetCanBeUnset() {
Chris@14 42 $token = $this->createMock(Token::class);
Chris@14 43 $this->collection->addToken($token);
Chris@14 44
Chris@14 45 $this->assertCount(1, $this->collection);
Chris@14 46 unset($this->collection[0]);
Chris@14 47 $this->assertCount(0, $this->collection);
Chris@14 48 }
Chris@14 49
Chris@14 50 public function testTokenCanBeSetViaOffsetPosition() {
Chris@14 51 $token = $this->createMock(Token::class);
Chris@14 52 $this->collection[0] = $token;
Chris@14 53 $this->assertCount(1, $this->collection);
Chris@14 54 $this->assertSame($token, $this->collection[0]);
Chris@14 55 }
Chris@14 56
Chris@14 57 public function testTryingToUseNonIntegerOffsetThrowsException() {
Chris@14 58 $this->expectException(TokenCollectionException::class);
Chris@14 59 $this->collection['foo'] = $this->createMock(Token::class);
Chris@14 60 }
Chris@14 61
Chris@14 62 public function testTryingToSetNonTokenAtOffsetThrowsException() {
Chris@14 63 $this->expectException(TokenCollectionException::class);
Chris@14 64 $this->collection[0] = 'abc';
Chris@14 65 }
Chris@14 66
Chris@14 67 public function testTryingToGetTokenAtNonExistingOffsetThrowsException() {
Chris@14 68 $this->expectException(TokenCollectionException::class);
Chris@14 69 $x = $this->collection[3];
Chris@14 70 }
Chris@14 71
Chris@14 72 }