annotate vendor/theseer/tokenizer/tests/TokenCollectionTest.php @ 2:5311817fb629

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