Chris@14: collection = new TokenCollection(); Chris@14: } Chris@14: Chris@14: public function testCollectionIsInitiallyEmpty() { Chris@14: $this->assertCount(0, $this->collection); Chris@14: } Chris@14: Chris@14: public function testTokenCanBeAddedToCollection() { Chris@14: $token = $this->createMock(Token::class); Chris@14: $this->collection->addToken($token); Chris@14: Chris@14: $this->assertCount(1, $this->collection); Chris@14: $this->assertSame($token, $this->collection[0]); Chris@14: } Chris@14: Chris@14: public function testCanIterateOverTokens() { Chris@14: $token = $this->createMock(Token::class); Chris@14: $this->collection->addToken($token); Chris@14: $this->collection->addToken($token); Chris@14: Chris@14: foreach($this->collection as $position => $current) { Chris@14: $this->assertInternalType('integer', $position); Chris@14: $this->assertSame($token, $current); Chris@14: } Chris@14: } Chris@14: Chris@14: public function testOffsetCanBeUnset() { Chris@14: $token = $this->createMock(Token::class); Chris@14: $this->collection->addToken($token); Chris@14: Chris@14: $this->assertCount(1, $this->collection); Chris@14: unset($this->collection[0]); Chris@14: $this->assertCount(0, $this->collection); Chris@14: } Chris@14: Chris@14: public function testTokenCanBeSetViaOffsetPosition() { Chris@14: $token = $this->createMock(Token::class); Chris@14: $this->collection[0] = $token; Chris@14: $this->assertCount(1, $this->collection); Chris@14: $this->assertSame($token, $this->collection[0]); Chris@14: } Chris@14: Chris@14: public function testTryingToUseNonIntegerOffsetThrowsException() { Chris@14: $this->expectException(TokenCollectionException::class); Chris@14: $this->collection['foo'] = $this->createMock(Token::class); Chris@14: } Chris@14: Chris@14: public function testTryingToSetNonTokenAtOffsetThrowsException() { Chris@14: $this->expectException(TokenCollectionException::class); Chris@14: $this->collection[0] = 'abc'; Chris@14: } Chris@14: Chris@14: public function testTryingToGetTokenAtNonExistingOffsetThrowsException() { Chris@14: $this->expectException(TokenCollectionException::class); Chris@14: $x = $this->collection[3]; Chris@14: } Chris@14: Chris@14: }