123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253 |
- <?php
- /**
- * This file is part of phpDocumentor.
- *
- * For the full copyright and license information, please view the LICENSE
- * file that was distributed with this source code.
- *
- * @copyright 2010-2015 Mike van Riel<mike@phpdoc.org>
- * @license http://www.opensource.org/licenses/mit-license.php MIT
- * @link http://phpdoc.org
- */
- namespace phpDocumentor\Reflection;
- use Mockery as m;
- use phpDocumentor\Reflection\Types\Context;
- /**
- * @coversDefaultClass phpDocumentor\Reflection\DocBlock
- * @covers ::<private>
- * @uses \Webmozart\Assert\Assert
- */
- class DocBlockTest extends \PHPUnit_Framework_TestCase
- {
- /**
- * @covers ::__construct
- * @covers ::getSummary
- *
- * @uses \phpDocumentor\Reflection\DocBlock\Description
- */
- public function testDocBlockCanHaveASummary()
- {
- $summary = 'This is a summary';
- $fixture = new DocBlock($summary);
- $this->assertSame($summary, $fixture->getSummary());
- }
- /**
- * @covers ::__construct
- *
- * @expectedException \InvalidArgumentException
- */
- public function testExceptionIsThrownIfSummaryIsNotAString()
- {
- new DocBlock([]);
- }
- /**
- * @covers ::__construct
- *
- * @expectedException \InvalidArgumentException
- */
- public function testExceptionIsThrownIfTemplateStartIsNotABoolean()
- {
- new DocBlock('', null, [], null, null, ['is not boolean']);
- }
- /**
- * @covers ::__construct
- *
- * @expectedException \InvalidArgumentException
- */
- public function testExceptionIsThrownIfTemplateEndIsNotABoolean()
- {
- new DocBlock('', null, [], null, null, false, ['is not boolean']);
- }
- /**
- * @covers ::__construct
- * @covers ::getDescription
- *
- * @uses \phpDocumentor\Reflection\DocBlock\Description
- */
- public function testDocBlockCanHaveADescription()
- {
- $description = new DocBlock\Description('');
- $fixture = new DocBlock('', $description);
- $this->assertSame($description, $fixture->getDescription());
- }
- /**
- * @covers ::__construct
- * @covers ::getTags
- *
- * @uses \phpDocumentor\Reflection\DocBlock\Description
- * @uses \phpDocumentor\Reflection\DocBlock\Tag
- */
- public function testDocBlockCanHaveTags()
- {
- $tags = [
- m::mock(DocBlock\Tag::class)
- ];
- $fixture = new DocBlock('', null, $tags);
- $this->assertSame($tags, $fixture->getTags());
- }
- /**
- * @covers ::__construct
- * @covers ::getTags
- *
- * @uses \phpDocumentor\Reflection\DocBlock\Description
- * @uses \phpDocumentor\Reflection\DocBlock\Tag
- *
- * @expectedException \InvalidArgumentException
- */
- public function testDocBlockAllowsOnlyTags()
- {
- $tags = [
- null
- ];
- $fixture = new DocBlock('', null, $tags);
- }
- /**
- * @covers ::__construct
- * @covers ::getTagsByName
- *
- * @uses \phpDocumentor\Reflection\DocBlock::getTags
- * @uses \phpDocumentor\Reflection\DocBlock\Description
- * @uses \phpDocumentor\Reflection\DocBlock\Tag
- */
- public function testFindTagsInDocBlockByName()
- {
- $tag1 = m::mock(DocBlock\Tag::class);
- $tag2 = m::mock(DocBlock\Tag::class);
- $tag3 = m::mock(DocBlock\Tag::class);
- $tags = [$tag1, $tag2, $tag3];
- $tag1->shouldReceive('getName')->andReturn('abc');
- $tag2->shouldReceive('getName')->andReturn('abcd');
- $tag3->shouldReceive('getName')->andReturn('ab');
- $fixture = new DocBlock('', null, $tags);
- $this->assertSame([$tag2], $fixture->getTagsByName('abcd'));
- $this->assertSame([], $fixture->getTagsByName('Ebcd'));
- }
- /**
- * @covers ::__construct
- * @covers ::getTagsByName
- * @uses \phpDocumentor\Reflection\DocBlock\Description
- * @expectedException \InvalidArgumentException
- */
- public function testExceptionIsThrownIfNameForTagsIsNotString()
- {
- $fixture = new DocBlock();
- $fixture->getTagsByName([]);
- }
- /**
- * @covers ::__construct
- * @covers ::hasTag
- *
- * @uses \phpDocumentor\Reflection\DocBlock::getTags
- * @uses \phpDocumentor\Reflection\DocBlock\Description
- * @uses \phpDocumentor\Reflection\DocBlock\Tag
- */
- public function testCheckIfThereAreTagsWithAGivenName()
- {
- $tag1 = m::mock(DocBlock\Tag::class);
- $tag2 = m::mock(DocBlock\Tag::class);
- $tag3 = m::mock(DocBlock\Tag::class);
- $tags = [$tag1, $tag2, $tag3];
- $tag1->shouldReceive('getName')->twice()->andReturn('abc');
- $tag2->shouldReceive('getName')->twice()->andReturn('abcd');
- $tag3->shouldReceive('getName')->once();
- $fixture = new DocBlock('', null, $tags);
- $this->assertTrue($fixture->hasTag('abcd'));
- $this->assertFalse($fixture->hasTag('Ebcd'));
- }
- /**
- * @covers ::__construct
- * @covers ::hasTag
- * @uses \phpDocumentor\Reflection\DocBlock\Description
- * @expectedException \InvalidArgumentException
- */
- public function testExceptionIsThrownIfNameForCheckingTagsIsNotString()
- {
- $fixture = new DocBlock();
- $fixture->hasTag([]);
- }
- /**
- * @covers ::__construct
- * @covers ::getContext
- *
- * @uses \phpDocumentor\Reflection\DocBlock\Description
- * @uses \phpDocumentor\Reflection\Types\Context
- */
- public function testDocBlockKnowsInWhichNamespaceItIsAndWhichAliasesThereAre()
- {
- $context = new Context('');
- $fixture = new DocBlock('', null, [], $context);
- $this->assertSame($context, $fixture->getContext());
- }
- /**
- * @covers ::__construct
- * @covers ::getLocation
- *
- * @uses \phpDocumentor\Reflection\DocBlock\Description
- * @uses \phpDocumentor\Reflection\Location
- */
- public function testDocBlockKnowsAtWhichLineItIs()
- {
- $location = new Location(10);
- $fixture = new DocBlock('', null, [], null, $location);
- $this->assertSame($location, $fixture->getLocation());
- }
- /**
- * @covers ::__construct
- * @covers ::isTemplateStart
- *
- * @uses \phpDocumentor\Reflection\DocBlock\Description
- */
- public function testDocBlockKnowsIfItIsTheStartOfADocBlockTemplate()
- {
- $fixture = new DocBlock('', null, [], null, null, true);
- $this->assertTrue($fixture->isTemplateStart());
- }
- /**
- * @covers ::__construct
- * @covers ::isTemplateEnd
- *
- * @uses \phpDocumentor\Reflection\DocBlock\Description
- */
- public function testDocBlockKnowsIfItIsTheEndOfADocBlockTemplate()
- {
- $fixture = new DocBlock('', null, [], null, null, false, true);
- $this->assertTrue($fixture->isTemplateEnd());
- }
- }
|