Add assertions to DocBlock

This commit is contained in:
Mike van Riel
2015-06-13 18:41:45 +02:00
committed by Mike van Riel
parent 57c78b2c8b
commit ab3ebf467c
2 changed files with 64 additions and 0 deletions
+9
View File
@@ -14,6 +14,7 @@ namespace phpDocumentor\Reflection;
use phpDocumentor\Reflection\DocBlock\Tag;
use phpDocumentor\Reflection\Types\Context;
use Webmozart\Assert\Assert;
final class DocBlock
{
@@ -57,6 +58,10 @@ final class DocBlock
$isTemplateEnd = false
)
{
Assert::string($summary);
Assert::boolean($isTemplateStart);
Assert::boolean($isTemplateEnd);
$this->summary = $summary;
$this->description = $description ?: new DocBlock\Description('');
foreach ($tags as $tag) {
@@ -164,6 +169,8 @@ final class DocBlock
*/
public function getTagsByName($name)
{
Assert::string($name);
$result = array();
/** @var Tag $tag */
@@ -187,6 +194,8 @@ final class DocBlock
*/
public function hasTag($name)
{
Assert::string($name);
/** @var Tag $tag */
foreach ($this->getTags() as $tag) {
if ($tag->getName() == $name) {
+55
View File
@@ -18,6 +18,7 @@ use phpDocumentor\Reflection\Types\Context;
/**
* @coversDefaultClass phpDocumentor\Reflection\DocBlock
* @covers ::<private>
* @uses \Webmozart\Assert\Assert
*/
class DocBlockTest extends \PHPUnit_Framework_TestCase
{
@@ -36,6 +37,36 @@ class DocBlockTest extends \PHPUnit_Framework_TestCase
$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
@@ -94,6 +125,18 @@ class DocBlockTest extends \PHPUnit_Framework_TestCase
$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
@@ -119,6 +162,18 @@ class DocBlockTest extends \PHPUnit_Framework_TestCase
$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