Вход Регистрация
Файл: gapps/vendor/phpdocumentor/reflection-docblock/tests/unit/DocBlockTest.php
Строк: 251
<?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 phpDocumentorReflection;

use 
Mockery as m;
use 
phpDocumentorReflectionTypesContext;

/**
 * @coversDefaultClass phpDocumentorReflectionDocBlock
 * @covers ::<private>
 * @uses WebmozartAssertAssert
 */
class DocBlockTest extends PHPUnit_Framework_TestCase
{
    
/**
     * @covers ::__construct
     * @covers ::getSummary
     *
     * @uses phpDocumentorReflectionDocBlockDescription
     */
    
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, [], nullnull, ['is not boolean']);
    }

    
/**
     * @covers ::__construct
     *
     * @expectedException InvalidArgumentException
     */
    
public function testExceptionIsThrownIfTemplateEndIsNotABoolean()
    {
        new 
DocBlock(''null, [], nullnullfalse, ['is not boolean']);
    }

    
/**
     * @covers ::__construct
     * @covers ::getDescription
     *
     * @uses phpDocumentorReflectionDocBlockDescription
     */
    
public function testDocBlockCanHaveADescription()
    {
        
$description = new DocBlockDescription('');

        
$fixture = new DocBlock(''$description);

        
$this->assertSame($description$fixture->getDescription());
    }

    
/**
     * @covers ::__construct
     * @covers ::getTags
     *
     * @uses phpDocumentorReflectionDocBlockDescription
     * @uses phpDocumentorReflectionDocBlockTag
     */
    
public function testDocBlockCanHaveTags()
    {
        
$tags = [
            
m::mock(DocBlockTag::class)
        ];

        
$fixture = new DocBlock(''null$tags);

        
$this->assertSame($tags$fixture->getTags());
    }

    
/**
     * @covers ::__construct
     * @covers ::getTags
     *
     * @uses phpDocumentorReflectionDocBlockDescription
     * @uses phpDocumentorReflectionDocBlockTag
     *
     * @expectedException InvalidArgumentException
     */
    
public function testDocBlockAllowsOnlyTags()
    {
        
$tags = [
            
null
        
];

        
$fixture = new DocBlock(''null$tags);
    }

    
/**
     * @covers ::__construct
     * @covers ::getTagsByName
     *
     * @uses phpDocumentorReflectionDocBlock::getTags
     * @uses phpDocumentorReflectionDocBlockDescription
     * @uses phpDocumentorReflectionDocBlockTag
     */
    
public function testFindTagsInDocBlockByName()
    {
        
$tag1 m::mock(DocBlockTag::class);
        
$tag2 m::mock(DocBlockTag::class);
        
$tag3 m::mock(DocBlockTag::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 phpDocumentorReflectionDocBlockDescription
     * @expectedException InvalidArgumentException
     */
    
public function testExceptionIsThrownIfNameForTagsIsNotString()
    {
        
$fixture = new DocBlock();
        
$fixture->getTagsByName([]);
    }

    
/**
     * @covers ::__construct
     * @covers ::hasTag
     *
     * @uses phpDocumentorReflectionDocBlock::getTags
     * @uses phpDocumentorReflectionDocBlockDescription
     * @uses phpDocumentorReflectionDocBlockTag
     */
    
public function testCheckIfThereAreTagsWithAGivenName()
    {
        
$tag1 m::mock(DocBlockTag::class);
        
$tag2 m::mock(DocBlockTag::class);
        
$tag3 m::mock(DocBlockTag::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 phpDocumentorReflectionDocBlockDescription
     * @expectedException InvalidArgumentException
     */
    
public function testExceptionIsThrownIfNameForCheckingTagsIsNotString()
    {
        
$fixture = new DocBlock();
        
$fixture->hasTag([]);
    }

    
/**
     * @covers ::__construct
     * @covers ::getContext
     *
     * @uses phpDocumentorReflectionDocBlockDescription
     * @uses phpDocumentorReflectionTypesContext
     */
    
public function testDocBlockKnowsInWhichNamespaceItIsAndWhichAliasesThereAre()
    {
        
$context = new Context('');

        
$fixture = new DocBlock(''null, [], $context);

        
$this->assertSame($context$fixture->getContext());
    }

    
/**
     * @covers ::__construct
     * @covers ::getLocation
     *
     * @uses phpDocumentorReflectionDocBlockDescription
     * @uses phpDocumentorReflectionLocation
     */
    
public function testDocBlockKnowsAtWhichLineItIs()
    {
        
$location = new Location(10);

        
$fixture = new DocBlock(''null, [], null$location);

        
$this->assertSame($location$fixture->getLocation());
    }

    
/**
     * @covers ::__construct
     * @covers ::isTemplateStart
     *
     * @uses phpDocumentorReflectionDocBlockDescription
     */
    
public function testDocBlockKnowsIfItIsTheStartOfADocBlockTemplate()
    {
        
$fixture = new DocBlock(''null, [], nullnulltrue);

        
$this->assertTrue($fixture->isTemplateStart());
    }

    
/**
     * @covers ::__construct
     * @covers ::isTemplateEnd
     *
     * @uses phpDocumentorReflectionDocBlockDescription
     */
    
public function testDocBlockKnowsIfItIsTheEndOfADocBlockTemplate()
    {
        
$fixture = new DocBlock(''null, [], nullnullfalsetrue);

        
$this->assertTrue($fixture->isTemplateEnd());
    }
}
Онлайн: 1
Реклама