Apply new code style

This commit is contained in:
Jaapio
2019-09-20 10:54:12 +02:00
parent 8fcadfe5f8
commit aee984014b
71 changed files with 1661 additions and 1286 deletions
+30
View File
@@ -0,0 +1,30 @@
<?xml version="1.0"?>
<ruleset name="phpDocumentor">
<description>The coding standard for phpDocumentor.</description>
<file>src</file>
<file>tests/unit</file>
<exclude-pattern>*/tests/unit/Types/ContextFactoryTest.php</exclude-pattern>
<arg value="p"/>
<rule ref="PSR2">
<include-pattern>*\.php</include-pattern>
</rule>
<rule ref="Doctrine">
<exclude name="SlevomatCodingStandard.TypeHints.UselessConstantTypeHint.UselessDocComment" />
</rule>
<rule ref="Squiz.Classes.ValidClassName.NotCamelCaps">
<exclude-pattern>*/src/*_.php</exclude-pattern>
</rule>
<rule ref="SlevomatCodingStandard.Classes.SuperfluousAbstractClassNaming.SuperfluousPrefix">
<exclude-pattern>*/src/*/Abstract*.php</exclude-pattern>
</rule>
<rule ref="Generic.Formatting.SpaceAfterNot">
<properties>
<property name="spacing" value="0" />
</properties>
</rule>
</ruleset>
+19 -19
View File
@@ -1,4 +1,6 @@
<?php declare(strict_types=1); <?php
declare(strict_types=1);
/** /**
* This file is part of phpDocumentor. * This file is part of phpDocumentor.
@@ -6,8 +8,6 @@
* For the full copyright and license information, please view the LICENSE * For the full copyright and license information, please view the LICENSE
* file that was distributed with this source code. * file that was distributed with this source code.
* *
* @copyright 2010-2018 Mike van Riel<[email protected]>
* @license http://www.opensource.org/licenses/mit-license.php MIT
* @link http://phpdoc.org * @link http://phpdoc.org
*/ */
@@ -41,8 +41,8 @@ final class DocBlock
/** /**
* @param DocBlock\Tag[] $tags * @param DocBlock\Tag[] $tags
* @param Types\Context $context The context in which the DocBlock occurs. * @param Types\Context $context The context in which the DocBlock occurs.
* @param Location $location The location within the file that this DocBlock occurs in. * @param Location $location The location within the file that this DocBlock occurs in.
*/ */
public function __construct( public function __construct(
string $summary = '', string $summary = '',
@@ -55,25 +55,25 @@ final class DocBlock
) { ) {
Assert::allIsInstanceOf($tags, Tag::class); Assert::allIsInstanceOf($tags, Tag::class);
$this->summary = $summary; $this->summary = $summary;
$this->description = $description ?: new DocBlock\Description(''); $this->description = $description ?: new DocBlock\Description('');
foreach ($tags as $tag) { foreach ($tags as $tag) {
$this->addTag($tag); $this->addTag($tag);
} }
$this->context = $context; $this->context = $context;
$this->location = $location; $this->location = $location;
$this->isTemplateEnd = $isTemplateEnd; $this->isTemplateEnd = $isTemplateEnd;
$this->isTemplateStart = $isTemplateStart; $this->isTemplateStart = $isTemplateStart;
} }
public function getSummary(): string public function getSummary() : string
{ {
return $this->summary; return $this->summary;
} }
public function getDescription(): DocBlock\Description public function getDescription() : DocBlock\Description
{ {
return $this->description; return $this->description;
} }
@@ -81,7 +81,7 @@ final class DocBlock
/** /**
* Returns the current context. * Returns the current context.
*/ */
public function getContext(): ?Types\Context public function getContext() : ?Types\Context
{ {
return $this->context; return $this->context;
} }
@@ -89,7 +89,7 @@ final class DocBlock
/** /**
* Returns the current location. * Returns the current location.
*/ */
public function getLocation(): ?Location public function getLocation() : ?Location
{ {
return $this->location; return $this->location;
} }
@@ -113,7 +113,7 @@ final class DocBlock
* *
* @see self::isTemplateEnd() for the check whether a closing marker was provided. * @see self::isTemplateEnd() for the check whether a closing marker was provided.
*/ */
public function isTemplateStart(): bool public function isTemplateStart() : bool
{ {
return $this->isTemplateStart; return $this->isTemplateStart;
} }
@@ -123,7 +123,7 @@ final class DocBlock
* *
* @see self::isTemplateStart() for a more complete description of the Docblock Template functionality. * @see self::isTemplateStart() for a more complete description of the Docblock Template functionality.
*/ */
public function isTemplateEnd(): bool public function isTemplateEnd() : bool
{ {
return $this->isTemplateEnd; return $this->isTemplateEnd;
} }
@@ -133,7 +133,7 @@ final class DocBlock
* *
* @return Tag[] * @return Tag[]
*/ */
public function getTags(): array public function getTags() : array
{ {
return $this->tags; return $this->tags;
} }
@@ -146,7 +146,7 @@ final class DocBlock
* *
* @return Tag[] * @return Tag[]
*/ */
public function getTagsByName(string $name): array public function getTagsByName(string $name) : array
{ {
$result = []; $result = [];
@@ -167,7 +167,7 @@ final class DocBlock
* *
* @param string $name Tag name to check for. * @param string $name Tag name to check for.
*/ */
public function hasTag(string $name): bool public function hasTag(string $name) : bool
{ {
/** @var Tag $tag */ /** @var Tag $tag */
foreach ($this->getTags() as $tag) { foreach ($this->getTags() as $tag) {
@@ -184,7 +184,7 @@ final class DocBlock
* *
* @param Tag $tagToRemove The tag to remove. * @param Tag $tagToRemove The tag to remove.
*/ */
public function removeTag(Tag $tagToRemove): void public function removeTag(Tag $tagToRemove) : void
{ {
foreach ($this->tags as $key => $tag) { foreach ($this->tags as $key => $tag) {
if ($tag === $tagToRemove) { if ($tag === $tagToRemove) {
@@ -199,7 +199,7 @@ final class DocBlock
* *
* @param Tag $tag The tag to add. * @param Tag $tag The tag to add.
*/ */
private function addTag(Tag $tag): void private function addTag(Tag $tag) : void
{ {
$this->tags[] = $tag; $this->tags[] = $tag;
} }
+8 -7
View File
@@ -1,4 +1,6 @@
<?php declare(strict_types=1); <?php
declare(strict_types=1);
/** /**
* This file is part of phpDocumentor. * This file is part of phpDocumentor.
@@ -6,8 +8,6 @@
* For the full copyright and license information, please view the LICENSE * For the full copyright and license information, please view the LICENSE
* file that was distributed with this source code. * file that was distributed with this source code.
* *
* @copyright 2010-2018 Mike van Riel<[email protected]>
* @license http://www.opensource.org/licenses/mit-license.php MIT
* @link http://phpdoc.org * @link http://phpdoc.org
*/ */
@@ -15,6 +15,7 @@ namespace phpDocumentor\Reflection\DocBlock;
use phpDocumentor\Reflection\DocBlock\Tags\Formatter; use phpDocumentor\Reflection\DocBlock\Tags\Formatter;
use phpDocumentor\Reflection\DocBlock\Tags\Formatter\PassthroughFormatter; use phpDocumentor\Reflection\DocBlock\Tags\Formatter\PassthroughFormatter;
use function vsprintf;
/** /**
* Object representing to description for a DocBlock. * Object representing to description for a DocBlock.
@@ -64,7 +65,7 @@ class Description
public function __construct(string $bodyTemplate, array $tags = []) public function __construct(string $bodyTemplate, array $tags = [])
{ {
$this->bodyTemplate = $bodyTemplate; $this->bodyTemplate = $bodyTemplate;
$this->tags = $tags; $this->tags = $tags;
} }
/** /**
@@ -72,7 +73,7 @@ class Description
* *
* @return Tag[] * @return Tag[]
*/ */
public function getTags(): array public function getTags() : array
{ {
return $this->tags; return $this->tags;
} }
@@ -81,7 +82,7 @@ class Description
* Renders this description as a string where the provided formatter will format the tags in the expected string * Renders this description as a string where the provided formatter will format the tags in the expected string
* format. * format.
*/ */
public function render(?Formatter $formatter = null): string public function render(?Formatter $formatter = null) : string
{ {
if ($formatter === null) { if ($formatter === null) {
$formatter = new PassthroughFormatter(); $formatter = new PassthroughFormatter();
@@ -98,7 +99,7 @@ class Description
/** /**
* Returns a plain string representation of this description. * Returns a plain string representation of this description.
*/ */
public function __toString(): string public function __toString() : string
{ {
return $this->render(); return $this->render();
} }
+22 -11
View File
@@ -1,4 +1,6 @@
<?php declare(strict_types=1); <?php
declare(strict_types=1);
/** /**
* This file is part of phpDocumentor. * This file is part of phpDocumentor.
@@ -6,14 +8,24 @@
* For the full copyright and license information, please view the LICENSE * For the full copyright and license information, please view the LICENSE
* file that was distributed with this source code. * file that was distributed with this source code.
* *
* @copyright 2010-2018 Mike van Riel<[email protected]>
* @license http://www.opensource.org/licenses/mit-license.php MIT
* @link http://phpdoc.org * @link http://phpdoc.org
*/ */
namespace phpDocumentor\Reflection\DocBlock; namespace phpDocumentor\Reflection\DocBlock;
use phpDocumentor\Reflection\Types\Context as TypeContext; use phpDocumentor\Reflection\Types\Context as TypeContext;
use const PREG_SPLIT_DELIM_CAPTURE;
use function count;
use function explode;
use function implode;
use function ltrim;
use function min;
use function preg_split;
use function str_replace;
use function strlen;
use function strpos;
use function substr;
use function trim;
/** /**
* Creates a new Description object given a body of text. * Creates a new Description object given a body of text.
@@ -48,7 +60,7 @@ class DescriptionFactory
/** /**
* Returns the parsed text of this description. * Returns the parsed text of this description.
*/ */
public function create(string $contents, ?TypeContext $context = null): Description public function create(string $contents, ?TypeContext $context = null) : Description
{ {
[$text, $tags] = $this->parse($this->lex($contents), $context); [$text, $tags] = $this->parse($this->lex($contents), $context);
@@ -58,10 +70,9 @@ class DescriptionFactory
/** /**
* Strips the contents from superfluous whitespace and splits the description into a series of tokens. * Strips the contents from superfluous whitespace and splits the description into a series of tokens.
* *
*
* @return string[] A series of tokens of which the description text is composed. * @return string[] A series of tokens of which the description text is composed.
*/ */
private function lex(string $contents): array private function lex(string $contents) : array
{ {
$contents = $this->removeSuperfluousStartingWhitespace($contents); $contents = $this->removeSuperfluousStartingWhitespace($contents);
@@ -108,14 +119,14 @@ class DescriptionFactory
* *
* @return string[]|Tag[] * @return string[]|Tag[]
*/ */
private function parse($tokens, ?TypeContext $context = null): array private function parse(array $tokens, ?TypeContext $context = null) : array
{ {
$count = count($tokens); $count = count($tokens);
$tagCount = 0; $tagCount = 0;
$tags = []; $tags = [];
for ($i = 1; $i < $count; $i += 2) { for ($i = 1; $i < $count; $i += 2) {
$tags[] = $this->tagFactory->create($tokens[$i], $context); $tags[] = $this->tagFactory->create($tokens[$i], $context);
$tokens[$i] = '%' . ++$tagCount . '$s'; $tokens[$i] = '%' . ++$tagCount . '$s';
} }
@@ -144,7 +155,7 @@ class DescriptionFactory
* If we do not normalize the indentation then we have superfluous whitespace on the second and subsequent * If we do not normalize the indentation then we have superfluous whitespace on the second and subsequent
* lines and this may cause rendering issues when, for example, using a Markdown converter. * lines and this may cause rendering issues when, for example, using a Markdown converter.
*/ */
private function removeSuperfluousStartingWhitespace(string $contents): string private function removeSuperfluousStartingWhitespace(string $contents) : string
{ {
$lines = explode("\n", $contents); $lines = explode("\n", $contents);
+22 -13
View File
@@ -1,4 +1,6 @@
<?php declare(strict_types=1); <?php
declare(strict_types=1);
/** /**
* This file is part of phpDocumentor. * This file is part of phpDocumentor.
@@ -6,14 +8,21 @@
* For the full copyright and license information, please view the LICENSE * For the full copyright and license information, please view the LICENSE
* file that was distributed with this source code. * file that was distributed with this source code.
* *
* @copyright 2010-2018 Mike van Riel<[email protected]>
* @license http://www.opensource.org/licenses/mit-license.php MIT
* @link http://phpdoc.org * @link http://phpdoc.org
*/ */
namespace phpDocumentor\Reflection\DocBlock; namespace phpDocumentor\Reflection\DocBlock;
use phpDocumentor\Reflection\DocBlock\Tags\Example; use phpDocumentor\Reflection\DocBlock\Tags\Example;
use const DIRECTORY_SEPARATOR;
use function array_slice;
use function file;
use function getcwd;
use function implode;
use function is_readable;
use function rtrim;
use function sprintf;
use function trim;
/** /**
* Class used to find an example file's location based on a given ExampleDescriptor. * Class used to find an example file's location based on a given ExampleDescriptor.
@@ -29,13 +38,13 @@ class ExampleFinder
/** /**
* Attempts to find the example contents for the given descriptor. * Attempts to find the example contents for the given descriptor.
*/ */
public function find(Example $example): string public function find(Example $example) : string
{ {
$filename = $example->getFilePath(); $filename = $example->getFilePath();
$file = $this->getExampleFileContents($filename); $file = $this->getExampleFileContents($filename);
if (!$file) { if (!$file) {
return "** File not found : {$filename} **"; return sprintf('** File not found : %s **', $filename);
} }
return implode('', array_slice($file, $example->getStartingLine() - 1, $example->getLineCount())); return implode('', array_slice($file, $example->getStartingLine() - 1, $example->getLineCount()));
@@ -44,7 +53,7 @@ class ExampleFinder
/** /**
* Registers the project's root directory where an 'examples' folder can be expected. * Registers the project's root directory where an 'examples' folder can be expected.
*/ */
public function setSourceDirectory(string $directory = ''): void public function setSourceDirectory(string $directory = '') : void
{ {
$this->sourceDirectory = $directory; $this->sourceDirectory = $directory;
} }
@@ -52,7 +61,7 @@ class ExampleFinder
/** /**
* Returns the project's root directory where an 'examples' folder can be expected. * Returns the project's root directory where an 'examples' folder can be expected.
*/ */
public function getSourceDirectory(): string public function getSourceDirectory() : string
{ {
return $this->sourceDirectory; return $this->sourceDirectory;
} }
@@ -62,7 +71,7 @@ class ExampleFinder
* *
* @param string[] $directories * @param string[] $directories
*/ */
public function setExampleDirectories(array $directories): void public function setExampleDirectories(array $directories) : void
{ {
$this->exampleDirectories = $directories; $this->exampleDirectories = $directories;
} }
@@ -72,7 +81,7 @@ class ExampleFinder
* *
* @return string[] * @return string[]
*/ */
public function getExampleDirectories() public function getExampleDirectories() : array
{ {
return $this->exampleDirectories; return $this->exampleDirectories;
} }
@@ -88,7 +97,7 @@ class ExampleFinder
* 3. Checks the 'examples' folder in the current working directory for examples * 3. Checks the 'examples' folder in the current working directory for examples
* 4. Checks the path relative to the current working directory for the given filename * 4. Checks the path relative to the current working directory for the given filename
*/ */
private function getExampleFileContents(string $filename): ?string private function getExampleFileContents(string $filename) : ?string
{ {
$normalizedPath = null; $normalizedPath = null;
@@ -116,7 +125,7 @@ class ExampleFinder
/** /**
* Get example filepath based on the example directory inside your project. * Get example filepath based on the example directory inside your project.
*/ */
private function getExamplePathFromExampleDirectory(string $file): string private function getExamplePathFromExampleDirectory(string $file) : string
{ {
return getcwd() . DIRECTORY_SEPARATOR . 'examples' . DIRECTORY_SEPARATOR . $file; return getcwd() . DIRECTORY_SEPARATOR . 'examples' . DIRECTORY_SEPARATOR . $file;
} }
@@ -124,7 +133,7 @@ class ExampleFinder
/** /**
* Returns a path to the example file in the given directory.. * Returns a path to the example file in the given directory..
*/ */
private function constructExamplePath(string $directory, string $file): string private function constructExamplePath(string $directory, string $file) : string
{ {
return rtrim($directory, '\\/') . DIRECTORY_SEPARATOR . $file; return rtrim($directory, '\\/') . DIRECTORY_SEPARATOR . $file;
} }
@@ -132,7 +141,7 @@ class ExampleFinder
/** /**
* Get example filepath based on sourcecode. * Get example filepath based on sourcecode.
*/ */
private function getExamplePathFromSource(string $file): string private function getExamplePathFromSource(string $file) : string
{ {
return sprintf( return sprintf(
'%s%s%s', '%s%s%s',
+54 -32
View File
@@ -1,4 +1,6 @@
<?php declare(strict_types=1); <?php
declare(strict_types=1);
/** /**
* This file is part of phpDocumentor. * This file is part of phpDocumentor.
@@ -6,14 +8,19 @@
* For the full copyright and license information, please view the LICENSE * For the full copyright and license information, please view the LICENSE
* file that was distributed with this source code. * file that was distributed with this source code.
* *
* @copyright 2010-2018 Mike van Riel<mike@phpdoc.org> * @link http://phpdoc.org
* @license http://www.opensource.org/licenses/mit-license.php MIT
* @link http://phpdoc.org
*/ */
namespace phpDocumentor\Reflection\DocBlock; namespace phpDocumentor\Reflection\DocBlock;
use phpDocumentor\Reflection\DocBlock; use phpDocumentor\Reflection\DocBlock;
use phpDocumentor\Reflection\DocBlock\Tags\Formatter;
use phpDocumentor\Reflection\DocBlock\Tags\Formatter\PassthroughFormatter;
use function sprintf;
use function str_repeat;
use function str_replace;
use function strlen;
use function wordwrap;
/** /**
* Converts a DocBlock back from an object to a complete DocComment including Asterisks. * Converts a DocBlock back from an object to a complete DocComment including Asterisks.
@@ -32,25 +39,30 @@ class Serializer
/** @var int|null The max length of a line. */ /** @var int|null The max length of a line. */
protected $lineLength; protected $lineLength;
/** @var DocBlock\Tags\Formatter A custom tag formatter. */ /** @var Formatter A custom tag formatter. */
protected $tagFormatter; protected $tagFormatter;
/** /**
* Create a Serializer instance. * Create a Serializer instance.
* *
* @param int $indent The number of times the indent string is repeated. * @param int $indent The number of times the indent string is repeated.
* @param string $indentString The string to indent the comment with. * @param string $indentString The string to indent the comment with.
* @param bool $indentFirstLine Whether to indent the first line. * @param bool $indentFirstLine Whether to indent the first line.
* @param int|null $lineLength The max length of a line or NULL to disable line wrapping. * @param int|null $lineLength The max length of a line or NULL to disable line wrapping.
* @param DocBlock\Tags\Formatter $tagFormatter A custom tag formatter, defaults to PassthroughFormatter. * @param Formatter $tagFormatter A custom tag formatter, defaults to PassthroughFormatter.
*/ */
public function __construct(int $indent = 0, string $indentString = ' ', bool $indentFirstLine = true, ?int $lineLength = null, ?DocBlock\Tags\Formatter $tagFormatter = null) public function __construct(
{ int $indent = 0,
$this->indent = $indent; string $indentString = ' ',
$this->indentString = $indentString; bool $indentFirstLine = true,
?int $lineLength = null,
?Formatter $tagFormatter = null
) {
$this->indent = $indent;
$this->indentString = $indentString;
$this->isFirstLineIndented = $indentFirstLine; $this->isFirstLineIndented = $indentFirstLine;
$this->lineLength = $lineLength; $this->lineLength = $lineLength;
$this->tagFormatter = $tagFormatter ?: new DocBlock\Tags\Formatter\PassthroughFormatter(); $this->tagFormatter = $tagFormatter ?: new PassthroughFormatter();
} }
/** /**
@@ -60,9 +72,9 @@ class Serializer
* *
* @return string The serialized doc block. * @return string The serialized doc block.
*/ */
public function getDocComment(DocBlock $docblock): string public function getDocComment(DocBlock $docblock) : string
{ {
$indent = str_repeat($this->indentString, $this->indent); $indent = str_repeat($this->indentString, $this->indent);
$firstIndent = $this->isFirstLineIndented ? $indent : ''; $firstIndent = $this->isFirstLineIndented ? $indent : '';
// 3 === strlen(' * ') // 3 === strlen(' * ')
$wrapLength = $this->lineLength ? $this->lineLength - strlen($indent) - 3 : null; $wrapLength = $this->lineLength ? $this->lineLength - strlen($indent) - 3 : null;
@@ -75,35 +87,41 @@ class Serializer
) )
); );
$comment = "{$firstIndent}/**\n"; $comment = $firstIndent . "/**\n";
if ($text) { if ($text) {
$comment .= "{$indent} * {$text}\n"; $comment .= $indent . ' * ' . $text . "\n";
$comment .= "{$indent} *\n"; $comment .= $indent . " *\n";
} }
$comment = $this->addTagBlock($docblock, $wrapLength, $indent, $comment); $comment = $this->addTagBlock($docblock, $wrapLength, $indent, $comment);
$comment .= $indent . ' */'; return $comment . $indent . ' */';
return $comment;
} }
/** /**
* @return mixed * @return mixed
*/ */
private function removeTrailingSpaces($indent, $text) private function removeTrailingSpaces(string $indent, string $text)
{ {
return str_replace("\n{$indent} * \n", "\n{$indent} *\n", $text); return str_replace(
sprintf("\n%s * \n", $indent),
sprintf("\n%s *\n", $indent),
$text
);
} }
/** /**
* @return mixed * @return mixed
*/ */
private function addAsterisksForEachLine($indent, $text) private function addAsterisksForEachLine(string $indent, string $text)
{ {
return str_replace("\n", "\n{$indent} * ", $text); return str_replace(
"\n",
sprintf("\n%s * ", $indent),
$text
);
} }
private function getSummaryAndDescriptionTextBlock(DocBlock $docblock, $wrapLength): string private function getSummaryAndDescriptionTextBlock(DocBlock $docblock, ?int $wrapLength) : string
{ {
$text = $docblock->getSummary() . ((string) $docblock->getDescription() ? "\n\n" . $docblock->getDescription() $text = $docblock->getSummary() . ((string) $docblock->getDescription() ? "\n\n" . $docblock->getDescription()
: ''); : '');
@@ -115,7 +133,7 @@ class Serializer
return $text; return $text;
} }
private function addTagBlock(DocBlock $docblock, $wrapLength, $indent, $comment): string private function addTagBlock(DocBlock $docblock, ?int $wrapLength, string $indent, string $comment) : string
{ {
foreach ($docblock->getTags() as $tag) { foreach ($docblock->getTags() as $tag) {
$tagText = $this->tagFormatter->format($tag); $tagText = $this->tagFormatter->format($tag);
@@ -123,9 +141,13 @@ class Serializer
$tagText = wordwrap($tagText, $wrapLength); $tagText = wordwrap($tagText, $wrapLength);
} }
$tagText = str_replace("\n", "\n{$indent} * ", $tagText); $tagText = str_replace(
"\n",
sprintf("\n%s * ", $indent),
$tagText
);
$comment .= "{$indent} * {$tagText}\n"; $comment .= sprintf("%s * %s\n", $indent, $tagText);
} }
return $comment; return $comment;
+68 -51
View File
@@ -1,4 +1,6 @@
<?php declare(strict_types=1); <?php
declare(strict_types=1);
/** /**
* This file is part of phpDocumentor. * This file is part of phpDocumentor.
@@ -6,18 +8,26 @@
* For the full copyright and license information, please view the LICENSE * For the full copyright and license information, please view the LICENSE
* file that was distributed with this source code. * file that was distributed with this source code.
* *
* @copyright 2010-2018 Mike van Riel<[email protected]>
* @license http://www.opensource.org/licenses/mit-license.php MIT
* @link http://phpdoc.org * @link http://phpdoc.org
*/ */
namespace phpDocumentor\Reflection\DocBlock; namespace phpDocumentor\Reflection\DocBlock;
use InvalidArgumentException;
use phpDocumentor\Reflection\DocBlock\Tags\Factory\StaticMethod; use phpDocumentor\Reflection\DocBlock\Tags\Factory\StaticMethod;
use phpDocumentor\Reflection\DocBlock\Tags\Generic; use phpDocumentor\Reflection\DocBlock\Tags\Generic;
use phpDocumentor\Reflection\FqsenResolver; use phpDocumentor\Reflection\FqsenResolver;
use phpDocumentor\Reflection\Types\Context as TypeContext; use phpDocumentor\Reflection\Types\Context as TypeContext;
use ReflectionMethod;
use ReflectionParameter;
use Webmozart\Assert\Assert; use Webmozart\Assert\Assert;
use function array_merge;
use function array_slice;
use function call_user_func_array;
use function count;
use function get_class;
use function preg_match;
use function strpos;
/** /**
* Creates a Tag object given the contents of a tag. * Creates a Tag object given the contents of a tag.
@@ -42,7 +52,8 @@ final class StandardTagFactory implements TagFactory
public const REGEX_TAGNAME = '[\w\-\_\\\\]+'; public const REGEX_TAGNAME = '[\w\-\_\\\\]+';
/** /**
* @var string[] An array with a tag as a key, and an FQCN to a class that handles it as an array value. * @var string[] An array with a tag as a key, and an
* FQCN to a class that handles it as an array value.
*/ */
private $tagHandlerMappings = [ private $tagHandlerMappings = [
'author' => '\phpDocumentor\Reflection\DocBlock\Tags\Author', 'author' => '\phpDocumentor\Reflection\DocBlock\Tags\Author',
@@ -67,13 +78,18 @@ final class StandardTagFactory implements TagFactory
]; ];
/** /**
* @var \ReflectionParameter[][] a lazy-loading cache containing parameters for each tagHandler that has been used. * @var string[] An array with a anotation s a key, and an
* FQCN to a class that handles it as an array value.
*/
private $annotationMappings = [];
/**
* @var ReflectionParameter[][] a lazy-loading cache containing parameters
* for each tagHandler that has been used.
*/ */
private $tagHandlerParameterCache = []; private $tagHandlerParameterCache = [];
/** /** @var FqsenResolver */
* @var FqsenResolver
*/
private $fqsenResolver; private $fqsenResolver;
/** /**
@@ -88,9 +104,9 @@ final class StandardTagFactory implements TagFactory
* If no tag handlers are provided than the default list in the {@see self::$tagHandlerMappings} property * If no tag handlers are provided than the default list in the {@see self::$tagHandlerMappings} property
* is used. * is used.
* *
* @param string[] $tagHandlers
*
* @see self::registerTagHandler() to add a new tag handler to the existing default list. * @see self::registerTagHandler() to add a new tag handler to the existing default list.
*
* @param string[] $tagHandlers
*/ */
public function __construct(FqsenResolver $fqsenResolver, ?array $tagHandlers = null) public function __construct(FqsenResolver $fqsenResolver, ?array $tagHandlers = null)
{ {
@@ -105,16 +121,16 @@ final class StandardTagFactory implements TagFactory
/** /**
* {@inheritDoc} * {@inheritDoc}
*/ */
public function create(string $tagLine, ?TypeContext $context = null): ?Tag public function create(string $tagLine, ?TypeContext $context = null) : ?Tag
{ {
if (! $context) { if (!$context) {
$context = new TypeContext(''); $context = new TypeContext('');
} }
[$tagName, $tagBody] = $this->extractTagParts($tagLine); [$tagName, $tagBody] = $this->extractTagParts($tagLine);
if ($tagBody !== '' && $tagBody[0] === '[') { if ($tagBody !== '' && strpos($tagBody, '[') === 0) {
throw new \InvalidArgumentException( throw new InvalidArgumentException(
'The tag "' . $tagLine . '" does not seem to be wellformed, please check it for errors' 'The tag "' . $tagLine . '" does not seem to be wellformed, please check it for errors'
); );
} }
@@ -125,7 +141,7 @@ final class StandardTagFactory implements TagFactory
/** /**
* {@inheritDoc} * {@inheritDoc}
*/ */
public function addParameter(string $name, $value): void public function addParameter(string $name, $value) : void
{ {
$this->serviceLocator[$name] = $value; $this->serviceLocator[$name] = $value;
} }
@@ -133,7 +149,7 @@ final class StandardTagFactory implements TagFactory
/** /**
* {@inheritDoc} * {@inheritDoc}
*/ */
public function addService($service, $alias = null): void public function addService($service, $alias = null) : void
{ {
$this->serviceLocator[$alias ?: get_class($service)] = $service; $this->serviceLocator[$alias ?: get_class($service)] = $service;
} }
@@ -141,7 +157,7 @@ final class StandardTagFactory implements TagFactory
/** /**
* {@inheritDoc} * {@inheritDoc}
*/ */
public function registerTagHandler(string $tagName, string $handler): void public function registerTagHandler(string $tagName, string $handler) : void
{ {
Assert::stringNotEmpty($tagName); Assert::stringNotEmpty($tagName);
Assert::stringNotEmpty($handler); Assert::stringNotEmpty($handler);
@@ -149,7 +165,7 @@ final class StandardTagFactory implements TagFactory
Assert::implementsInterface($handler, StaticMethod::class); Assert::implementsInterface($handler, StaticMethod::class);
if (strpos($tagName, '\\') && $tagName[0] !== '\\') { if (strpos($tagName, '\\') && $tagName[0] !== '\\') {
throw new \InvalidArgumentException( throw new InvalidArgumentException(
'A namespaced tag must have a leading backslash as it must be fully qualified' 'A namespaced tag must have a leading backslash as it must be fully qualified'
); );
} }
@@ -160,14 +176,13 @@ final class StandardTagFactory implements TagFactory
/** /**
* Extracts all components for a tag. * Extracts all components for a tag.
* *
*
* @return string[] * @return string[]
*/ */
private function extractTagParts(string $tagLine): array private function extractTagParts(string $tagLine) : array
{ {
$matches = []; $matches = [];
if (! preg_match('/^@(' . self::REGEX_TAGNAME . ')(?:\s*([^\s].*)|$)/us', $tagLine, $matches)) { if (!preg_match('/^@(' . self::REGEX_TAGNAME . ')(?:\s*([^\s].*)|$)/us', $tagLine, $matches)) {
throw new \InvalidArgumentException( throw new InvalidArgumentException(
'The tag "' . $tagLine . '" does not seem to be wellformed, please check it for errors' 'The tag "' . $tagLine . '" does not seem to be wellformed, please check it for errors'
); );
} }
@@ -183,17 +198,17 @@ final class StandardTagFactory implements TagFactory
* Creates a new tag object with the given name and body or returns null if the tag name was recognized but the * Creates a new tag object with the given name and body or returns null if the tag name was recognized but the
* body was invalid. * body was invalid.
*/ */
private function createTag(string $body, string $name, TypeContext $context): ?Tag private function createTag(string $body, string $name, TypeContext $context) : ?Tag
{ {
$handlerClassName = $this->findHandlerClassName($name, $context); $handlerClassName = $this->findHandlerClassName($name, $context);
$arguments = $this->getArgumentsForParametersFromWiring( $arguments = $this->getArgumentsForParametersFromWiring(
$this->fetchParametersForHandlerFactoryMethod($handlerClassName), $this->fetchParametersForHandlerFactoryMethod($handlerClassName),
$this->getServiceLocatorWithDynamicParameters($context, $name, $body) $this->getServiceLocatorWithDynamicParameters($context, $name, $body)
); );
try { try {
return call_user_func_array([$handlerClassName, 'create'], $arguments); return call_user_func_array([$handlerClassName, 'create'], $arguments);
} catch (\InvalidArgumentException $e) { } catch (InvalidArgumentException $e) {
return null; return null;
} }
} }
@@ -201,17 +216,17 @@ final class StandardTagFactory implements TagFactory
/** /**
* Determines the Fully Qualified Class Name of the Factory or Tag (containing a Factory Method `create`). * Determines the Fully Qualified Class Name of the Factory or Tag (containing a Factory Method `create`).
*/ */
private function findHandlerClassName(string $tagName, TypeContext $context): string private function findHandlerClassName(string $tagName, TypeContext $context) : string
{ {
$handlerClassName = Generic::class; $handlerClassName = Generic::class;
if (isset($this->tagHandlerMappings[$tagName])) { if (isset($this->tagHandlerMappings[$tagName])) {
$handlerClassName = $this->tagHandlerMappings[$tagName]; $handlerClassName = $this->tagHandlerMappings[$tagName];
} elseif ($this->isAnnotation($tagName)) { } elseif ($this->isAnnotation($tagName)) {
// TODO: Annotation support is planned for a later stage and as such is disabled for now // TODO: Annotation support is planned for a later stage and as such is disabled for now
// $tagName = (string)$this->fqsenResolver->resolve($tagName, $context); $tagName = (string) $this->fqsenResolver->resolve($tagName, $context);
// if (isset($this->annotationMappings[$tagName])) { if (isset($this->annotationMappings[$tagName])) {
// $handlerClassName = $this->annotationMappings[$tagName]; $handlerClassName = $this->annotationMappings[$tagName];
// } }
} }
return $handlerClassName; return $handlerClassName;
@@ -220,16 +235,16 @@ final class StandardTagFactory implements TagFactory
/** /**
* Retrieves the arguments that need to be passed to the Factory Method with the given Parameters. * Retrieves the arguments that need to be passed to the Factory Method with the given Parameters.
* *
* @param \ReflectionParameter[] $parameters * @param ReflectionParameter[] $parameters
* @param mixed[] $locator * @param mixed[] $locator
* *
* @return mixed[] A series of values that can be passed to the Factory Method of the tag whose parameters * @return mixed[] A series of values that can be passed to the Factory Method of the tag whose parameters
* is provided with this method. * is provided with this method.
*/ */
private function getArgumentsForParametersFromWiring($parameters, $locator): array private function getArgumentsForParametersFromWiring(array $parameters, array $locator) : array
{ {
$arguments = []; $arguments = [];
foreach ($parameters as $index => $parameter) { foreach ($parameters as $parameter) {
$typeHint = $parameter->getClass() ? $parameter->getClass()->getName() : null; $typeHint = $parameter->getClass() ? $parameter->getClass()->getName() : null;
if (isset($locator[$typeHint])) { if (isset($locator[$typeHint])) {
$arguments[] = $locator[$typeHint]; $arguments[] = $locator[$typeHint];
@@ -252,13 +267,12 @@ final class StandardTagFactory implements TagFactory
* Retrieves a series of ReflectionParameter objects for the static 'create' method of the given * Retrieves a series of ReflectionParameter objects for the static 'create' method of the given
* tag handler class name. * tag handler class name.
* *
* * @return ReflectionParameter[]
* @return \ReflectionParameter[]
*/ */
private function fetchParametersForHandlerFactoryMethod(string $handlerClassName): array private function fetchParametersForHandlerFactoryMethod(string $handlerClassName) : array
{ {
if (! isset($this->tagHandlerParameterCache[$handlerClassName])) { if (!isset($this->tagHandlerParameterCache[$handlerClassName])) {
$methodReflection = new \ReflectionMethod($handlerClassName, 'create'); $methodReflection = new ReflectionMethod($handlerClassName, 'create');
$this->tagHandlerParameterCache[$handlerClassName] = $methodReflection->getParameters(); $this->tagHandlerParameterCache[$handlerClassName] = $methodReflection->getParameters();
} }
@@ -266,18 +280,24 @@ final class StandardTagFactory implements TagFactory
} }
/** /**
* Returns a copy of this class' Service Locator with added dynamic parameters, such as the tag's name, body and * Returns a copy of this class' Service Locator with added dynamic parameters,
* Context. * such as the tag's name, body and Context.
* *
* @param TypeContext $context The Context (namespace and aliasses) that may be passed and is used to resolve FQSENs. * @param TypeContext $context The Context (namespace and aliasses) that may be
* @param string $tagName The name of the tag that may be passed onto the factory method of the Tag class. * passed and is used to resolve FQSENs.
* @param string $tagBody The body of the tag that may be passed onto the factory method of the Tag class. * @param string $tagName The name of the tag that may be
* passed onto the factory method of the Tag class.
* @param string $tagBody The body of the tag that may be
* passed onto the factory method of the Tag class.
* *
* @return mixed[] * @return mixed[]
*/ */
private function getServiceLocatorWithDynamicParameters(TypeContext $context, string $tagName, string $tagBody): array private function getServiceLocatorWithDynamicParameters(
{ TypeContext $context,
$locator = array_merge( string $tagName,
string $tagBody
) : array {
return array_merge(
$this->serviceLocator, $this->serviceLocator,
[ [
'name' => $tagName, 'name' => $tagName,
@@ -285,17 +305,14 @@ final class StandardTagFactory implements TagFactory
TypeContext::class => $context, TypeContext::class => $context,
] ]
); );
return $locator;
} }
/** /**
* Returns whether the given tag belongs to an annotation. * Returns whether the given tag belongs to an annotation.
* *
*
* @todo this method should be populated once we implement Annotation notation support. * @todo this method should be populated once we implement Annotation notation support.
*/ */
private function isAnnotation(string $tagContent): bool private function isAnnotation(string $tagContent) : bool
{ {
// 1. Contains a namespace separator // 1. Contains a namespace separator
// 2. Contains parenthesis // 2. Contains parenthesis
+6 -6
View File
@@ -1,4 +1,6 @@
<?php declare(strict_types=1); <?php
declare(strict_types=1);
/** /**
* This file is part of phpDocumentor. * This file is part of phpDocumentor.
@@ -6,8 +8,6 @@
* For the full copyright and license information, please view the LICENSE * For the full copyright and license information, please view the LICENSE
* file that was distributed with this source code. * file that was distributed with this source code.
* *
* @copyright 2010-2018 Mike van Riel<[email protected]>
* @license http://www.opensource.org/licenses/mit-license.php MIT
* @link http://phpdoc.org * @link http://phpdoc.org
*/ */
@@ -17,14 +17,14 @@ use phpDocumentor\Reflection\DocBlock\Tags\Formatter;
interface Tag interface Tag
{ {
public function getName(): string; public function getName() : string;
/** /**
* @return Tag|mixed Class that implements Tag * @return Tag|mixed Class that implements Tag
*/ */
public static function create(string $body); public static function create(string $body);
public function render(?Formatter $formatter = null): string; public function render(?Formatter $formatter = null) : string;
public function __toString(): string; public function __toString() : string;
} }
+31 -32
View File
@@ -1,4 +1,6 @@
<?php declare(strict_types=1); <?php
declare(strict_types=1);
/** /**
* This file is part of phpDocumentor. * This file is part of phpDocumentor.
@@ -6,13 +8,12 @@
* For the full copyright and license information, please view the LICENSE * For the full copyright and license information, please view the LICENSE
* file that was distributed with this source code. * file that was distributed with this source code.
* *
* @copyright 2010-2018 Mike van Riel<mike@phpdoc.org> * @link http://phpdoc.org
* @license http://www.opensource.org/licenses/mit-license.php MIT
* @link http://phpdoc.org
*/ */
namespace phpDocumentor\Reflection\DocBlock; namespace phpDocumentor\Reflection\DocBlock;
use InvalidArgumentException;
use phpDocumentor\Reflection\Types\Context as TypeContext; use phpDocumentor\Reflection\Types\Context as TypeContext;
interface TagFactory interface TagFactory
@@ -35,9 +36,20 @@ interface TagFactory
* *
* These parameters are injected at the last moment and will override any existing parameter with those names. * These parameters are injected at the last moment and will override any existing parameter with those names.
* *
* @param mixed $value * @param mixed $value
*/ */
public function addParameter(string $name, $value): void; public function addParameter(string $name, $value) : void;
/**
* Factory method responsible for instantiating the correct sub type.
*
* @param string $tagLine The text for this tag, including description.
*
* @return Tag A new tag object.
*
* @throws InvalidArgumentException If an invalid tag line was presented.
*/
public function create(string $tagLine, ?TypeContext $context = null) : ?Tag;
/** /**
* Registers a service with the Service Locator using the FQCN of the class or the alias, if provided. * Registers a service with the Service Locator using the FQCN of the class or the alias, if provided.
@@ -47,39 +59,26 @@ interface TagFactory
* *
* Because interfaces are regularly used as type-hints this method provides an alias parameter; if the FQCN of the * Because interfaces are regularly used as type-hints this method provides an alias parameter; if the FQCN of the
* interface is passed as alias then every time that interface is requested the provided service will be returned. * interface is passed as alias then every time that interface is requested the provided service will be returned.
*
* @param object $service
*/ */
public function addService($service): void; public function addService(object $service) : void;
/**
* Factory method responsible for instantiating the correct sub type.
*
* @param string $tagLine The text for this tag, including description.
*
* @throws \InvalidArgumentException if an invalid tag line was presented.
*
* @return Tag A new tag object.
*/
public function create(string $tagLine, ?TypeContext $context = null): ?Tag;
/** /**
* Registers a handler for tags. * Registers a handler for tags.
* *
* If you want to use your own tags then you can use this method to instruct the TagFactory to register the name * If you want to use your own tags then you can use this method to instruct the TagFactory
* of a tag with the FQCN of a 'Tag Handler'. The Tag handler should implement the {@see Tag} interface (and thus * to register the name of a tag with the FQCN of a 'Tag Handler'. The Tag handler should implement
* the create method). * the {@see Tag} interface (and thus the create method).
* *
* @param string $tagName Name of tag to register a handler for. When registering a namespaced tag, the full * @param string $tagName Name of tag to register a handler for. When registering a namespaced tag,
* name, along with a prefixing slash MUST be provided. * the full name, along with a prefixing slash MUST be provided.
* @param string $handler FQCN of handler. * @param string $handler FQCN of handler.
* *
* @throws \InvalidArgumentException if the tag name is not a string * @throws InvalidArgumentException If the tag name is not a string.
* @throws \InvalidArgumentException if the tag name is namespaced (contains backslashes) but does not start with * @throws InvalidArgumentException If the tag name is namespaced (contains backslashes) but
* a backslash * does not start with a backslash.
* @throws \InvalidArgumentException if the handler is not a string * @throws InvalidArgumentException If the handler is not a string.
* @throws \InvalidArgumentException if the handler is not an existing class * @throws InvalidArgumentException If the handler is not an existing class.
* @throws \InvalidArgumentException if the handler does not implement the {@see Tag} interface * @throws InvalidArgumentException If the handler does not implement the {@see Tag} interface.
*/ */
public function registerTagHandler(string $tagName, string $handler): void; public function registerTagHandler(string $tagName, string $handler) : void;
} }
+18 -11
View File
@@ -1,4 +1,6 @@
<?php declare(strict_types=1); <?php
declare(strict_types=1);
/** /**
* This file is part of phpDocumentor. * This file is part of phpDocumentor.
@@ -6,13 +8,18 @@
* For the full copyright and license information, please view the LICENSE * For the full copyright and license information, please view the LICENSE
* file that was distributed with this source code. * file that was distributed with this source code.
* *
* @copyright 2010-2018 Mike van Riel<mike@phpdoc.org> * @link http://phpdoc.org
* @license http://www.opensource.org/licenses/mit-license.php MIT
* @link http://phpdoc.org
*/ */
namespace phpDocumentor\Reflection\DocBlock\Tags; namespace phpDocumentor\Reflection\DocBlock\Tags;
use InvalidArgumentException;
use const FILTER_VALIDATE_EMAIL;
use function filter_var;
use function preg_match;
use function strlen;
use function trim;
/** /**
* Reflection class for an {@}author tag in a Docblock. * Reflection class for an {@}author tag in a Docblock.
*/ */
@@ -33,10 +40,10 @@ final class Author extends BaseTag implements Factory\StaticMethod
public function __construct(string $authorName, string $authorEmail) public function __construct(string $authorName, string $authorEmail)
{ {
if ($authorEmail && !filter_var($authorEmail, FILTER_VALIDATE_EMAIL)) { if ($authorEmail && !filter_var($authorEmail, FILTER_VALIDATE_EMAIL)) {
throw new \InvalidArgumentException('The author tag does not have a valid e-mail address'); throw new InvalidArgumentException('The author tag does not have a valid e-mail address');
} }
$this->authorName = $authorName; $this->authorName = $authorName;
$this->authorEmail = $authorEmail; $this->authorEmail = $authorEmail;
} }
@@ -45,7 +52,7 @@ final class Author extends BaseTag implements Factory\StaticMethod
* *
* @return string The author's name. * @return string The author's name.
*/ */
public function getAuthorName(): string public function getAuthorName() : string
{ {
return $this->authorName; return $this->authorName;
} }
@@ -55,7 +62,7 @@ final class Author extends BaseTag implements Factory\StaticMethod
* *
* @return string The author's email. * @return string The author's email.
*/ */
public function getEmail(): string public function getEmail() : string
{ {
return $this->authorEmail; return $this->authorEmail;
} }
@@ -63,7 +70,7 @@ final class Author extends BaseTag implements Factory\StaticMethod
/** /**
* Returns this tag in string form. * Returns this tag in string form.
*/ */
public function __toString(): string public function __toString() : string
{ {
return $this->authorName . (strlen($this->authorEmail) ? ' <' . $this->authorEmail . '>' : ''); return $this->authorName . (strlen($this->authorEmail) ? ' <' . $this->authorEmail . '>' : '');
} }
@@ -71,7 +78,7 @@ final class Author extends BaseTag implements Factory\StaticMethod
/** /**
* Attempts to create a new Author object based on †he tag body. * Attempts to create a new Author object based on †he tag body.
*/ */
public static function create(string $body): ?self public static function create(string $body) : ?self
{ {
$splitTagContent = preg_match('/^([^\<]*)(?:\<([^\>]*)\>)?$/u', $body, $matches); $splitTagContent = preg_match('/^([^\<]*)(?:\<([^\>]*)\>)?$/u', $body, $matches);
if (!$splitTagContent) { if (!$splitTagContent) {
@@ -79,7 +86,7 @@ final class Author extends BaseTag implements Factory\StaticMethod
} }
$authorName = trim($matches[1]); $authorName = trim($matches[1]);
$email = isset($matches[2]) ? trim($matches[2]) : ''; $email = isset($matches[2]) ? trim($matches[2]) : '';
return new static($authorName, $email); return new static($authorName, $email);
} }
+9 -6
View File
@@ -1,4 +1,6 @@
<?php declare(strict_types=1); <?php
declare(strict_types=1);
/** /**
* This file is part of phpDocumentor. * This file is part of phpDocumentor.
@@ -6,9 +8,7 @@
* For the full copyright and license information, please view the LICENSE * For the full copyright and license information, please view the LICENSE
* file that was distributed with this source code. * file that was distributed with this source code.
* *
* @copyright 2010-2018 Mike van Riel<mike@phpdoc.org> * @link http://phpdoc.org
* @license http://www.opensource.org/licenses/mit-license.php MIT
* @link http://phpdoc.org
*/ */
namespace phpDocumentor\Reflection\DocBlock\Tags; namespace phpDocumentor\Reflection\DocBlock\Tags;
@@ -32,17 +32,20 @@ abstract class BaseTag implements DocBlock\Tag
* *
* @return string The name of this tag. * @return string The name of this tag.
*/ */
public function getName(): string public function getName() : string
{ {
return $this->name; return $this->name;
} }
/**
* @return Description|string|null
*/
public function getDescription() public function getDescription()
{ {
return $this->description; return $this->description;
} }
public function render(?Formatter $formatter = null): string public function render(?Formatter $formatter = null) : string
{ {
if ($formatter === null) { if ($formatter === null) {
$formatter = new Formatter\PassthroughFormatter(); $formatter = new Formatter\PassthroughFormatter();
+10 -8
View File
@@ -1,4 +1,6 @@
<?php declare(strict_types=1); <?php
declare(strict_types=1);
/** /**
* This file is part of phpDocumentor. * This file is part of phpDocumentor.
@@ -6,9 +8,7 @@
* For the full copyright and license information, please view the LICENSE * For the full copyright and license information, please view the LICENSE
* file that was distributed with this source code. * file that was distributed with this source code.
* *
* @copyright 2010-2018 Mike van Riel<mike@phpdoc.org> * @link http://phpdoc.org
* @license http://www.opensource.org/licenses/mit-license.php MIT
* @link http://phpdoc.org
*/ */
namespace phpDocumentor\Reflection\DocBlock\Tags; namespace phpDocumentor\Reflection\DocBlock\Tags;
@@ -19,12 +19,14 @@ use phpDocumentor\Reflection\Fqsen;
use phpDocumentor\Reflection\FqsenResolver; use phpDocumentor\Reflection\FqsenResolver;
use phpDocumentor\Reflection\Types\Context as TypeContext; use phpDocumentor\Reflection\Types\Context as TypeContext;
use Webmozart\Assert\Assert; use Webmozart\Assert\Assert;
use function preg_split;
/** /**
* Reflection class for a @covers tag in a Docblock. * Reflection class for a @covers tag in a Docblock.
*/ */
final class Covers extends BaseTag implements Factory\StaticMethod final class Covers extends BaseTag implements Factory\StaticMethod
{ {
/** @var string */
protected $name = 'covers'; protected $name = 'covers';
/** @var Fqsen */ /** @var Fqsen */
@@ -35,7 +37,7 @@ final class Covers extends BaseTag implements Factory\StaticMethod
*/ */
public function __construct(Fqsen $refers, ?Description $description = null) public function __construct(Fqsen $refers, ?Description $description = null)
{ {
$this->refers = $refers; $this->refers = $refers;
$this->description = $description; $this->description = $description;
} }
@@ -47,7 +49,7 @@ final class Covers extends BaseTag implements Factory\StaticMethod
?DescriptionFactory $descriptionFactory = null, ?DescriptionFactory $descriptionFactory = null,
?FqsenResolver $resolver = null, ?FqsenResolver $resolver = null,
?TypeContext $context = null ?TypeContext $context = null
): self { ) : self {
Assert::notEmpty($body); Assert::notEmpty($body);
$parts = preg_split('/\s+/Su', $body, 2); $parts = preg_split('/\s+/Su', $body, 2);
@@ -61,7 +63,7 @@ final class Covers extends BaseTag implements Factory\StaticMethod
/** /**
* Returns the structural element this tag refers to. * Returns the structural element this tag refers to.
*/ */
public function getReference(): Fqsen public function getReference() : Fqsen
{ {
return $this->refers; return $this->refers;
} }
@@ -69,7 +71,7 @@ final class Covers extends BaseTag implements Factory\StaticMethod
/** /**
* Returns a string representation of this tag. * Returns a string representation of this tag.
*/ */
public function __toString(): string public function __toString() : string
{ {
return $this->refers . ($this->description ? ' ' . $this->description->render() : ''); return $this->refers . ($this->description ? ' ' . $this->description->render() : '');
} }
+11 -9
View File
@@ -1,4 +1,6 @@
<?php declare(strict_types=1); <?php
declare(strict_types=1);
/** /**
* This file is part of phpDocumentor. * This file is part of phpDocumentor.
@@ -6,8 +8,6 @@
* For the full copyright and license information, please view the LICENSE * For the full copyright and license information, please view the LICENSE
* file that was distributed with this source code. * file that was distributed with this source code.
* *
* @copyright 2010-2018 Mike van Riel<[email protected]>
* @license http://www.opensource.org/licenses/mit-license.php MIT
* @link http://phpdoc.org * @link http://phpdoc.org
*/ */
@@ -17,12 +17,14 @@ use phpDocumentor\Reflection\DocBlock\Description;
use phpDocumentor\Reflection\DocBlock\DescriptionFactory; use phpDocumentor\Reflection\DocBlock\DescriptionFactory;
use phpDocumentor\Reflection\Types\Context as TypeContext; use phpDocumentor\Reflection\Types\Context as TypeContext;
use Webmozart\Assert\Assert; use Webmozart\Assert\Assert;
use function preg_match;
/** /**
* Reflection class for a {@}deprecated tag in a Docblock. * Reflection class for a {@}deprecated tag in a Docblock.
*/ */
final class Deprecated extends BaseTag implements Factory\StaticMethod final class Deprecated extends BaseTag implements Factory\StaticMethod
{ {
/** @var string */
protected $name = 'deprecated'; protected $name = 'deprecated';
/** /**
@@ -44,11 +46,11 @@ final class Deprecated extends BaseTag implements Factory\StaticMethod
/** @var string The version vector. */ /** @var string The version vector. */
private $version = ''; private $version = '';
public function __construct($version = null, ?Description $description = null) public function __construct(?string $version = null, ?Description $description = null)
{ {
Assert::nullOrStringNotEmpty($version); Assert::nullOrStringNotEmpty($version);
$this->version = $version; $this->version = $version;
$this->description = $description; $this->description = $description;
} }
@@ -59,7 +61,7 @@ final class Deprecated extends BaseTag implements Factory\StaticMethod
?string $body, ?string $body,
?DescriptionFactory $descriptionFactory = null, ?DescriptionFactory $descriptionFactory = null,
?TypeContext $context = null ?TypeContext $context = null
): self { ) : self {
if (empty($body)) { if (empty($body)) {
return new static(); return new static();
} }
@@ -68,7 +70,7 @@ final class Deprecated extends BaseTag implements Factory\StaticMethod
if (!preg_match('/^(' . self::REGEX_VECTOR . ')\s*(.+)?$/sux', $body, $matches)) { if (!preg_match('/^(' . self::REGEX_VECTOR . ')\s*(.+)?$/sux', $body, $matches)) {
return new static( return new static(
null, null,
null !== $descriptionFactory ? $descriptionFactory->create($body, $context) : null $descriptionFactory !== null ? $descriptionFactory->create($body, $context) : null
); );
} }
@@ -81,7 +83,7 @@ final class Deprecated extends BaseTag implements Factory\StaticMethod
/** /**
* Gets the version section of the tag. * Gets the version section of the tag.
*/ */
public function getVersion(): ?string public function getVersion() : ?string
{ {
return $this->version; return $this->version;
} }
@@ -89,7 +91,7 @@ final class Deprecated extends BaseTag implements Factory\StaticMethod
/** /**
* Returns a string representation for this tag. * Returns a string representation for this tag.
*/ */
public function __toString(): string public function __toString() : string
{ {
return $this->version . ($this->description ? ' ' . $this->description->render() : ''); return $this->version . ($this->description ? ' ' . $this->description->render() : '');
} }
+33 -29
View File
@@ -1,4 +1,6 @@
<?php declare(strict_types=1); <?php
declare(strict_types=1);
/** /**
* This file is part of phpDocumentor. * This file is part of phpDocumentor.
@@ -6,24 +8,27 @@
* For the full copyright and license information, please view the LICENSE * For the full copyright and license information, please view the LICENSE
* file that was distributed with this source code. * file that was distributed with this source code.
* *
* @copyright 2010-2018 Mike van Riel<[email protected]>
* @license http://www.opensource.org/licenses/mit-license.php MIT
* @link http://phpdoc.org * @link http://phpdoc.org
*/ */
namespace phpDocumentor\Reflection\DocBlock\Tags; namespace phpDocumentor\Reflection\DocBlock\Tags;
use phpDocumentor\Reflection\DocBlock\Description;
use phpDocumentor\Reflection\DocBlock\Tag; use phpDocumentor\Reflection\DocBlock\Tag;
use Webmozart\Assert\Assert; use Webmozart\Assert\Assert;
use function array_key_exists;
use function preg_match;
use function rawurlencode;
use function str_replace;
use function strpos;
use function trim;
/** /**
* Reflection class for a {@}example tag in a Docblock. * Reflection class for a {@}example tag in a Docblock.
*/ */
final class Example extends BaseTag final class Example extends BaseTag
{ {
/** /** @var string Path to a file to use as an example. May also be an absolute URI. */
* @var string Path to a file to use as an example. May also be an absolute URI.
*/
private $filePath; private $filePath;
/** /**
@@ -32,26 +37,25 @@ final class Example extends BaseTag
*/ */
private $isURI = false; private $isURI = false;
/** /** @var int */
* @var int
*/
private $startingLine; private $startingLine;
/** /** @var int */
* @var int
*/
private $lineCount; private $lineCount;
/**
* @param string|Description|null $description
*/
public function __construct(string $filePath, bool $isURI, int $startingLine, int $lineCount, $description) public function __construct(string $filePath, bool $isURI, int $startingLine, int $lineCount, $description)
{ {
Assert::notEmpty($filePath); Assert::notEmpty($filePath);
Assert::greaterThanEq($startingLine, 0); Assert::greaterThanEq($startingLine, 0);
Assert::greaterThanEq($lineCount, 0); Assert::greaterThanEq($lineCount, 0);
$this->filePath = $filePath; $this->filePath = $filePath;
$this->startingLine = $startingLine; $this->startingLine = $startingLine;
$this->lineCount = $lineCount; $this->lineCount = $lineCount;
$this->name = 'example'; $this->name = 'example';
if ($description !== null) { if ($description !== null) {
$this->description = trim((string) $description); $this->description = trim((string) $description);
} }
@@ -64,7 +68,7 @@ final class Example extends BaseTag
*/ */
public function getContent() public function getContent()
{ {
if (null === $this->description) { if ($this->description === null) {
$filePath = '"' . $this->filePath . '"'; $filePath = '"' . $this->filePath . '"';
if ($this->isURI) { if ($this->isURI) {
$filePath = $this->isUriRelative($this->filePath) $filePath = $this->isUriRelative($this->filePath)
@@ -81,24 +85,24 @@ final class Example extends BaseTag
/** /**
* {@inheritdoc} * {@inheritdoc}
*/ */
public static function create(string $body): ?Tag public static function create(string $body) : ?Tag
{ {
// File component: File path in quotes or File URI / Source information // File component: File path in quotes or File URI / Source information
if (! preg_match('/^(?:\"([^\"]+)\"|(\S+))(?:\s+(.*))?$/sux', $body, $matches)) { if (!preg_match('/^(?:\"([^\"]+)\"|(\S+))(?:\s+(.*))?$/sux', $body, $matches)) {
return null; return null;
} }
$filePath = null; $filePath = null;
$fileUri = null; $fileUri = null;
if ('' !== $matches[1]) { if ($matches[1] !== '') {
$filePath = $matches[1]; $filePath = $matches[1];
} else { } else {
$fileUri = $matches[2]; $fileUri = $matches[2];
} }
$startingLine = 1; $startingLine = 1;
$lineCount = 0; $lineCount = 0;
$description = null; $description = null;
if (array_key_exists(3, $matches)) { if (array_key_exists(3, $matches)) {
$description = $matches[3]; $description = $matches[3];
@@ -117,7 +121,7 @@ final class Example extends BaseTag
} }
return new static( return new static(
$filePath !== null ? $filePath : $fileUri, $filePath ?? $fileUri,
$fileUri !== null, $fileUri !== null,
$startingLine, $startingLine,
$lineCount, $lineCount,
@@ -131,7 +135,7 @@ final class Example extends BaseTag
* @return string Path to a file to use as an example. * @return string Path to a file to use as an example.
* May also be an absolute URI. * May also be an absolute URI.
*/ */
public function getFilePath(): string public function getFilePath() : string
{ {
return $this->filePath; return $this->filePath;
} }
@@ -139,7 +143,7 @@ final class Example extends BaseTag
/** /**
* Returns a string representation for this tag. * Returns a string representation for this tag.
*/ */
public function __toString(): string public function __toString() : string
{ {
return $this->filePath . ($this->description ? ' ' . $this->description : ''); return $this->filePath . ($this->description ? ' ' . $this->description : '');
} }
@@ -147,17 +151,17 @@ final class Example extends BaseTag
/** /**
* Returns true if the provided URI is relative or contains a complete scheme (and thus is absolute). * Returns true if the provided URI is relative or contains a complete scheme (and thus is absolute).
*/ */
private function isUriRelative(string $uri): bool private function isUriRelative(string $uri) : bool
{ {
return false === strpos($uri, ':'); return strpos($uri, ':') === false;
} }
public function getStartingLine(): int public function getStartingLine() : int
{ {
return $this->startingLine; return $this->startingLine;
} }
public function getLineCount(): int public function getLineCount() : int
{ {
return $this->lineCount; return $this->lineCount;
} }
+3 -3
View File
@@ -1,4 +1,6 @@
<?php declare(strict_types=1); <?php
declare(strict_types=1);
/** /**
* This file is part of phpDocumentor. * This file is part of phpDocumentor.
@@ -6,8 +8,6 @@
* For the full copyright and license information, please view the LICENSE * For the full copyright and license information, please view the LICENSE
* file that was distributed with this source code. * file that was distributed with this source code.
* *
* @copyright 2010-2018 Mike van Riel<[email protected]>
* @license http://www.opensource.org/licenses/mit-license.php MIT
* @link http://phpdoc.org * @link http://phpdoc.org
*/ */
-19
View File
@@ -1,19 +0,0 @@
<?php declare(strict_types=1);
/**
* 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-2018 Mike van Riel<[email protected]>
* @license http://www.opensource.org/licenses/mit-license.php MIT
* @link http://phpdoc.org
*/
namespace phpDocumentor\Reflection\DocBlock\Tags\Factory;
interface Strategy
{
public function create($body): void;
}
+4 -4
View File
@@ -1,4 +1,6 @@
<?php declare(strict_types=1); <?php
declare(strict_types=1);
/** /**
* This file is part of phpDocumentor. * This file is part of phpDocumentor.
@@ -6,8 +8,6 @@
* For the full copyright and license information, please view the LICENSE * For the full copyright and license information, please view the LICENSE
* file that was distributed with this source code. * file that was distributed with this source code.
* *
* @copyright 2010-2018 Mike van Riel<[email protected]>
* @license http://www.opensource.org/licenses/mit-license.php MIT
* @link http://phpdoc.org * @link http://phpdoc.org
*/ */
@@ -20,5 +20,5 @@ interface Formatter
/** /**
* Formats a tag into a string representation according to a specific format, such as Markdown. * Formats a tag into a string representation according to a specific format, such as Markdown.
*/ */
public function format(Tag $tag): string; public function format(Tag $tag) : string;
} }
+13 -8
View File
@@ -1,4 +1,6 @@
<?php declare(strict_types=1); <?php
declare(strict_types=1);
/** /**
* This file is part of phpDocumentor. * This file is part of phpDocumentor.
@@ -6,9 +8,6 @@
* For the full copyright and license information, please view the LICENSE * For the full copyright and license information, please view the LICENSE
* file that was distributed with this source code. * file that was distributed with this source code.
* *
* @author Jan Schneider <[email protected]>
* @copyright 2018 Mike van Riel<[email protected]>
* @license http://www.opensource.org/licenses/mit-license.php MIT
* @link http://phpdoc.org * @link http://phpdoc.org
*/ */
@@ -16,6 +15,9 @@ namespace phpDocumentor\Reflection\DocBlock\Tags\Formatter;
use phpDocumentor\Reflection\DocBlock\Tag; use phpDocumentor\Reflection\DocBlock\Tag;
use phpDocumentor\Reflection\DocBlock\Tags\Formatter; use phpDocumentor\Reflection\DocBlock\Tags\Formatter;
use function max;
use function str_repeat;
use function strlen;
class AlignFormatter implements Formatter class AlignFormatter implements Formatter
{ {
@@ -23,8 +25,6 @@ class AlignFormatter implements Formatter
protected $maxLen = 0; protected $maxLen = 0;
/** /**
* Constructor.
*
* @param Tag[] $tags All tags that should later be aligned with the formatter. * @param Tag[] $tags All tags that should later be aligned with the formatter.
*/ */
public function __construct(array $tags) public function __construct(array $tags)
@@ -37,8 +37,13 @@ class AlignFormatter implements Formatter
/** /**
* Formats the given tag to return a simple plain text version. * Formats the given tag to return a simple plain text version.
*/ */
public function format(Tag $tag): string public function format(Tag $tag) : string
{ {
return '@' . $tag->getName() . str_repeat(' ', $this->maxLen - strlen($tag->getName()) + 1) . (string) $tag; return '@' . $tag->getName() .
str_repeat(
' ',
$this->maxLen - strlen($tag->getName()) + 1
) .
$tag;
} }
} }
@@ -1,4 +1,6 @@
<?php declare(strict_types=1); <?php
declare(strict_types=1);
/** /**
* This file is part of phpDocumentor. * This file is part of phpDocumentor.
@@ -6,8 +8,6 @@
* For the full copyright and license information, please view the LICENSE * For the full copyright and license information, please view the LICENSE
* file that was distributed with this source code. * file that was distributed with this source code.
* *
* @copyright 2010-2018 Mike van Riel<[email protected]>
* @license http://www.opensource.org/licenses/mit-license.php MIT
* @link http://phpdoc.org * @link http://phpdoc.org
*/ */
@@ -15,14 +15,15 @@ namespace phpDocumentor\Reflection\DocBlock\Tags\Formatter;
use phpDocumentor\Reflection\DocBlock\Tag; use phpDocumentor\Reflection\DocBlock\Tag;
use phpDocumentor\Reflection\DocBlock\Tags\Formatter; use phpDocumentor\Reflection\DocBlock\Tags\Formatter;
use function trim;
class PassthroughFormatter implements Formatter class PassthroughFormatter implements Formatter
{ {
/** /**
* Formats the given tag to return a simple plain text version. * Formats the given tag to return a simple plain text version.
*/ */
public function format(Tag $tag): string public function format(Tag $tag) : string
{ {
return trim('@' . $tag->getName() . ' ' . (string) $tag); return trim('@' . $tag->getName() . ' ' . $tag);
} }
} }
+13 -12
View File
@@ -1,4 +1,6 @@
<?php declare(strict_types=1); <?php
declare(strict_types=1);
/** /**
* This file is part of phpDocumentor. * This file is part of phpDocumentor.
@@ -6,18 +8,18 @@
* For the full copyright and license information, please view the LICENSE * For the full copyright and license information, please view the LICENSE
* file that was distributed with this source code. * file that was distributed with this source code.
* *
* @copyright 2010-2018 Mike van Riel<[email protected]>
* @license http://www.opensource.org/licenses/mit-license.php MIT
* @link http://phpdoc.org * @link http://phpdoc.org
*/ */
namespace phpDocumentor\Reflection\DocBlock\Tags; namespace phpDocumentor\Reflection\DocBlock\Tags;
use InvalidArgumentException;
use phpDocumentor\Reflection\DocBlock\Description; use phpDocumentor\Reflection\DocBlock\Description;
use phpDocumentor\Reflection\DocBlock\DescriptionFactory; use phpDocumentor\Reflection\DocBlock\DescriptionFactory;
use phpDocumentor\Reflection\DocBlock\StandardTagFactory; use phpDocumentor\Reflection\DocBlock\StandardTagFactory;
use phpDocumentor\Reflection\Types\Context as TypeContext; use phpDocumentor\Reflection\Types\Context as TypeContext;
use Webmozart\Assert\Assert; use Webmozart\Assert\Assert;
use function preg_match;
/** /**
* Parses a tag definition for a DocBlock. * Parses a tag definition for a DocBlock.
@@ -27,21 +29,20 @@ class Generic extends BaseTag implements Factory\StaticMethod
/** /**
* Parses a tag and populates the member variables. * Parses a tag and populates the member variables.
* *
* @param string $name Name of the tag. * @param string $name Name of the tag.
* @param Description $description The contents of the given tag. * @param Description $description The contents of the given tag.
*/ */
public function __construct(string $name, ?Description $description = null) public function __construct(string $name, ?Description $description = null)
{ {
$this->validateTagName($name); $this->validateTagName($name);
$this->name = $name; $this->name = $name;
$this->description = $description; $this->description = $description;
} }
/** /**
* Creates a new tag that represents any unknown tag type. * Creates a new tag that represents any unknown tag type.
* *
*
* @return static * @return static
*/ */
public static function create( public static function create(
@@ -49,11 +50,11 @@ class Generic extends BaseTag implements Factory\StaticMethod
string $name = '', string $name = '',
?DescriptionFactory $descriptionFactory = null, ?DescriptionFactory $descriptionFactory = null,
?TypeContext $context = null ?TypeContext $context = null
): self { ) : self {
Assert::stringNotEmpty($name); Assert::stringNotEmpty($name);
Assert::notNull($descriptionFactory); Assert::notNull($descriptionFactory);
$description = $descriptionFactory && $body !== "" ? $descriptionFactory->create($body, $context) : null; $description = $descriptionFactory && $body !== '' ? $descriptionFactory->create($body, $context) : null;
return new static($name, $description); return new static($name, $description);
} }
@@ -61,7 +62,7 @@ class Generic extends BaseTag implements Factory\StaticMethod
/** /**
* Returns the tag as a serialized string * Returns the tag as a serialized string
*/ */
public function __toString(): string public function __toString() : string
{ {
return $this->description ? $this->description->render() : ''; return $this->description ? $this->description->render() : '';
} }
@@ -69,10 +70,10 @@ class Generic extends BaseTag implements Factory\StaticMethod
/** /**
* Validates if the tag name matches the expected format, otherwise throws an exception. * Validates if the tag name matches the expected format, otherwise throws an exception.
*/ */
private function validateTagName(string $name): void private function validateTagName(string $name) : void
{ {
if (! preg_match('/^' . StandardTagFactory::REGEX_TAGNAME . '$/u', $name)) { if (!preg_match('/^' . StandardTagFactory::REGEX_TAGNAME . '$/u', $name)) {
throw new \InvalidArgumentException( throw new InvalidArgumentException(
'The tag name "' . $name . '" is not wellformed. Tags may only consist of letters, underscores, ' 'The tag name "' . $name . '" is not wellformed. Tags may only consist of letters, underscores, '
. 'hyphens and backslashes.' . 'hyphens and backslashes.'
); );
+19 -14
View File
@@ -1,14 +1,14 @@
<?php declare(strict_types=1); <?php
declare(strict_types=1);
/** /**
* phpDocumentor * This file is part of phpDocumentor.
* *
* PHP Version 5.3 * For the full copyright and license information, please view the LICENSE
* file that was distributed with this source code.
* *
* @author Ben Selby <[email protected]> * @link http://phpdoc.org
* @copyright 2010-2018 Mike van Riel / Naenius (http://www.naenius.com)
* @license http://www.opensource.org/licenses/mit-license.php MIT
* @link http://phpdoc.org
*/ */
namespace phpDocumentor\Reflection\DocBlock\Tags; namespace phpDocumentor\Reflection\DocBlock\Tags;
@@ -17,34 +17,39 @@ use phpDocumentor\Reflection\DocBlock\Description;
use phpDocumentor\Reflection\DocBlock\DescriptionFactory; use phpDocumentor\Reflection\DocBlock\DescriptionFactory;
use phpDocumentor\Reflection\Types\Context as TypeContext; use phpDocumentor\Reflection\Types\Context as TypeContext;
use Webmozart\Assert\Assert; use Webmozart\Assert\Assert;
use function preg_split;
/** /**
* Reflection class for a @link tag in a Docblock. * Reflection class for a @link tag in a Docblock.
*/ */
final class Link extends BaseTag implements Factory\StaticMethod final class Link extends BaseTag implements Factory\StaticMethod
{ {
/** @var string */
protected $name = 'link'; protected $name = 'link';
/** @var string */ /** @var string */
private $link = ''; private $link;
/** /**
* Initializes a link to a URL. * Initializes a link to a URL.
*/ */
public function __construct(string $link, ?Description $description = null) public function __construct(string $link, ?Description $description = null)
{ {
$this->link = $link; $this->link = $link;
$this->description = $description; $this->description = $description;
} }
/** /**
* {@inheritdoc} * {@inheritdoc}
*/ */
public static function create(string $body, ?DescriptionFactory $descriptionFactory = null, ?TypeContext $context = null): self public static function create(
{ string $body,
?DescriptionFactory $descriptionFactory = null,
?TypeContext $context = null
) : self {
Assert::notNull($descriptionFactory); Assert::notNull($descriptionFactory);
$parts = preg_split('/\s+/Su', $body, 2); $parts = preg_split('/\s+/Su', $body, 2);
$description = isset($parts[1]) ? $descriptionFactory->create($parts[1], $context) : null; $description = isset($parts[1]) ? $descriptionFactory->create($parts[1], $context) : null;
return new static($parts[0], $description); return new static($parts[0], $description);
@@ -53,7 +58,7 @@ final class Link extends BaseTag implements Factory\StaticMethod
/** /**
* Gets the link * Gets the link
*/ */
public function getLink(): string public function getLink() : string
{ {
return $this->link; return $this->link;
} }
@@ -61,7 +66,7 @@ final class Link extends BaseTag implements Factory\StaticMethod
/** /**
* Returns a string representation for this tag. * Returns a string representation for this tag.
*/ */
public function __toString(): string public function __toString() : string
{ {
return $this->link . ($this->description ? ' ' . $this->description->render() : ''); return $this->link . ($this->description ? ' ' . $this->description->render() : '');
} }
+43 -22
View File
@@ -1,4 +1,6 @@
<?php declare(strict_types=1); <?php
declare(strict_types=1);
/** /**
* This file is part of phpDocumentor. * This file is part of phpDocumentor.
@@ -6,13 +8,12 @@
* For the full copyright and license information, please view the LICENSE * For the full copyright and license information, please view the LICENSE
* file that was distributed with this source code. * file that was distributed with this source code.
* *
* @copyright 2010-2018 Mike van Riel<mike@phpdoc.org> * @link http://phpdoc.org
* @license http://www.opensource.org/licenses/mit-license.php MIT
* @link http://phpdoc.org
*/ */
namespace phpDocumentor\Reflection\DocBlock\Tags; namespace phpDocumentor\Reflection\DocBlock\Tags;
use InvalidArgumentException;
use phpDocumentor\Reflection\DocBlock\Description; use phpDocumentor\Reflection\DocBlock\Description;
use phpDocumentor\Reflection\DocBlock\DescriptionFactory; use phpDocumentor\Reflection\DocBlock\DescriptionFactory;
use phpDocumentor\Reflection\Type; use phpDocumentor\Reflection\Type;
@@ -20,12 +21,24 @@ use phpDocumentor\Reflection\TypeResolver;
use phpDocumentor\Reflection\Types\Context as TypeContext; use phpDocumentor\Reflection\Types\Context as TypeContext;
use phpDocumentor\Reflection\Types\Void_; use phpDocumentor\Reflection\Types\Void_;
use Webmozart\Assert\Assert; use Webmozart\Assert\Assert;
use function array_keys;
use function explode;
use function implode;
use function is_string;
use function preg_match;
use function sort;
use function strlen;
use function strpos;
use function substr;
use function trim;
use function var_export;
/** /**
* Reflection class for an {@}method in a Docblock. * Reflection class for an {@}method in a Docblock.
*/ */
final class Method extends BaseTag implements Factory\StaticMethod final class Method extends BaseTag implements Factory\StaticMethod
{ {
/** @var string */
protected $name = 'method'; protected $name = 'method';
/** @var string */ /** @var string */
@@ -40,11 +53,14 @@ final class Method extends BaseTag implements Factory\StaticMethod
/** @var Type */ /** @var Type */
private $returnType; private $returnType;
/**
* @param mixed[][] $arguments $arguments
*/
public function __construct( public function __construct(
$methodName, string $methodName,
array $arguments = [], array $arguments = [],
?Type $returnType = null, ?Type $returnType = null,
$static = false, bool $static = false,
?Description $description = null ?Description $description = null
) { ) {
Assert::stringNotEmpty($methodName); Assert::stringNotEmpty($methodName);
@@ -54,10 +70,10 @@ final class Method extends BaseTag implements Factory\StaticMethod
$returnType = new Void_(); $returnType = new Void_();
} }
$this->methodName = $methodName; $this->methodName = $methodName;
$this->arguments = $this->filterArguments($arguments); $this->arguments = $this->filterArguments($arguments);
$this->returnType = $returnType; $this->returnType = $returnType;
$this->isStatic = $static; $this->isStatic = $static;
$this->description = $description; $this->description = $description;
} }
@@ -69,7 +85,7 @@ final class Method extends BaseTag implements Factory\StaticMethod
?TypeResolver $typeResolver = null, ?TypeResolver $typeResolver = null,
?DescriptionFactory $descriptionFactory = null, ?DescriptionFactory $descriptionFactory = null,
?TypeContext $context = null ?TypeContext $context = null
): ?self { ) : ?self {
Assert::stringNotEmpty($body); Assert::stringNotEmpty($body);
Assert::allNotNull([$typeResolver, $descriptionFactory]); Assert::allNotNull([$typeResolver, $descriptionFactory]);
@@ -131,7 +147,7 @@ final class Method extends BaseTag implements Factory\StaticMethod
$returnType = 'void'; $returnType = 'void';
} }
$returnType = $typeResolver->resolve($returnType, $context); $returnType = $typeResolver->resolve($returnType, $context);
$description = $descriptionFactory->create($description, $context); $description = $descriptionFactory->create($description, $context);
if (is_string($arguments) && strlen($arguments) > 0) { if (is_string($arguments) && strlen($arguments) > 0) {
@@ -145,7 +161,7 @@ final class Method extends BaseTag implements Factory\StaticMethod
$argumentType = $typeResolver->resolve($argument[0], $context); $argumentType = $typeResolver->resolve($argument[0], $context);
$argumentName = ''; $argumentName = '';
if (isset($argument[1])) { if (isset($argument[1])) {
$argument[1] = self::stripRestArg($argument[1]); $argument[1] = self::stripRestArg($argument[1]);
$argumentName = substr($argument[1], 1); $argumentName = substr($argument[1], 1);
} }
} }
@@ -162,7 +178,7 @@ final class Method extends BaseTag implements Factory\StaticMethod
/** /**
* Retrieves the method name. * Retrieves the method name.
*/ */
public function getMethodName(): string public function getMethodName() : string
{ {
return $this->methodName; return $this->methodName;
} }
@@ -170,7 +186,7 @@ final class Method extends BaseTag implements Factory\StaticMethod
/** /**
* @return string[] * @return string[]
*/ */
public function getArguments(): array public function getArguments() : array
{ {
return $this->arguments; return $this->arguments;
} }
@@ -180,17 +196,17 @@ final class Method extends BaseTag implements Factory\StaticMethod
* *
* @return bool TRUE if the method declaration is for a static method, FALSE otherwise. * @return bool TRUE if the method declaration is for a static method, FALSE otherwise.
*/ */
public function isStatic(): bool public function isStatic() : bool
{ {
return $this->isStatic; return $this->isStatic;
} }
public function getReturnType(): Type public function getReturnType() : Type
{ {
return $this->returnType; return $this->returnType;
} }
public function __toString(): string public function __toString() : string
{ {
$arguments = []; $arguments = [];
foreach ($this->arguments as $argument) { foreach ($this->arguments as $argument) {
@@ -204,21 +220,26 @@ final class Method extends BaseTag implements Factory\StaticMethod
. ($this->description ? ' ' . $this->description->render() : '')); . ($this->description ? ' ' . $this->description->render() : ''));
} }
private function filterArguments(array $arguments = []): array /**
* @param mixed[][] $arguments
*
* @return mixed[][]
*/
private function filterArguments(array $arguments = []) : array
{ {
foreach ($arguments as &$argument) { foreach ($arguments as &$argument) {
if (is_string($argument)) { if (is_string($argument)) {
$argument = ['name' => $argument]; $argument = ['name' => $argument];
} }
if (! isset($argument['type'])) { if (!isset($argument['type'])) {
$argument['type'] = new Void_(); $argument['type'] = new Void_();
} }
$keys = array_keys($argument); $keys = array_keys($argument);
sort($keys); sort($keys);
if ($keys !== ['name', 'type']) { if ($keys !== ['name', 'type']) {
throw new \InvalidArgumentException( throw new InvalidArgumentException(
'Arguments can only have the "name" and "type" fields, found: ' . var_export($keys, true) 'Arguments can only have the "name" and "type" fields, found: ' . var_export($keys, true)
); );
} }
@@ -227,7 +248,7 @@ final class Method extends BaseTag implements Factory\StaticMethod
return $arguments; return $arguments;
} }
private static function stripRestArg(string $argument): string private static function stripRestArg(string $argument) : string
{ {
if (strpos($argument, '...') === 0) { if (strpos($argument, '...') === 0) {
$argument = trim(substr($argument, 3)); $argument = trim(substr($argument, 3));
+34 -21
View File
@@ -1,4 +1,6 @@
<?php declare(strict_types=1); <?php
declare(strict_types=1);
/** /**
* This file is part of phpDocumentor. * This file is part of phpDocumentor.
@@ -6,8 +8,6 @@
* For the full copyright and license information, please view the LICENSE * For the full copyright and license information, please view the LICENSE
* file that was distributed with this source code. * file that was distributed with this source code.
* *
* @copyright 2010-2018 Mike van Riel<[email protected]>
* @license http://www.opensource.org/licenses/mit-license.php MIT
* @link http://phpdoc.org * @link http://phpdoc.org
*/ */
@@ -19,6 +19,13 @@ use phpDocumentor\Reflection\Type;
use phpDocumentor\Reflection\TypeResolver; use phpDocumentor\Reflection\TypeResolver;
use phpDocumentor\Reflection\Types\Context as TypeContext; use phpDocumentor\Reflection\Types\Context as TypeContext;
use Webmozart\Assert\Assert; use Webmozart\Assert\Assert;
use const PREG_SPLIT_DELIM_CAPTURE;
use function array_shift;
use function implode;
use function preg_split;
use function strlen;
use function strpos;
use function substr;
/** /**
* Reflection class for the {@}param tag in a Docblock. * Reflection class for the {@}param tag in a Docblock.
@@ -37,12 +44,16 @@ final class Param extends BaseTag implements Factory\StaticMethod
/** @var bool determines whether this is a variadic argument */ /** @var bool determines whether this is a variadic argument */
private $isVariadic = false; private $isVariadic = false;
public function __construct(string $variableName, ?Type $type = null, bool $isVariadic = false, ?Description $description = null) public function __construct(
{ string $variableName,
?Type $type = null,
bool $isVariadic = false,
?Description $description = null
) {
$this->variableName = $variableName; $this->variableName = $variableName;
$this->type = $type; $this->type = $type;
$this->isVariadic = $isVariadic; $this->isVariadic = $isVariadic;
$this->description = $description; $this->description = $description;
} }
/** /**
@@ -53,14 +64,14 @@ final class Param extends BaseTag implements Factory\StaticMethod
?TypeResolver $typeResolver = null, ?TypeResolver $typeResolver = null,
?DescriptionFactory $descriptionFactory = null, ?DescriptionFactory $descriptionFactory = null,
?TypeContext $context = null ?TypeContext $context = null
): self { ) : self {
Assert::stringNotEmpty($body); Assert::stringNotEmpty($body);
Assert::allNotNull([$typeResolver, $descriptionFactory]); Assert::allNotNull([$typeResolver, $descriptionFactory]);
$parts = preg_split('/(\s+)/Su', $body, 3, PREG_SPLIT_DELIM_CAPTURE); $parts = preg_split('/(\s+)/Su', $body, 3, PREG_SPLIT_DELIM_CAPTURE);
$type = null; $type = null;
$variableName = ''; $variableName = '';
$isVariadic = false; $isVariadic = false;
// if the first item that is encountered is not a variable; it is a type // if the first item that is encountered is not a variable; it is a type
if (isset($parts[0]) && (strlen($parts[0]) > 0) && ($parts[0][0] !== '$')) { if (isset($parts[0]) && (strlen($parts[0]) > 0) && ($parts[0][0] !== '$')) {
@@ -69,12 +80,14 @@ final class Param extends BaseTag implements Factory\StaticMethod
} }
// if the next item starts with a $ or ...$ it must be the variable name // if the next item starts with a $ or ...$ it must be the variable name
if (isset($parts[0]) && (strlen($parts[0]) > 0) && ($parts[0][0] === '$' || substr($parts[0], 0, 4) === '...$')) { if (isset($parts[0]) && (strlen($parts[0]) > 0) &&
(strpos($parts[0], '$') === 0 || strpos($parts[0], '...$') === 0)
) {
$variableName = array_shift($parts); $variableName = array_shift($parts);
array_shift($parts); array_shift($parts);
if (substr($variableName, 0, 3) === '...') { if (substr($variableName, 0, 3) === '...') {
$isVariadic = true; $isVariadic = true;
$variableName = substr($variableName, 3); $variableName = substr($variableName, 3);
} }
@@ -91,7 +104,7 @@ final class Param extends BaseTag implements Factory\StaticMethod
/** /**
* Returns the variable's name. * Returns the variable's name.
*/ */
public function getVariableName(): string public function getVariableName() : string
{ {
return $this->variableName; return $this->variableName;
} }
@@ -99,7 +112,7 @@ final class Param extends BaseTag implements Factory\StaticMethod
/** /**
* Returns the variable's type or null if unknown. * Returns the variable's type or null if unknown.
*/ */
public function getType(): ?Type public function getType() : ?Type
{ {
return $this->type; return $this->type;
} }
@@ -107,7 +120,7 @@ final class Param extends BaseTag implements Factory\StaticMethod
/** /**
* Returns whether this tag is variadic. * Returns whether this tag is variadic.
*/ */
public function isVariadic(): bool public function isVariadic() : bool
{ {
return $this->isVariadic; return $this->isVariadic;
} }
@@ -115,11 +128,11 @@ final class Param extends BaseTag implements Factory\StaticMethod
/** /**
* Returns a string representation for this tag. * Returns a string representation for this tag.
*/ */
public function __toString(): string public function __toString() : string
{ {
return ($this->type ? $this->type . ' ' : '') return ($this->type ? $this->type . ' ' : '')
. ($this->isVariadic() ? '...' : '') . ($this->isVariadic() ? '...' : '')
. '$' . $this->variableName . '$' . $this->variableName
. ($this->description ? ' ' . $this->description : ''); . ($this->description ? ' ' . $this->description : '');
} }
} }
+19 -13
View File
@@ -1,4 +1,6 @@
<?php declare(strict_types=1); <?php
declare(strict_types=1);
/** /**
* This file is part of phpDocumentor. * This file is part of phpDocumentor.
@@ -6,8 +8,6 @@
* For the full copyright and license information, please view the LICENSE * For the full copyright and license information, please view the LICENSE
* file that was distributed with this source code. * file that was distributed with this source code.
* *
* @copyright 2010-2018 Mike van Riel<[email protected]>
* @license http://www.opensource.org/licenses/mit-license.php MIT
* @link http://phpdoc.org * @link http://phpdoc.org
*/ */
@@ -19,6 +19,12 @@ use phpDocumentor\Reflection\Type;
use phpDocumentor\Reflection\TypeResolver; use phpDocumentor\Reflection\TypeResolver;
use phpDocumentor\Reflection\Types\Context as TypeContext; use phpDocumentor\Reflection\Types\Context as TypeContext;
use Webmozart\Assert\Assert; use Webmozart\Assert\Assert;
use const PREG_SPLIT_DELIM_CAPTURE;
use function array_shift;
use function implode;
use function preg_split;
use function strlen;
use function substr;
/** /**
* Reflection class for a {@}property tag in a Docblock. * Reflection class for a {@}property tag in a Docblock.
@@ -37,8 +43,8 @@ class Property extends BaseTag implements Factory\StaticMethod
public function __construct(string $variableName, ?Type $type = null, ?Description $description = null) public function __construct(string $variableName, ?Type $type = null, ?Description $description = null)
{ {
$this->variableName = $variableName; $this->variableName = $variableName;
$this->type = $type; $this->type = $type;
$this->description = $description; $this->description = $description;
} }
/** /**
@@ -49,12 +55,12 @@ class Property extends BaseTag implements Factory\StaticMethod
?TypeResolver $typeResolver = null, ?TypeResolver $typeResolver = null,
?DescriptionFactory $descriptionFactory = null, ?DescriptionFactory $descriptionFactory = null,
?TypeContext $context = null ?TypeContext $context = null
): self { ) : self {
Assert::stringNotEmpty($body); Assert::stringNotEmpty($body);
Assert::allNotNull([$typeResolver, $descriptionFactory]); Assert::allNotNull([$typeResolver, $descriptionFactory]);
$parts = preg_split('/(\s+)/Su', $body, 3, PREG_SPLIT_DELIM_CAPTURE); $parts = preg_split('/(\s+)/Su', $body, 3, PREG_SPLIT_DELIM_CAPTURE);
$type = null; $type = null;
$variableName = ''; $variableName = '';
// if the first item that is encountered is not a variable; it is a type // if the first item that is encountered is not a variable; it is a type
@@ -81,7 +87,7 @@ class Property extends BaseTag implements Factory\StaticMethod
/** /**
* Returns the variable's name. * Returns the variable's name.
*/ */
public function getVariableName(): string public function getVariableName() : string
{ {
return $this->variableName; return $this->variableName;
} }
@@ -89,7 +95,7 @@ class Property extends BaseTag implements Factory\StaticMethod
/** /**
* Returns the variable's type or null if unknown. * Returns the variable's type or null if unknown.
*/ */
public function getType(): ?Type public function getType() : ?Type
{ {
return $this->type; return $this->type;
} }
@@ -97,10 +103,10 @@ class Property extends BaseTag implements Factory\StaticMethod
/** /**
* Returns a string representation for this tag. * Returns a string representation for this tag.
*/ */
public function __toString(): string public function __toString() : string
{ {
return ($this->type ? $this->type . ' ' : '') return ($this->type ? $this->type . ' ' : '')
. '$' . $this->variableName . '$' . $this->variableName
. ($this->description ? ' ' . $this->description : ''); . ($this->description ? ' ' . $this->description : '');
} }
} }
+19 -13
View File
@@ -1,4 +1,6 @@
<?php declare(strict_types=1); <?php
declare(strict_types=1);
/** /**
* This file is part of phpDocumentor. * This file is part of phpDocumentor.
@@ -6,8 +8,6 @@
* For the full copyright and license information, please view the LICENSE * For the full copyright and license information, please view the LICENSE
* file that was distributed with this source code. * file that was distributed with this source code.
* *
* @copyright 2010-2018 Mike van Riel<[email protected]>
* @license http://www.opensource.org/licenses/mit-license.php MIT
* @link http://phpdoc.org * @link http://phpdoc.org
*/ */
@@ -19,6 +19,12 @@ use phpDocumentor\Reflection\Type;
use phpDocumentor\Reflection\TypeResolver; use phpDocumentor\Reflection\TypeResolver;
use phpDocumentor\Reflection\Types\Context as TypeContext; use phpDocumentor\Reflection\Types\Context as TypeContext;
use Webmozart\Assert\Assert; use Webmozart\Assert\Assert;
use const PREG_SPLIT_DELIM_CAPTURE;
use function array_shift;
use function implode;
use function preg_split;
use function strlen;
use function substr;
/** /**
* Reflection class for a {@}property-read tag in a Docblock. * Reflection class for a {@}property-read tag in a Docblock.
@@ -37,8 +43,8 @@ class PropertyRead extends BaseTag implements Factory\StaticMethod
public function __construct(string $variableName, ?Type $type = null, ?Description $description = null) public function __construct(string $variableName, ?Type $type = null, ?Description $description = null)
{ {
$this->variableName = $variableName; $this->variableName = $variableName;
$this->type = $type; $this->type = $type;
$this->description = $description; $this->description = $description;
} }
/** /**
@@ -49,12 +55,12 @@ class PropertyRead extends BaseTag implements Factory\StaticMethod
?TypeResolver $typeResolver = null, ?TypeResolver $typeResolver = null,
?DescriptionFactory $descriptionFactory = null, ?DescriptionFactory $descriptionFactory = null,
?TypeContext $context = null ?TypeContext $context = null
): self { ) : self {
Assert::stringNotEmpty($body); Assert::stringNotEmpty($body);
Assert::allNotNull([$typeResolver, $descriptionFactory]); Assert::allNotNull([$typeResolver, $descriptionFactory]);
$parts = preg_split('/(\s+)/Su', $body, 3, PREG_SPLIT_DELIM_CAPTURE); $parts = preg_split('/(\s+)/Su', $body, 3, PREG_SPLIT_DELIM_CAPTURE);
$type = null; $type = null;
$variableName = ''; $variableName = '';
// if the first item that is encountered is not a variable; it is a type // if the first item that is encountered is not a variable; it is a type
@@ -81,7 +87,7 @@ class PropertyRead extends BaseTag implements Factory\StaticMethod
/** /**
* Returns the variable's name. * Returns the variable's name.
*/ */
public function getVariableName(): string public function getVariableName() : string
{ {
return $this->variableName; return $this->variableName;
} }
@@ -89,7 +95,7 @@ class PropertyRead extends BaseTag implements Factory\StaticMethod
/** /**
* Returns the variable's type or null if unknown. * Returns the variable's type or null if unknown.
*/ */
public function getType(): ?Type public function getType() : ?Type
{ {
return $this->type; return $this->type;
} }
@@ -97,10 +103,10 @@ class PropertyRead extends BaseTag implements Factory\StaticMethod
/** /**
* Returns a string representation for this tag. * Returns a string representation for this tag.
*/ */
public function __toString(): string public function __toString() : string
{ {
return ($this->type ? $this->type . ' ' : '') return ($this->type ? $this->type . ' ' : '')
. '$' . $this->variableName . '$' . $this->variableName
. ($this->description ? ' ' . $this->description : ''); . ($this->description ? ' ' . $this->description : '');
} }
} }
+19 -13
View File
@@ -1,4 +1,6 @@
<?php declare(strict_types=1); <?php
declare(strict_types=1);
/** /**
* This file is part of phpDocumentor. * This file is part of phpDocumentor.
@@ -6,8 +8,6 @@
* For the full copyright and license information, please view the LICENSE * For the full copyright and license information, please view the LICENSE
* file that was distributed with this source code. * file that was distributed with this source code.
* *
* @copyright 2010-2018 Mike van Riel<[email protected]>
* @license http://www.opensource.org/licenses/mit-license.php MIT
* @link http://phpdoc.org * @link http://phpdoc.org
*/ */
@@ -19,6 +19,12 @@ use phpDocumentor\Reflection\Type;
use phpDocumentor\Reflection\TypeResolver; use phpDocumentor\Reflection\TypeResolver;
use phpDocumentor\Reflection\Types\Context as TypeContext; use phpDocumentor\Reflection\Types\Context as TypeContext;
use Webmozart\Assert\Assert; use Webmozart\Assert\Assert;
use const PREG_SPLIT_DELIM_CAPTURE;
use function array_shift;
use function implode;
use function preg_split;
use function strlen;
use function substr;
/** /**
* Reflection class for a {@}property-write tag in a Docblock. * Reflection class for a {@}property-write tag in a Docblock.
@@ -37,8 +43,8 @@ class PropertyWrite extends BaseTag implements Factory\StaticMethod
public function __construct(string $variableName, ?Type $type = null, ?Description $description = null) public function __construct(string $variableName, ?Type $type = null, ?Description $description = null)
{ {
$this->variableName = $variableName; $this->variableName = $variableName;
$this->type = $type; $this->type = $type;
$this->description = $description; $this->description = $description;
} }
/** /**
@@ -49,12 +55,12 @@ class PropertyWrite extends BaseTag implements Factory\StaticMethod
?TypeResolver $typeResolver = null, ?TypeResolver $typeResolver = null,
?DescriptionFactory $descriptionFactory = null, ?DescriptionFactory $descriptionFactory = null,
?TypeContext $context = null ?TypeContext $context = null
): self { ) : self {
Assert::stringNotEmpty($body); Assert::stringNotEmpty($body);
Assert::allNotNull([$typeResolver, $descriptionFactory]); Assert::allNotNull([$typeResolver, $descriptionFactory]);
$parts = preg_split('/(\s+)/Su', $body, 3, PREG_SPLIT_DELIM_CAPTURE); $parts = preg_split('/(\s+)/Su', $body, 3, PREG_SPLIT_DELIM_CAPTURE);
$type = null; $type = null;
$variableName = ''; $variableName = '';
// if the first item that is encountered is not a variable; it is a type // if the first item that is encountered is not a variable; it is a type
@@ -81,7 +87,7 @@ class PropertyWrite extends BaseTag implements Factory\StaticMethod
/** /**
* Returns the variable's name. * Returns the variable's name.
*/ */
public function getVariableName(): string public function getVariableName() : string
{ {
return $this->variableName; return $this->variableName;
} }
@@ -89,7 +95,7 @@ class PropertyWrite extends BaseTag implements Factory\StaticMethod
/** /**
* Returns the variable's type or null if unknown. * Returns the variable's type or null if unknown.
*/ */
public function getType(): ?Type public function getType() : ?Type
{ {
return $this->type; return $this->type;
} }
@@ -97,10 +103,10 @@ class PropertyWrite extends BaseTag implements Factory\StaticMethod
/** /**
* Returns a string representation for this tag. * Returns a string representation for this tag.
*/ */
public function __toString(): string public function __toString() : string
{ {
return ($this->type ? $this->type . ' ' : '') return ($this->type ? $this->type . ' ' : '')
. '$' . $this->variableName . '$' . $this->variableName
. ($this->description ? ' ' . $this->description : ''); . ($this->description ? ' ' . $this->description : '');
} }
} }
+7 -12
View File
@@ -1,4 +1,6 @@
<?php declare(strict_types=1); <?php
declare(strict_types=1);
/** /**
* This file is part of phpDocumentor. * This file is part of phpDocumentor.
@@ -6,9 +8,7 @@
* For the full copyright and license information, please view the LICENSE * For the full copyright and license information, please view the LICENSE
* file that was distributed with this source code. * file that was distributed with this source code.
* *
* @copyright 2010-2018 Mike van Riel<mike@phpdoc.org> * @link http://phpdoc.org
* @license http://www.opensource.org/licenses/mit-license.php MIT
* @link http://phpdoc.org
*/ */
namespace phpDocumentor\Reflection\DocBlock\Tags\Reference; namespace phpDocumentor\Reflection\DocBlock\Tags\Reference;
@@ -16,18 +16,13 @@ namespace phpDocumentor\Reflection\DocBlock\Tags\Reference;
use phpDocumentor\Reflection\Fqsen as RealFqsen; use phpDocumentor\Reflection\Fqsen as RealFqsen;
/** /**
* Fqsen reference used by {@see phpDocumentor\Reflection\DocBlock\Tags\See} * Fqsen reference used by {@see \phpDocumentor\Reflection\DocBlock\Tags\See}
*/ */
final class Fqsen implements Reference final class Fqsen implements Reference
{ {
/** /** @var RealFqsen */
* @var RealFqsen
*/
private $fqsen; private $fqsen;
/**
* Fqsen constructor.
*/
public function __construct(RealFqsen $fqsen) public function __construct(RealFqsen $fqsen)
{ {
$this->fqsen = $fqsen; $this->fqsen = $fqsen;
@@ -36,7 +31,7 @@ final class Fqsen implements Reference
/** /**
* @return string string representation of the referenced fqsen * @return string string representation of the referenced fqsen
*/ */
public function __toString(): string public function __toString() : string
{ {
return (string) $this->fqsen; return (string) $this->fqsen;
} }
+6 -6
View File
@@ -1,4 +1,6 @@
<?php declare(strict_types=1); <?php
declare(strict_types=1);
/** /**
* This file is part of phpDocumentor. * This file is part of phpDocumentor.
@@ -6,17 +8,15 @@
* For the full copyright and license information, please view the LICENSE * For the full copyright and license information, please view the LICENSE
* file that was distributed with this source code. * file that was distributed with this source code.
* *
* @copyright 2010-2018 Mike van Riel<mike@phpdoc.org> * @link http://phpdoc.org
* @license http://www.opensource.org/licenses/mit-license.php MIT
* @link http://phpdoc.org
*/ */
namespace phpDocumentor\Reflection\DocBlock\Tags\Reference; namespace phpDocumentor\Reflection\DocBlock\Tags\Reference;
/** /**
* Interface for references in {@see phpDocumentor\Reflection\DocBlock\Tags\See} * Interface for references in {@see \phpDocumentor\Reflection\DocBlock\Tags\See}
*/ */
interface Reference interface Reference
{ {
public function __toString(): string; public function __toString() : string;
} }
+7 -12
View File
@@ -1,4 +1,6 @@
<?php declare(strict_types=1); <?php
declare(strict_types=1);
/** /**
* This file is part of phpDocumentor. * This file is part of phpDocumentor.
@@ -6,9 +8,7 @@
* For the full copyright and license information, please view the LICENSE * For the full copyright and license information, please view the LICENSE
* file that was distributed with this source code. * file that was distributed with this source code.
* *
* @copyright 2010-2018 Mike van Riel<mike@phpdoc.org> * @link http://phpdoc.org
* @license http://www.opensource.org/licenses/mit-license.php MIT
* @link http://phpdoc.org
*/ */
namespace phpDocumentor\Reflection\DocBlock\Tags\Reference; namespace phpDocumentor\Reflection\DocBlock\Tags\Reference;
@@ -16,25 +16,20 @@ namespace phpDocumentor\Reflection\DocBlock\Tags\Reference;
use Webmozart\Assert\Assert; use Webmozart\Assert\Assert;
/** /**
* Url reference used by {@see phpDocumentor\Reflection\DocBlock\Tags\See} * Url reference used by {@see \phpDocumentor\Reflection\DocBlock\Tags\See}
*/ */
final class Url implements Reference final class Url implements Reference
{ {
/** /** @var string */
* @var string
*/
private $uri; private $uri;
/**
* Url constructor.
*/
public function __construct(string $uri) public function __construct(string $uri)
{ {
Assert::stringNotEmpty($uri); Assert::stringNotEmpty($uri);
$this->uri = $uri; $this->uri = $uri;
} }
public function __toString(): string public function __toString() : string
{ {
return $this->uri; return $this->uri;
} }
+10 -8
View File
@@ -1,4 +1,6 @@
<?php declare(strict_types=1); <?php
declare(strict_types=1);
/** /**
* This file is part of phpDocumentor. * This file is part of phpDocumentor.
@@ -6,8 +8,6 @@
* For the full copyright and license information, please view the LICENSE * For the full copyright and license information, please view the LICENSE
* file that was distributed with this source code. * file that was distributed with this source code.
* *
* @copyright 2010-2018 Mike van Riel<[email protected]>
* @license http://www.opensource.org/licenses/mit-license.php MIT
* @link http://phpdoc.org * @link http://phpdoc.org
*/ */
@@ -19,12 +19,14 @@ use phpDocumentor\Reflection\Type;
use phpDocumentor\Reflection\TypeResolver; use phpDocumentor\Reflection\TypeResolver;
use phpDocumentor\Reflection\Types\Context as TypeContext; use phpDocumentor\Reflection\Types\Context as TypeContext;
use Webmozart\Assert\Assert; use Webmozart\Assert\Assert;
use function preg_split;
/** /**
* Reflection class for a {@}return tag in a Docblock. * Reflection class for a {@}return tag in a Docblock.
*/ */
final class Return_ extends BaseTag implements Factory\StaticMethod final class Return_ extends BaseTag implements Factory\StaticMethod
{ {
/** @var string */
protected $name = 'return'; protected $name = 'return';
/** @var Type */ /** @var Type */
@@ -32,7 +34,7 @@ final class Return_ extends BaseTag implements Factory\StaticMethod
public function __construct(Type $type, ?Description $description = null) public function __construct(Type $type, ?Description $description = null)
{ {
$this->type = $type; $this->type = $type;
$this->description = $description; $this->description = $description;
} }
@@ -44,12 +46,12 @@ final class Return_ extends BaseTag implements Factory\StaticMethod
?TypeResolver $typeResolver = null, ?TypeResolver $typeResolver = null,
?DescriptionFactory $descriptionFactory = null, ?DescriptionFactory $descriptionFactory = null,
?TypeContext $context = null ?TypeContext $context = null
): self { ) : self {
Assert::allNotNull([$typeResolver, $descriptionFactory]); Assert::allNotNull([$typeResolver, $descriptionFactory]);
$parts = preg_split('/\s+/Su', $body, 2); $parts = preg_split('/\s+/Su', $body, 2);
$type = $typeResolver->resolve($parts[0] ?? '', $context); $type = $typeResolver->resolve($parts[0] ?? '', $context);
$description = $descriptionFactory->create($parts[1] ?? '', $context); $description = $descriptionFactory->create($parts[1] ?? '', $context);
return new static($type, $description); return new static($type, $description);
@@ -58,12 +60,12 @@ final class Return_ extends BaseTag implements Factory\StaticMethod
/** /**
* Returns the type section of the variable. * Returns the type section of the variable.
*/ */
public function getType(): Type public function getType() : Type
{ {
return $this->type; return $this->type;
} }
public function __toString(): string public function __toString() : string
{ {
return $this->type . ' ' . $this->description; return $this->type . ' ' . $this->description;
} }
+12 -9
View File
@@ -1,4 +1,6 @@
<?php declare(strict_types=1); <?php
declare(strict_types=1);
/** /**
* This file is part of phpDocumentor. * This file is part of phpDocumentor.
@@ -6,9 +8,7 @@
* For the full copyright and license information, please view the LICENSE * For the full copyright and license information, please view the LICENSE
* file that was distributed with this source code. * file that was distributed with this source code.
* *
* @copyright 2010-2018 Mike van Riel<mike@phpdoc.org> * @link http://phpdoc.org
* @license http://www.opensource.org/licenses/mit-license.php MIT
* @link http://phpdoc.org
*/ */
namespace phpDocumentor\Reflection\DocBlock\Tags; namespace phpDocumentor\Reflection\DocBlock\Tags;
@@ -21,12 +21,15 @@ use phpDocumentor\Reflection\DocBlock\Tags\Reference\Url;
use phpDocumentor\Reflection\FqsenResolver; use phpDocumentor\Reflection\FqsenResolver;
use phpDocumentor\Reflection\Types\Context as TypeContext; use phpDocumentor\Reflection\Types\Context as TypeContext;
use Webmozart\Assert\Assert; use Webmozart\Assert\Assert;
use function preg_match;
use function preg_split;
/** /**
* Reflection class for an {@}see tag in a Docblock. * Reflection class for an {@}see tag in a Docblock.
*/ */
class See extends BaseTag implements Factory\StaticMethod class See extends BaseTag implements Factory\StaticMethod
{ {
/** @var string */
protected $name = 'see'; protected $name = 'see';
/** @var Reference */ /** @var Reference */
@@ -37,7 +40,7 @@ class See extends BaseTag implements Factory\StaticMethod
*/ */
public function __construct(Reference $refers, ?Description $description = null) public function __construct(Reference $refers, ?Description $description = null)
{ {
$this->refers = $refers; $this->refers = $refers;
$this->description = $description; $this->description = $description;
} }
@@ -49,10 +52,10 @@ class See extends BaseTag implements Factory\StaticMethod
?FqsenResolver $resolver = null, ?FqsenResolver $resolver = null,
?DescriptionFactory $descriptionFactory = null, ?DescriptionFactory $descriptionFactory = null,
?TypeContext $context = null ?TypeContext $context = null
): self { ) : self {
Assert::allNotNull([$resolver, $descriptionFactory]); Assert::allNotNull([$resolver, $descriptionFactory]);
$parts = preg_split('/\s+/Su', $body, 2); $parts = preg_split('/\s+/Su', $body, 2);
$description = isset($parts[1]) ? $descriptionFactory->create($parts[1], $context) : null; $description = isset($parts[1]) ? $descriptionFactory->create($parts[1], $context) : null;
// https://tools.ietf.org/html/rfc2396#section-3 // https://tools.ietf.org/html/rfc2396#section-3
@@ -66,7 +69,7 @@ class See extends BaseTag implements Factory\StaticMethod
/** /**
* Returns the ref of this tag. * Returns the ref of this tag.
*/ */
public function getReference(): Reference public function getReference() : Reference
{ {
return $this->refers; return $this->refers;
} }
@@ -74,7 +77,7 @@ class See extends BaseTag implements Factory\StaticMethod
/** /**
* Returns a string representation of this tag. * Returns a string representation of this tag.
*/ */
public function __toString(): string public function __toString() : string
{ {
return $this->refers . ($this->description ? ' ' . $this->description->render() : ''); return $this->refers . ($this->description ? ' ' . $this->description->render() : '');
} }
+11 -9
View File
@@ -1,4 +1,6 @@
<?php declare(strict_types=1); <?php
declare(strict_types=1);
/** /**
* This file is part of phpDocumentor. * This file is part of phpDocumentor.
@@ -6,8 +8,6 @@
* For the full copyright and license information, please view the LICENSE * For the full copyright and license information, please view the LICENSE
* file that was distributed with this source code. * file that was distributed with this source code.
* *
* @copyright 2010-2018 Mike van Riel<[email protected]>
* @license http://www.opensource.org/licenses/mit-license.php MIT
* @link http://phpdoc.org * @link http://phpdoc.org
*/ */
@@ -17,12 +17,14 @@ use phpDocumentor\Reflection\DocBlock\Description;
use phpDocumentor\Reflection\DocBlock\DescriptionFactory; use phpDocumentor\Reflection\DocBlock\DescriptionFactory;
use phpDocumentor\Reflection\Types\Context as TypeContext; use phpDocumentor\Reflection\Types\Context as TypeContext;
use Webmozart\Assert\Assert; use Webmozart\Assert\Assert;
use function preg_match;
/** /**
* Reflection class for a {@}since tag in a Docblock. * Reflection class for a {@}since tag in a Docblock.
*/ */
final class Since extends BaseTag implements Factory\StaticMethod final class Since extends BaseTag implements Factory\StaticMethod
{ {
/** @var string */
protected $name = 'since'; protected $name = 'since';
/** /**
@@ -44,11 +46,11 @@ final class Since extends BaseTag implements Factory\StaticMethod
/** @var string The version vector. */ /** @var string The version vector. */
private $version = ''; private $version = '';
public function __construct($version = null, ?Description $description = null) public function __construct(?string $version = null, ?Description $description = null)
{ {
Assert::nullOrStringNotEmpty($version); Assert::nullOrStringNotEmpty($version);
$this->version = $version; $this->version = $version;
$this->description = $description; $this->description = $description;
} }
@@ -56,13 +58,13 @@ final class Since extends BaseTag implements Factory\StaticMethod
?string $body, ?string $body,
?DescriptionFactory $descriptionFactory = null, ?DescriptionFactory $descriptionFactory = null,
?TypeContext $context = null ?TypeContext $context = null
): ?self { ) : ?self {
if (empty($body)) { if (empty($body)) {
return new static(); return new static();
} }
$matches = []; $matches = [];
if (! preg_match('/^(' . self::REGEX_VECTOR . ')\s*(.+)?$/sux', $body, $matches)) { if (!preg_match('/^(' . self::REGEX_VECTOR . ')\s*(.+)?$/sux', $body, $matches)) {
return null; return null;
} }
@@ -75,7 +77,7 @@ final class Since extends BaseTag implements Factory\StaticMethod
/** /**
* Gets the version section of the tag. * Gets the version section of the tag.
*/ */
public function getVersion(): ?string public function getVersion() : ?string
{ {
return $this->version; return $this->version;
} }
@@ -83,7 +85,7 @@ final class Since extends BaseTag implements Factory\StaticMethod
/** /**
* Returns a string representation for this tag. * Returns a string representation for this tag.
*/ */
public function __toString(): string public function __toString() : string
{ {
return $this->version . ($this->description ? ' ' . $this->description->render() : ''); return $this->version . ($this->description ? ' ' . $this->description->render() : '');
} }
+18 -13
View File
@@ -1,4 +1,6 @@
<?php declare(strict_types=1); <?php
declare(strict_types=1);
/** /**
* This file is part of phpDocumentor. * This file is part of phpDocumentor.
@@ -6,8 +8,6 @@
* For the full copyright and license information, please view the LICENSE * For the full copyright and license information, please view the LICENSE
* file that was distributed with this source code. * file that was distributed with this source code.
* *
* @copyright 2010-2018 Mike van Riel<[email protected]>
* @license http://www.opensource.org/licenses/mit-license.php MIT
* @link http://phpdoc.org * @link http://phpdoc.org
*/ */
@@ -17,6 +17,7 @@ use phpDocumentor\Reflection\DocBlock\Description;
use phpDocumentor\Reflection\DocBlock\DescriptionFactory; use phpDocumentor\Reflection\DocBlock\DescriptionFactory;
use phpDocumentor\Reflection\Types\Context as TypeContext; use phpDocumentor\Reflection\Types\Context as TypeContext;
use Webmozart\Assert\Assert; use Webmozart\Assert\Assert;
use function preg_match;
/** /**
* Reflection class for a {@}source tag in a Docblock. * Reflection class for a {@}source tag in a Docblock.
@@ -32,14 +33,18 @@ final class Source extends BaseTag implements Factory\StaticMethod
/** @var int|null The number of lines, relative to the starting line. NULL means "to the end". */ /** @var int|null The number of lines, relative to the starting line. NULL means "to the end". */
private $lineCount; private $lineCount;
/**
* @param int|string $startingLine should be a to int convertible value
* @param int|string|null $lineCount should be a to int convertible value
*/
public function __construct($startingLine, $lineCount = null, ?Description $description = null) public function __construct($startingLine, $lineCount = null, ?Description $description = null)
{ {
Assert::integerish($startingLine); Assert::integerish($startingLine);
Assert::nullOrIntegerish($lineCount); Assert::nullOrIntegerish($lineCount);
$this->startingLine = (int) $startingLine; $this->startingLine = (int) $startingLine;
$this->lineCount = $lineCount !== null ? (int) $lineCount : null; $this->lineCount = $lineCount !== null ? (int) $lineCount : null;
$this->description = $description; $this->description = $description;
} }
/** /**
@@ -49,13 +54,13 @@ final class Source extends BaseTag implements Factory\StaticMethod
string $body, string $body,
?DescriptionFactory $descriptionFactory = null, ?DescriptionFactory $descriptionFactory = null,
?TypeContext $context = null ?TypeContext $context = null
): self { ) : self {
Assert::stringNotEmpty($body); Assert::stringNotEmpty($body);
Assert::notNull($descriptionFactory); Assert::notNull($descriptionFactory);
$startingLine = 1; $startingLine = 1;
$lineCount = null; $lineCount = null;
$description = null; $description = null;
// Starting line / Number of lines / Description // Starting line / Number of lines / Description
if (preg_match('/^([1-9]\d*)\s*(?:((?1))\s+)?(.*)$/sux', $body, $matches)) { if (preg_match('/^([1-9]\d*)\s*(?:((?1))\s+)?(.*)$/sux', $body, $matches)) {
@@ -76,7 +81,7 @@ final class Source extends BaseTag implements Factory\StaticMethod
* @return int The starting line, relative to the structural element's * @return int The starting line, relative to the structural element's
* location. * location.
*/ */
public function getStartingLine(): int public function getStartingLine() : int
{ {
return $this->startingLine; return $this->startingLine;
} }
@@ -87,15 +92,15 @@ final class Source extends BaseTag implements Factory\StaticMethod
* @return int|null The number of lines, relative to the starting line. NULL * @return int|null The number of lines, relative to the starting line. NULL
* means "to the end". * means "to the end".
*/ */
public function getLineCount(): ?int public function getLineCount() : ?int
{ {
return $this->lineCount; return $this->lineCount;
} }
public function __toString(): string public function __toString() : string
{ {
return $this->startingLine return $this->startingLine
. ($this->lineCount !== null ? ' ' . $this->lineCount : '') . ($this->lineCount !== null ? ' ' . $this->lineCount : '')
. ($this->description ? ' ' . $this->description->render() : ''); . ($this->description ? ' ' . $this->description->render() : '');
} }
} }
+10 -8
View File
@@ -1,4 +1,6 @@
<?php declare(strict_types=1); <?php
declare(strict_types=1);
/** /**
* This file is part of phpDocumentor. * This file is part of phpDocumentor.
@@ -6,8 +8,6 @@
* For the full copyright and license information, please view the LICENSE * For the full copyright and license information, please view the LICENSE
* file that was distributed with this source code. * file that was distributed with this source code.
* *
* @copyright 2010-2018 Mike van Riel<[email protected]>
* @license http://www.opensource.org/licenses/mit-license.php MIT
* @link http://phpdoc.org * @link http://phpdoc.org
*/ */
@@ -19,12 +19,14 @@ use phpDocumentor\Reflection\Type;
use phpDocumentor\Reflection\TypeResolver; use phpDocumentor\Reflection\TypeResolver;
use phpDocumentor\Reflection\Types\Context as TypeContext; use phpDocumentor\Reflection\Types\Context as TypeContext;
use Webmozart\Assert\Assert; use Webmozart\Assert\Assert;
use function preg_split;
/** /**
* Reflection class for a {@}throws tag in a Docblock. * Reflection class for a {@}throws tag in a Docblock.
*/ */
final class Throws extends BaseTag implements Factory\StaticMethod final class Throws extends BaseTag implements Factory\StaticMethod
{ {
/** @var string */
protected $name = 'throws'; protected $name = 'throws';
/** @var Type */ /** @var Type */
@@ -32,7 +34,7 @@ final class Throws extends BaseTag implements Factory\StaticMethod
public function __construct(Type $type, ?Description $description = null) public function __construct(Type $type, ?Description $description = null)
{ {
$this->type = $type; $this->type = $type;
$this->description = $description; $this->description = $description;
} }
@@ -44,12 +46,12 @@ final class Throws extends BaseTag implements Factory\StaticMethod
?TypeResolver $typeResolver = null, ?TypeResolver $typeResolver = null,
?DescriptionFactory $descriptionFactory = null, ?DescriptionFactory $descriptionFactory = null,
?TypeContext $context = null ?TypeContext $context = null
): self { ) : self {
Assert::allNotNull([$typeResolver, $descriptionFactory]); Assert::allNotNull([$typeResolver, $descriptionFactory]);
$parts = preg_split('/\s+/Su', $body, 2); $parts = preg_split('/\s+/Su', $body, 2);
$type = $typeResolver->resolve($parts[0] ?? '', $context); $type = $typeResolver->resolve($parts[0] ?? '', $context);
$description = $descriptionFactory->create($parts[1] ?? '', $context); $description = $descriptionFactory->create($parts[1] ?? '', $context);
return new static($type, $description); return new static($type, $description);
@@ -58,12 +60,12 @@ final class Throws extends BaseTag implements Factory\StaticMethod
/** /**
* Returns the type section of the variable. * Returns the type section of the variable.
*/ */
public function getType(): Type public function getType() : Type
{ {
return $this->type; return $this->type;
} }
public function __toString(): string public function __toString() : string
{ {
return $this->type . ' ' . $this->description; return $this->type . ' ' . $this->description;
} }
+10 -8
View File
@@ -1,4 +1,6 @@
<?php declare(strict_types=1); <?php
declare(strict_types=1);
/** /**
* This file is part of phpDocumentor. * This file is part of phpDocumentor.
@@ -6,9 +8,7 @@
* For the full copyright and license information, please view the LICENSE * For the full copyright and license information, please view the LICENSE
* file that was distributed with this source code. * file that was distributed with this source code.
* *
* @copyright 2010-2018 Mike van Riel<mike@phpdoc.org> * @link http://phpdoc.org
* @license http://www.opensource.org/licenses/mit-license.php MIT
* @link http://phpdoc.org
*/ */
namespace phpDocumentor\Reflection\DocBlock\Tags; namespace phpDocumentor\Reflection\DocBlock\Tags;
@@ -19,12 +19,14 @@ use phpDocumentor\Reflection\Fqsen;
use phpDocumentor\Reflection\FqsenResolver; use phpDocumentor\Reflection\FqsenResolver;
use phpDocumentor\Reflection\Types\Context as TypeContext; use phpDocumentor\Reflection\Types\Context as TypeContext;
use Webmozart\Assert\Assert; use Webmozart\Assert\Assert;
use function preg_split;
/** /**
* Reflection class for a {@}uses tag in a Docblock. * Reflection class for a {@}uses tag in a Docblock.
*/ */
final class Uses extends BaseTag implements Factory\StaticMethod final class Uses extends BaseTag implements Factory\StaticMethod
{ {
/** @var string */
protected $name = 'uses'; protected $name = 'uses';
/** @var Fqsen */ /** @var Fqsen */
@@ -35,7 +37,7 @@ final class Uses extends BaseTag implements Factory\StaticMethod
*/ */
public function __construct(Fqsen $refers, ?Description $description = null) public function __construct(Fqsen $refers, ?Description $description = null)
{ {
$this->refers = $refers; $this->refers = $refers;
$this->description = $description; $this->description = $description;
} }
@@ -47,7 +49,7 @@ final class Uses extends BaseTag implements Factory\StaticMethod
?FqsenResolver $resolver = null, ?FqsenResolver $resolver = null,
?DescriptionFactory $descriptionFactory = null, ?DescriptionFactory $descriptionFactory = null,
?TypeContext $context = null ?TypeContext $context = null
): self { ) : self {
Assert::allNotNull([$resolver, $descriptionFactory]); Assert::allNotNull([$resolver, $descriptionFactory]);
$parts = preg_split('/\s+/Su', $body, 2); $parts = preg_split('/\s+/Su', $body, 2);
@@ -61,7 +63,7 @@ final class Uses extends BaseTag implements Factory\StaticMethod
/** /**
* Returns the structural element this tag refers to. * Returns the structural element this tag refers to.
*/ */
public function getReference(): Fqsen public function getReference() : Fqsen
{ {
return $this->refers; return $this->refers;
} }
@@ -69,7 +71,7 @@ final class Uses extends BaseTag implements Factory\StaticMethod
/** /**
* Returns a string representation of this tag. * Returns a string representation of this tag.
*/ */
public function __toString(): string public function __toString() : string
{ {
return $this->refers . ' ' . $this->description->render(); return $this->refers . ' ' . $this->description->render();
} }
+17 -11
View File
@@ -1,4 +1,6 @@
<?php declare(strict_types=1); <?php
declare(strict_types=1);
/** /**
* This file is part of phpDocumentor. * This file is part of phpDocumentor.
@@ -6,8 +8,6 @@
* For the full copyright and license information, please view the LICENSE * For the full copyright and license information, please view the LICENSE
* file that was distributed with this source code. * file that was distributed with this source code.
* *
* @copyright 2010-2018 Mike van Riel<[email protected]>
* @license http://www.opensource.org/licenses/mit-license.php MIT
* @link http://phpdoc.org * @link http://phpdoc.org
*/ */
@@ -19,6 +19,12 @@ use phpDocumentor\Reflection\Type;
use phpDocumentor\Reflection\TypeResolver; use phpDocumentor\Reflection\TypeResolver;
use phpDocumentor\Reflection\Types\Context as TypeContext; use phpDocumentor\Reflection\Types\Context as TypeContext;
use Webmozart\Assert\Assert; use Webmozart\Assert\Assert;
use const PREG_SPLIT_DELIM_CAPTURE;
use function array_shift;
use function implode;
use function preg_split;
use function strlen;
use function substr;
/** /**
* Reflection class for a {@}var tag in a Docblock. * Reflection class for a {@}var tag in a Docblock.
@@ -37,8 +43,8 @@ class Var_ extends BaseTag implements Factory\StaticMethod
public function __construct(string $variableName, ?Type $type = null, ?Description $description = null) public function __construct(string $variableName, ?Type $type = null, ?Description $description = null)
{ {
$this->variableName = $variableName; $this->variableName = $variableName;
$this->type = $type; $this->type = $type;
$this->description = $description; $this->description = $description;
} }
/** /**
@@ -49,12 +55,12 @@ class Var_ extends BaseTag implements Factory\StaticMethod
?TypeResolver $typeResolver = null, ?TypeResolver $typeResolver = null,
?DescriptionFactory $descriptionFactory = null, ?DescriptionFactory $descriptionFactory = null,
?TypeContext $context = null ?TypeContext $context = null
): self { ) : self {
Assert::stringNotEmpty($body); Assert::stringNotEmpty($body);
Assert::allNotNull([$typeResolver, $descriptionFactory]); Assert::allNotNull([$typeResolver, $descriptionFactory]);
$parts = preg_split('/(\s+)/Su', $body, 3, PREG_SPLIT_DELIM_CAPTURE); $parts = preg_split('/(\s+)/Su', $body, 3, PREG_SPLIT_DELIM_CAPTURE);
$type = null; $type = null;
$variableName = ''; $variableName = '';
// if the first item that is encountered is not a variable; it is a type // if the first item that is encountered is not a variable; it is a type
@@ -81,7 +87,7 @@ class Var_ extends BaseTag implements Factory\StaticMethod
/** /**
* Returns the variable's name. * Returns the variable's name.
*/ */
public function getVariableName(): string public function getVariableName() : string
{ {
return $this->variableName; return $this->variableName;
} }
@@ -89,7 +95,7 @@ class Var_ extends BaseTag implements Factory\StaticMethod
/** /**
* Returns the variable's type or null if unknown. * Returns the variable's type or null if unknown.
*/ */
public function getType(): ?Type public function getType() : ?Type
{ {
return $this->type; return $this->type;
} }
@@ -97,7 +103,7 @@ class Var_ extends BaseTag implements Factory\StaticMethod
/** /**
* Returns a string representation for this tag. * Returns a string representation for this tag.
*/ */
public function __toString(): string public function __toString() : string
{ {
return ($this->type ? $this->type . ' ' : '') return ($this->type ? $this->type . ' ' : '')
. (empty($this->variableName) ? null : ('$' . $this->variableName)) . (empty($this->variableName) ? null : ('$' . $this->variableName))
+14 -12
View File
@@ -1,14 +1,14 @@
<?php declare(strict_types=1); <?php
declare(strict_types=1);
/** /**
* phpDocumentor * This file is part of phpDocumentor.
* *
* PHP Version 5.3 * For the full copyright and license information, please view the LICENSE
* file that was distributed with this source code.
* *
* @author Vasil Rangelov <[email protected]> * @link http://phpdoc.org
* @copyright 2010-2018 Mike van Riel / Naenius (http://www.naenius.com)
* @license http://www.opensource.org/licenses/mit-license.php MIT
* @link http://phpdoc.org
*/ */
namespace phpDocumentor\Reflection\DocBlock\Tags; namespace phpDocumentor\Reflection\DocBlock\Tags;
@@ -17,12 +17,14 @@ use phpDocumentor\Reflection\DocBlock\Description;
use phpDocumentor\Reflection\DocBlock\DescriptionFactory; use phpDocumentor\Reflection\DocBlock\DescriptionFactory;
use phpDocumentor\Reflection\Types\Context as TypeContext; use phpDocumentor\Reflection\Types\Context as TypeContext;
use Webmozart\Assert\Assert; use Webmozart\Assert\Assert;
use function preg_match;
/** /**
* Reflection class for a {@}version tag in a Docblock. * Reflection class for a {@}version tag in a Docblock.
*/ */
final class Version extends BaseTag implements Factory\StaticMethod final class Version extends BaseTag implements Factory\StaticMethod
{ {
/** @var string */
protected $name = 'version'; protected $name = 'version';
/** /**
@@ -44,11 +46,11 @@ final class Version extends BaseTag implements Factory\StaticMethod
/** @var string The version vector. */ /** @var string The version vector. */
private $version = ''; private $version = '';
public function __construct($version = null, ?Description $description = null) public function __construct(?string $version = null, ?Description $description = null)
{ {
Assert::nullOrStringNotEmpty($version); Assert::nullOrStringNotEmpty($version);
$this->version = $version; $this->version = $version;
$this->description = $description; $this->description = $description;
} }
@@ -56,7 +58,7 @@ final class Version extends BaseTag implements Factory\StaticMethod
?string $body, ?string $body,
?DescriptionFactory $descriptionFactory = null, ?DescriptionFactory $descriptionFactory = null,
?TypeContext $context = null ?TypeContext $context = null
): ?self { ) : ?self {
if (empty($body)) { if (empty($body)) {
return new static(); return new static();
} }
@@ -75,7 +77,7 @@ final class Version extends BaseTag implements Factory\StaticMethod
/** /**
* Gets the version section of the tag. * Gets the version section of the tag.
*/ */
public function getVersion(): ?string public function getVersion() : ?string
{ {
return $this->version; return $this->version;
} }
@@ -83,7 +85,7 @@ final class Version extends BaseTag implements Factory\StaticMethod
/** /**
* Returns a string representation for this tag. * Returns a string representation for this tag.
*/ */
public function __toString(): string public function __toString() : string
{ {
return $this->version . ($this->description ? ' ' . $this->description->render() : ''); return $this->version . ($this->description ? ' ' . $this->description->render() : '');
} }
+48 -25
View File
@@ -1,4 +1,6 @@
<?php declare(strict_types=1); <?php
declare(strict_types=1);
/** /**
* This file is part of phpDocumentor. * This file is part of phpDocumentor.
@@ -6,18 +8,30 @@
* For the full copyright and license information, please view the LICENSE * For the full copyright and license information, please view the LICENSE
* file that was distributed with this source code. * file that was distributed with this source code.
* *
* @copyright 2010-2018 Mike van Riel<[email protected]>
* @license http://www.opensource.org/licenses/mit-license.php MIT
* @link http://phpdoc.org * @link http://phpdoc.org
*/ */
namespace phpDocumentor\Reflection; namespace phpDocumentor\Reflection;
use InvalidArgumentException;
use LogicException;
use phpDocumentor\Reflection\DocBlock\DescriptionFactory; use phpDocumentor\Reflection\DocBlock\DescriptionFactory;
use phpDocumentor\Reflection\DocBlock\StandardTagFactory; use phpDocumentor\Reflection\DocBlock\StandardTagFactory;
use phpDocumentor\Reflection\DocBlock\Tag; use phpDocumentor\Reflection\DocBlock\Tag;
use phpDocumentor\Reflection\DocBlock\TagFactory; use phpDocumentor\Reflection\DocBlock\TagFactory;
use Webmozart\Assert\Assert; use Webmozart\Assert\Assert;
use function array_filter;
use function array_shift;
use function count;
use function explode;
use function is_object;
use function method_exists;
use function preg_match;
use function preg_replace;
use function str_replace;
use function strpos;
use function substr;
use function trim;
final class DocBlockFactory implements DocBlockFactoryInterface final class DocBlockFactory implements DocBlockFactoryInterface
{ {
@@ -33,7 +47,7 @@ final class DocBlockFactory implements DocBlockFactoryInterface
public function __construct(DescriptionFactory $descriptionFactory, TagFactory $tagFactory) public function __construct(DescriptionFactory $descriptionFactory, TagFactory $tagFactory)
{ {
$this->descriptionFactory = $descriptionFactory; $this->descriptionFactory = $descriptionFactory;
$this->tagFactory = $tagFactory; $this->tagFactory = $tagFactory;
} }
/** /**
@@ -41,10 +55,10 @@ final class DocBlockFactory implements DocBlockFactoryInterface
* *
* @param string[] $additionalTags * @param string[] $additionalTags
*/ */
public static function createInstance(array $additionalTags = []): self public static function createInstance(array $additionalTags = []) : self
{ {
$fqsenResolver = new FqsenResolver(); $fqsenResolver = new FqsenResolver();
$tagFactory = new StandardTagFactory($fqsenResolver); $tagFactory = new StandardTagFactory($fqsenResolver);
$descriptionFactory = new DescriptionFactory($tagFactory); $descriptionFactory = new DescriptionFactory($tagFactory);
$tagFactory->addService($descriptionFactory); $tagFactory->addService($descriptionFactory);
@@ -62,12 +76,12 @@ final class DocBlockFactory implements DocBlockFactoryInterface
* @param object|string $docblock A string containing the DocBlock to parse or an object supporting the * @param object|string $docblock A string containing the DocBlock to parse or an object supporting the
* getDocComment method (such as a ReflectionClass object). * getDocComment method (such as a ReflectionClass object).
*/ */
public function create($docblock, ?Types\Context $context = null, ?Location $location = null): DocBlock public function create($docblock, ?Types\Context $context = null, ?Location $location = null) : DocBlock
{ {
if (is_object($docblock)) { if (is_object($docblock)) {
if (!method_exists($docblock, 'getDocComment')) { if (!method_exists($docblock, 'getDocComment')) {
$exceptionMessage = 'Invalid object passed; the given object must support the getDocComment method'; $exceptionMessage = 'Invalid object passed; the given object must support the getDocComment method';
throw new \InvalidArgumentException($exceptionMessage); throw new InvalidArgumentException($exceptionMessage);
} }
$docblock = $docblock->getDocComment(); $docblock = $docblock->getDocComment();
@@ -80,14 +94,18 @@ final class DocBlockFactory implements DocBlockFactoryInterface
} }
$parts = $this->splitDocBlock($this->stripDocComment($docblock)); $parts = $this->splitDocBlock($this->stripDocComment($docblock));
[$templateMarker, $summary, $description, $tags] = $parts; [$templateMarker, $summary, $description, $tags] = $parts;
return new DocBlock( return new DocBlock(
$summary, $summary,
$description ? $this->descriptionFactory->create($description, $context) : null, $description ? $this->descriptionFactory->create($description, $context) : null,
array_filter($this->parseTagBlock($tags, $context), function ($tag) { array_filter(
return $tag instanceof Tag; $this->parseTagBlock($tags, $context),
}), static function ($tag) {
return $tag instanceof Tag;
}
),
$context, $context,
$location, $location,
$templateMarker === '#@+', $templateMarker === '#@+',
@@ -95,7 +113,7 @@ final class DocBlockFactory implements DocBlockFactoryInterface
); );
} }
public function registerTagHandler($tagName, $handler): void public function registerTagHandler(string $tagName, string $handler) : void
{ {
$this->tagFactory->registerTagHandler($tagName, $handler); $this->tagFactory->registerTagHandler($tagName, $handler);
} }
@@ -105,9 +123,11 @@ final class DocBlockFactory implements DocBlockFactoryInterface
* *
* @param string $comment String containing the comment text. * @param string $comment String containing the comment text.
*/ */
private function stripDocComment(string $comment): string private function stripDocComment(string $comment) : string
{ {
$comment = trim(preg_replace('#[ \t]*(?:\/\*\*|\*\/|\*)?[ \t]{0,1}(.*)?#u', '$1', $comment)); /** @var string $comment */
$comment = preg_replace('#[ \t]*(?:\/\*\*|\*\/|\*)?[ \t]{0,1}(.*)?#u', '$1', $comment);
$comment = trim($comment);
// reg ex above is not able to remove */ from a single line docblock // reg ex above is not able to remove */ from a single line docblock
if (substr($comment, -2) === '*/') { if (substr($comment, -2) === '*/') {
@@ -117,17 +137,19 @@ final class DocBlockFactory implements DocBlockFactoryInterface
return str_replace(["\r\n", "\r"], "\n", $comment); return str_replace(["\r\n", "\r"], "\n", $comment);
} }
// phpcs:disable SlevomatCodingStandard.Commenting.ForbiddenAnnotations.AnnotationForbidden
/** /**
* Splits the DocBlock into a template marker, summary, description and block of tags. * Splits the DocBlock into a template marker, summary, description and block of tags.
* *
* @param string $comment Comment to split into the sub-parts. * @param string $comment Comment to split into the sub-parts.
* *
* @author Richard van Velzen (@_richardJ) Special thanks to Richard for the regex responsible for the split. * @return string[] containing the template marker (if any), summary, description and a string containing the tags.
*
* @author Mike van Riel <[email protected]> for extending the regex with template marker support. * @author Mike van Riel <[email protected]> for extending the regex with template marker support.
* *
* @return string[] containing the template marker (if any), summary, description and a string containing the tags. * @author Richard van Velzen (@_richardJ) Special thanks to Richard for the regex responsible for the split.
*/ */
private function splitDocBlock(string $comment): array private function splitDocBlock(string $comment) : array
{ {
// Performance improvement cheat: if the first character is an @ then only tags are in this DocBlock. This // Performance improvement cheat: if the first character is an @ then only tags are in this DocBlock. This
// method does not split tags so we return this verbatim as the fourth result (tags). This saves us the // method does not split tags so we return this verbatim as the fourth result (tags). This saves us the
@@ -137,6 +159,7 @@ final class DocBlockFactory implements DocBlockFactoryInterface
} }
// clears all extra horizontal whitespace from the line endings to prevent parsing issues // clears all extra horizontal whitespace from the line endings to prevent parsing issues
/** @var string $comment */
$comment = preg_replace('/\h*$/Sum', '', $comment); $comment = preg_replace('/\h*$/Sum', '', $comment);
/* /*
@@ -204,15 +227,15 @@ final class DocBlockFactory implements DocBlockFactoryInterface
/** /**
* Creates the tag objects. * Creates the tag objects.
* *
* @param string $tags Tag block to parse. * @param string $tags Tag block to parse.
* @param Types\Context $context Context of the parsed Tag * @param Types\Context $context Context of the parsed Tag
* *
* @return DocBlock\Tag[]|string[]|null[] * @return DocBlock\Tag[]|string[]|null[]
*/ */
private function parseTagBlock(string $tags, Types\Context $context): array private function parseTagBlock(string $tags, Types\Context $context) : array
{ {
$tags = $this->filterTagBlock($tags); $tags = $this->filterTagBlock($tags);
if (!$tags) { if ($tags === null) {
return []; return [];
} }
@@ -227,7 +250,7 @@ final class DocBlockFactory implements DocBlockFactoryInterface
/** /**
* @return string[] * @return string[]
*/ */
private function splitTagBlockIntoTagLines(string $tags): array private function splitTagBlockIntoTagLines(string $tags) : array
{ {
$result = []; $result = [];
foreach (explode("\n", $tags) as $tag_line) { foreach (explode("\n", $tags) as $tag_line) {
@@ -241,18 +264,18 @@ final class DocBlockFactory implements DocBlockFactoryInterface
return $result; return $result;
} }
private function filterTagBlock($tags): ?string private function filterTagBlock(string $tags) : ?string
{ {
$tags = trim($tags); $tags = trim($tags);
if (!$tags) { if (!$tags) {
return null; return null;
} }
if ('@' !== $tags[0]) { if ($tags[0] !== '@') {
// @codeCoverageIgnoreStart // @codeCoverageIgnoreStart
// Can't simulate this; this only happens if there is an error with the parsing of the DocBlock that // Can't simulate this; this only happens if there is an error with the parsing of the DocBlock that
// we didn't foresee. // we didn't foresee.
throw new \LogicException('A tag block started with text instead of an at-sign(@): ' . $tags); throw new LogicException('A tag block started with text instead of an at-sign(@): ' . $tags);
// @codeCoverageIgnoreEnd // @codeCoverageIgnoreEnd
} }
+6 -3
View File
@@ -1,7 +1,10 @@
<?php declare(strict_types=1); <?php
declare(strict_types=1);
namespace phpDocumentor\Reflection; namespace phpDocumentor\Reflection;
// phpcs:ignore SlevomatCodingStandard.Classes.SuperfluousInterfaceNaming.SuperfluousSuffix
interface DocBlockFactoryInterface interface DocBlockFactoryInterface
{ {
/** /**
@@ -9,10 +12,10 @@ interface DocBlockFactoryInterface
* *
* @param string[] $additionalTags * @param string[] $additionalTags
*/ */
public static function createInstance(array $additionalTags = []): DocBlockFactory; public static function createInstance(array $additionalTags = []) : DocBlockFactory;
/** /**
* @param string|object $docblock * @param string|object $docblock
*/ */
public function create($docblock, ?Types\Context $context = null, ?Location $location = null): DocBlock; public function create($docblock, ?Types\Context $context = null, ?Location $location = null) : DocBlock;
} }
@@ -1,4 +1,6 @@
<?php declare(strict_types=1); <?php
declare(strict_types=1);
/** /**
* This file is part of phpDocumentor. * This file is part of phpDocumentor.
@@ -6,8 +8,6 @@
* For the full copyright and license information, please view the LICENSE * For the full copyright and license information, please view the LICENSE
* file that was distributed with this source code. * file that was distributed with this source code.
* *
* @copyright 2010-2018 Mike van Riel<[email protected]>
* @license http://www.opensource.org/licenses/mit-license.php MIT
* @link http://phpdoc.org * @link http://phpdoc.org
*/ */
@@ -1,4 +1,6 @@
<?php declare(strict_types=1); <?php
declare(strict_types=1);
/** /**
* This file is part of phpDocumentor. * This file is part of phpDocumentor.
@@ -6,8 +8,6 @@
* For the full copyright and license information, please view the LICENSE * For the full copyright and license information, please view the LICENSE
* file that was distributed with this source code. * file that was distributed with this source code.
* *
* @copyright 2010-2018 Mike van Riel<[email protected]>
* @license http://www.opensource.org/licenses/mit-license.php MIT
* @link http://phpdoc.org * @link http://phpdoc.org
*/ */
@@ -1,4 +1,6 @@
<?php declare(strict_types=1); <?php
declare(strict_types=1);
/** /**
* This file is part of phpDocumentor. * This file is part of phpDocumentor.
@@ -6,8 +8,6 @@
* For the full copyright and license information, please view the LICENSE * For the full copyright and license information, please view the LICENSE
* file that was distributed with this source code. * file that was distributed with this source code.
* *
* @copyright 2010-2018 Mike van Riel<[email protected]>
* @license http://www.opensource.org/licenses/mit-license.php MIT
* @link http://phpdoc.org * @link http://phpdoc.org
*/ */
+3 -3
View File
@@ -1,4 +1,6 @@
<?php declare(strict_types=1); <?php
declare(strict_types=1);
/** /**
* This file is part of phpDocumentor. * This file is part of phpDocumentor.
@@ -6,8 +8,6 @@
* For the full copyright and license information, please view the LICENSE * For the full copyright and license information, please view the LICENSE
* file that was distributed with this source code. * file that was distributed with this source code.
* *
* @copyright 2010-2018 Mike van Riel<[email protected]>
* @license http://www.opensource.org/licenses/mit-license.php MIT
* @link http://phpdoc.org * @link http://phpdoc.org
*/ */
+45 -37
View File
@@ -1,4 +1,6 @@
<?php declare(strict_types=1); <?php
declare(strict_types=1);
/** /**
* This file is part of phpDocumentor. * This file is part of phpDocumentor.
@@ -6,15 +8,13 @@
* For the full copyright and license information, please view the LICENSE * For the full copyright and license information, please view the LICENSE
* file that was distributed with this source code. * file that was distributed with this source code.
* *
* @copyright 2010-2018 Mike van Riel<mike@phpdoc.org> * @link http://phpdoc.org
* @license http://www.opensource.org/licenses/mit-license.php MIT
* @link http://phpdoc.org
*/ */
namespace phpDocumentor\Reflection\DocBlock; namespace phpDocumentor\Reflection\DocBlock;
use Mockery as m; use Mockery as m;
use phpDocumentor\Reflection\DocBlock\Tags\Link; use phpDocumentor\Reflection\DocBlock\Tags\Link as LinkTag;
use phpDocumentor\Reflection\Types\Context; use phpDocumentor\Reflection\Types\Context;
use PHPUnit\Framework\TestCase; use PHPUnit\Framework\TestCase;
@@ -27,103 +27,108 @@ class DescriptionFactoryTest extends TestCase
/** /**
* Call Mockery::close after each test. * Call Mockery::close after each test.
*/ */
public function tearDown(): void public function tearDown() : void
{ {
m::close(); m::close();
} }
/** /**
* @uses \phpDocumentor\Reflection\DocBlock\Description
*
* @covers ::__construct * @covers ::__construct
* @covers ::create * @covers ::create
* @uses phpDocumentor\Reflection\DocBlock\Description
* @dataProvider provideSimpleExampleDescriptions * @dataProvider provideSimpleExampleDescriptions
*/ */
public function testDescriptionCanParseASimpleString($contents): void public function testDescriptionCanParseASimpleString(string $contents) : void
{ {
$tagFactory = m::mock(TagFactory::class); $tagFactory = m::mock(TagFactory::class);
$tagFactory->shouldReceive('create')->never(); $tagFactory->shouldReceive('create')->never();
$factory = new DescriptionFactory($tagFactory); $factory = new DescriptionFactory($tagFactory);
$description = $factory->create($contents, new Context('')); $description = $factory->create($contents, new Context(''));
$this->assertSame($contents, $description->render()); $this->assertSame($contents, $description->render());
} }
/** /**
* @uses \phpDocumentor\Reflection\DocBlock\Description
*
* @covers ::__construct * @covers ::__construct
* @covers ::create * @covers ::create
* @uses phpDocumentor\Reflection\DocBlock\Description
* @dataProvider provideEscapeSequences * @dataProvider provideEscapeSequences
*/ */
public function testEscapeSequences($contents, $expected): void public function testEscapeSequences(string $contents, string $expected) : void
{ {
$tagFactory = m::mock(TagFactory::class); $tagFactory = m::mock(TagFactory::class);
$tagFactory->shouldReceive('create')->never(); $tagFactory->shouldReceive('create')->never();
$factory = new DescriptionFactory($tagFactory); $factory = new DescriptionFactory($tagFactory);
$description = $factory->create($contents, new Context('')); $description = $factory->create($contents, new Context(''));
$this->assertSame($expected, $description->render()); $this->assertSame($expected, $description->render());
} }
/** /**
* @uses \phpDocumentor\Reflection\DocBlock\Description
* @uses \phpDocumentor\Reflection\DocBlock\Tags\Link
* @uses \phpDocumentor\Reflection\DocBlock\Tags\BaseTag
* @uses \phpDocumentor\Reflection\DocBlock\Tags\Formatter\PassthroughFormatter
* @uses \phpDocumentor\Reflection\Types\Context
*
* @covers ::__construct * @covers ::__construct
* @covers ::create * @covers ::create
* @uses phpDocumentor\Reflection\DocBlock\Description
* @uses phpDocumentor\Reflection\DocBlock\Tags\Link
* @uses phpDocumentor\Reflection\DocBlock\Tags\BaseTag
* @uses phpDocumentor\Reflection\DocBlock\Tags\Formatter\PassthroughFormatter
* @uses phpDocumentor\Reflection\Types\Context
*/ */
public function testDescriptionCanParseAStringWithInlineTag(): void public function testDescriptionCanParseAStringWithInlineTag() : void
{ {
$contents = 'This is text for a {@link http://phpdoc.org/ description} that uses an inline tag.'; $contents = 'This is text for a {@link http://phpdoc.org/ description} that uses an inline tag.';
$context = new Context(''); $context = new Context('');
$tagFactory = m::mock(TagFactory::class); $tagFactory = m::mock(TagFactory::class);
$tagFactory->shouldReceive('create') $tagFactory->shouldReceive('create')
->once() ->once()
->with('@link http://phpdoc.org/ description', $context) ->with('@link http://phpdoc.org/ description', $context)
->andReturn(new Link('http://phpdoc.org/', new Description('description'))); ->andReturn(new LinkTag('http://phpdoc.org/', new Description('description')));
$factory = new DescriptionFactory($tagFactory); $factory = new DescriptionFactory($tagFactory);
$description = $factory->create($contents, $context); $description = $factory->create($contents, $context);
$this->assertSame($contents, $description->render()); $this->assertSame($contents, $description->render());
} }
/** /**
* @uses \phpDocumentor\Reflection\DocBlock\Description
* @uses \phpDocumentor\Reflection\DocBlock\Tags\Link
* @uses \phpDocumentor\Reflection\DocBlock\Tags\BaseTag
* @uses \phpDocumentor\Reflection\DocBlock\Tags\Formatter\PassthroughFormatter
* @uses \phpDocumentor\Reflection\Types\Context
*
* @covers ::__construct * @covers ::__construct
* @covers ::create * @covers ::create
* @uses phpDocumentor\Reflection\DocBlock\Description
* @uses phpDocumentor\Reflection\DocBlock\Tags\Link
* @uses phpDocumentor\Reflection\DocBlock\Tags\BaseTag
* @uses phpDocumentor\Reflection\DocBlock\Tags\Formatter\PassthroughFormatter
* @uses phpDocumentor\Reflection\Types\Context
*/ */
public function testDescriptionCanParseAStringStartingWithInlineTag(): void public function testDescriptionCanParseAStringStartingWithInlineTag() : void
{ {
$contents = '{@link http://phpdoc.org/ This} is text for a description that starts with an inline tag.'; $contents = '{@link http://phpdoc.org/ This} is text for a description that starts with an inline tag.';
$context = new Context(''); $context = new Context('');
$tagFactory = m::mock(TagFactory::class); $tagFactory = m::mock(TagFactory::class);
$tagFactory->shouldReceive('create') $tagFactory->shouldReceive('create')
->once() ->once()
->with('@link http://phpdoc.org/ This', $context) ->with('@link http://phpdoc.org/ This', $context)
->andReturn(new Link('http://phpdoc.org/', new Description('This'))); ->andReturn(new LinkTag('http://phpdoc.org/', new Description('This')));
$factory = new DescriptionFactory($tagFactory); $factory = new DescriptionFactory($tagFactory);
$description = $factory->create($contents, $context); $description = $factory->create($contents, $context);
$this->assertSame($contents, $description->render()); $this->assertSame($contents, $description->render());
} }
/** /**
* @uses \phpDocumentor\Reflection\DocBlock\Description
*
* @covers ::__construct * @covers ::__construct
* @covers ::create * @covers ::create
* @uses phpDocumentor\Reflection\DocBlock\Description
*/ */
public function testIfSuperfluousStartingSpacesAreRemoved(): void public function testIfSuperfluousStartingSpacesAreRemoved() : void
{ {
$factory = new DescriptionFactory(m::mock(TagFactory::class)); $factory = new DescriptionFactory(m::mock(TagFactory::class));
$descriptionText = <<<DESCRIPTION $descriptionText = <<<DESCRIPTION
This is a multiline This is a multiline
description that you commonly description that you commonly
@@ -162,7 +167,7 @@ DESCRIPTION;
* *
* @return string[][] * @return string[][]
*/ */
public function provideSimpleExampleDescriptions() public function provideSimpleExampleDescriptions() : array
{ {
return [ return [
['This is text for a description.'], ['This is text for a description.'],
@@ -172,7 +177,10 @@ DESCRIPTION;
]; ];
} }
public function provideEscapeSequences() /**
* @return string[][]
*/
public function provideEscapeSequences() : array
{ {
return [ return [
['This is text for a description with a {@}.', 'This is text for a description with a @.'], ['This is text for a description with a {@}.', 'This is text for a description with a @.'],
+28 -23
View File
@@ -1,4 +1,6 @@
<?php declare(strict_types=1); <?php
declare(strict_types=1);
/** /**
* This file is part of phpDocumentor. * This file is part of phpDocumentor.
@@ -6,8 +8,6 @@
* For the full copyright and license information, please view the LICENSE * For the full copyright and license information, please view the LICENSE
* file that was distributed with this source code. * file that was distributed with this source code.
* *
* @copyright 2010-2018 Mike van Riel<[email protected]>
* @license http://www.opensource.org/licenses/mit-license.php MIT
* @link http://phpdoc.org * @link http://phpdoc.org
*/ */
@@ -26,23 +26,24 @@ class DescriptionTest extends TestCase
/** /**
* Call Mockery::close after each test. * Call Mockery::close after each test.
*/ */
public function tearDown(): void public function tearDown() : void
{ {
m::close(); m::close();
} }
/** /**
* @covers ::__construct
* @covers ::render
* @uses \phpDocumentor\Reflection\DocBlock\Tags\Generic * @uses \phpDocumentor\Reflection\DocBlock\Tags\Generic
* @uses \phpDocumentor\Reflection\DocBlock\Tags\BaseTag * @uses \phpDocumentor\Reflection\DocBlock\Tags\BaseTag
* @uses \phpDocumentor\Reflection\DocBlock\Tags\Formatter\PassthroughFormatter * @uses \phpDocumentor\Reflection\DocBlock\Tags\Formatter\PassthroughFormatter
*
* @covers ::__construct
* @covers ::render
*/ */
public function testDescriptionCanRenderUsingABodyWithPlaceholdersAndTags(): void public function testDescriptionCanRenderUsingABodyWithPlaceholdersAndTags() : void
{ {
$body = 'This is a %1$s body.'; $body = 'This is a %1$s body.';
$expected = 'This is a {@internal significant} body.'; $expected = 'This is a {@internal significant} body.';
$tags = [new Generic('internal', new Description('significant '))]; $tags = [new Generic('internal', new Description('significant '))];
$fixture = new Description($body, $tags); $fixture = new Description($body, $tags);
@@ -56,18 +57,19 @@ class DescriptionTest extends TestCase
} }
/** /**
* @covers ::__construct
* @covers ::render
* @covers ::__toString
* @uses \phpDocumentor\Reflection\DocBlock\Tags\Generic * @uses \phpDocumentor\Reflection\DocBlock\Tags\Generic
* @uses \phpDocumentor\Reflection\DocBlock\Tags\BaseTag * @uses \phpDocumentor\Reflection\DocBlock\Tags\BaseTag
* @uses \phpDocumentor\Reflection\DocBlock\Tags\Formatter\PassthroughFormatter * @uses \phpDocumentor\Reflection\DocBlock\Tags\Formatter\PassthroughFormatter
*
* @covers ::__construct
* @covers ::render
* @covers ::__toString
*/ */
public function testDescriptionCanBeCastToString(): void public function testDescriptionCanBeCastToString() : void
{ {
$body = 'This is a %1$s body.'; $body = 'This is a %1$s body.';
$expected = 'This is a {@internal significant} body.'; $expected = 'This is a {@internal significant} body.';
$tags = [new Generic('internal', new Description('significant '))]; $tags = [new Generic('internal', new Description('significant '))];
$fixture = new Description($body, $tags); $fixture = new Description($body, $tags);
@@ -75,11 +77,12 @@ class DescriptionTest extends TestCase
} }
/** /**
* @covers ::getTags
* @uses \phpDocumentor\Reflection\DocBlock\Tags\Generic * @uses \phpDocumentor\Reflection\DocBlock\Tags\Generic
* @uses \phpDocumentor\Reflection\DocBlock\Tags\BaseTag * @uses \phpDocumentor\Reflection\DocBlock\Tags\BaseTag
*
* @covers ::getTags
*/ */
public function testDescriptionTagsGetter(): void public function testDescriptionTagsGetter() : void
{ {
$body = '@JoinTable(name="table", joinColumns=%1$s, inverseJoinColumns=%2$s)'; $body = '@JoinTable(name="table", joinColumns=%1$s, inverseJoinColumns=%2$s)';
@@ -102,14 +105,15 @@ class DescriptionTest extends TestCase
} }
/** /**
* @covers ::__construct
* @covers ::render
* @covers ::__toString
* @uses \phpDocumentor\Reflection\DocBlock\Tags\Generic * @uses \phpDocumentor\Reflection\DocBlock\Tags\Generic
* @uses \phpDocumentor\Reflection\DocBlock\Tags\BaseTag * @uses \phpDocumentor\Reflection\DocBlock\Tags\BaseTag
* @uses \phpDocumentor\Reflection\DocBlock\Tags\Formatter\PassthroughFormatter * @uses \phpDocumentor\Reflection\DocBlock\Tags\Formatter\PassthroughFormatter
*
* @covers ::__construct
* @covers ::render
* @covers ::__toString
*/ */
public function testDescriptionMultipleTagsCanBeCastToString(): void public function testDescriptionMultipleTagsCanBeCastToString() : void
{ {
$body = '@JoinTable(name="table", joinColumns=%1$s, inverseJoinColumns=%2$s)'; $body = '@JoinTable(name="table", joinColumns=%1$s, inverseJoinColumns=%2$s)';
@@ -121,8 +125,9 @@ class DescriptionTest extends TestCase
$tag2, $tag2,
]; ];
$fixture = new Description($body, $tags); $fixture = new Description($body, $tags);
$expected = '@JoinTable(name="table", joinColumns={@JoinColumn (name="column_id", referencedColumnName="id")}, inverseJoinColumns={@JoinColumn (name="column_id_2", referencedColumnName="id")})'; $expected = '@JoinTable(name="table", joinColumns={@JoinColumn (name="column_id", referencedColumnName="id")}, '
. 'inverseJoinColumns={@JoinColumn (name="column_id_2", referencedColumnName="id")})';
$this->assertSame($expected, (string) $fixture); $this->assertSame($expected, (string) $fixture);
} }
} }
+10 -7
View File
@@ -1,4 +1,6 @@
<?php declare(strict_types=1); <?php
declare(strict_types=1);
namespace phpDocumentor\Reflection\DocBlock; namespace phpDocumentor\Reflection\DocBlock;
@@ -7,7 +9,7 @@ use phpDocumentor\Reflection\DocBlock\Tags\Example;
use PHPUnit\Framework\TestCase; use PHPUnit\Framework\TestCase;
/** /**
* @coversDefaultClass phpDocumentor\Reflection\DocBlock\ExampleFinder * @coversDefaultClass \phpDocumentor\Reflection\DocBlock\ExampleFinder
* @covers ::<private> * @covers ::<private>
*/ */
class ExampleFinderTest extends TestCase class ExampleFinderTest extends TestCase
@@ -18,23 +20,24 @@ class ExampleFinderTest extends TestCase
/** /**
* Call Mockery::close after each test. * Call Mockery::close after each test.
*/ */
public function tearDown(): void public function tearDown() : void
{ {
m::close(); m::close();
} }
public function setUp(): void public function setUp() : void
{ {
$this->fixture = new ExampleFinder(); $this->fixture = new ExampleFinder();
} }
/** /**
* @covers ::find
* @covers ::getSourceDirectory
* @uses \phpDocumentor\Reflection\DocBlock\Tags\Example * @uses \phpDocumentor\Reflection\DocBlock\Tags\Example
* @uses \phpDocumentor\Reflection\DocBlock\Description * @uses \phpDocumentor\Reflection\DocBlock\Description
*
* @covers ::find
* @covers ::getSourceDirectory
*/ */
public function testFileNotFound(): void public function testFileNotFound() : void
{ {
$example = new Example('./example.php', false, 1, 0, new Description('Test')); $example = new Example('./example.php', false, 1, 0, new Description('Test'));
$this->assertSame('** File not found : ./example.php **', $this->fixture->find($example)); $this->assertSame('** File not found : ./example.php **', $this->fixture->find($example));
+34 -30
View File
@@ -1,4 +1,6 @@
<?php declare(strict_types=1); <?php
declare(strict_types=1);
/** /**
* This file is part of phpDocumentor. * This file is part of phpDocumentor.
@@ -6,8 +8,6 @@
* For the full copyright and license information, please view the LICENSE * For the full copyright and license information, please view the LICENSE
* file that was distributed with this source code. * file that was distributed with this source code.
* *
* @copyright 2010-2018 Mike van Riel<[email protected]>
* @license http://www.opensource.org/licenses/mit-license.php MIT
* @link http://phpdoc.org * @link http://phpdoc.org
*/ */
@@ -26,21 +26,22 @@ class SerializerTest extends TestCase
/** /**
* Call Mockery::close after each test. * Call Mockery::close after each test.
*/ */
public function tearDown(): void public function tearDown() : void
{ {
m::close(); m::close();
} }
/** /**
* @uses \phpDocumentor\Reflection\DocBlock\Description
* @uses \phpDocumentor\Reflection\DocBlock\Tags\Formatter\PassthroughFormatter
* @uses \phpDocumentor\Reflection\DocBlock
* @uses \phpDocumentor\Reflection\DocBlock\Tags\BaseTag
* @uses \phpDocumentor\Reflection\DocBlock\Tags\Generic
*
* @covers ::__construct * @covers ::__construct
* @covers ::getDocComment * @covers ::getDocComment
* @uses phpDocumentor\Reflection\DocBlock\Description
* @uses phpDocumentor\Reflection\DocBlock\Tags\Formatter\PassthroughFormatter
* @uses phpDocumentor\Reflection\DocBlock
* @uses phpDocumentor\Reflection\DocBlock\Tags\BaseTag
* @uses phpDocumentor\Reflection\DocBlock\Tags\Generic
*/ */
public function testReconstructsADocCommentFromADocBlock(): void public function testReconstructsADocCommentFromADocBlock() : void
{ {
$expected = <<<'DOCCOMMENT' $expected = <<<'DOCCOMMENT'
/** /**
@@ -66,15 +67,16 @@ DOCCOMMENT;
} }
/** /**
* @uses \phpDocumentor\Reflection\DocBlock\Description
* @uses \phpDocumentor\Reflection\DocBlock\Tags\Formatter\PassthroughFormatter
* @uses \phpDocumentor\Reflection\DocBlock
* @uses \phpDocumentor\Reflection\DocBlock\Tags\BaseTag
* @uses \phpDocumentor\Reflection\DocBlock\Tags\Generic
*
* @covers ::__construct * @covers ::__construct
* @covers ::getDocComment * @covers ::getDocComment
* @uses phpDocumentor\Reflection\DocBlock\Description
* @uses phpDocumentor\Reflection\DocBlock\Tags\Formatter\PassthroughFormatter
* @uses phpDocumentor\Reflection\DocBlock
* @uses phpDocumentor\Reflection\DocBlock\Tags\BaseTag
* @uses phpDocumentor\Reflection\DocBlock\Tags\Generic
*/ */
public function testAddPrefixToDocBlock(): void public function testAddPrefixToDocBlock() : void
{ {
$expected = <<<'DOCCOMMENT' $expected = <<<'DOCCOMMENT'
aa/** aa/**
@@ -100,15 +102,16 @@ DOCCOMMENT;
} }
/** /**
* @uses \phpDocumentor\Reflection\DocBlock\Description
* @uses \phpDocumentor\Reflection\DocBlock\Tags\Formatter\PassthroughFormatter
* @uses \phpDocumentor\Reflection\DocBlock
* @uses \phpDocumentor\Reflection\DocBlock\Tags\BaseTag
* @uses \phpDocumentor\Reflection\DocBlock\Tags\Generic
*
* @covers ::__construct * @covers ::__construct
* @covers ::getDocComment * @covers ::getDocComment
* @uses phpDocumentor\Reflection\DocBlock\Description
* @uses phpDocumentor\Reflection\DocBlock\Tags\Formatter\PassthroughFormatter
* @uses phpDocumentor\Reflection\DocBlock
* @uses phpDocumentor\Reflection\DocBlock\Tags\BaseTag
* @uses phpDocumentor\Reflection\DocBlock\Tags\Generic
*/ */
public function testAddPrefixToDocBlockExceptFirstLine(): void public function testAddPrefixToDocBlockExceptFirstLine() : void
{ {
$expected = <<<'DOCCOMMENT' $expected = <<<'DOCCOMMENT'
/** /**
@@ -134,15 +137,16 @@ DOCCOMMENT;
} }
/** /**
* @uses \phpDocumentor\Reflection\DocBlock\Description
* @uses \phpDocumentor\Reflection\DocBlock\Tags\Formatter\PassthroughFormatter
* @uses \phpDocumentor\Reflection\DocBlock
* @uses \phpDocumentor\Reflection\DocBlock\Tags\BaseTag
* @uses \phpDocumentor\Reflection\DocBlock\Tags\Generic
*
* @covers ::__construct * @covers ::__construct
* @covers ::getDocComment * @covers ::getDocComment
* @uses phpDocumentor\Reflection\DocBlock\Description
* @uses phpDocumentor\Reflection\DocBlock\Tags\Formatter\PassthroughFormatter
* @uses phpDocumentor\Reflection\DocBlock
* @uses phpDocumentor\Reflection\DocBlock\Tags\BaseTag
* @uses phpDocumentor\Reflection\DocBlock\Tags\Generic
*/ */
public function testWordwrapsAroundTheGivenAmountOfCharacters(): void public function testWordwrapsAroundTheGivenAmountOfCharacters() : void
{ {
$expected = <<<'DOCCOMMENT' $expected = <<<'DOCCOMMENT'
/** /**
@@ -177,7 +181,7 @@ DOCCOMMENT;
* @covers ::__construct * @covers ::__construct
* @covers ::getDocComment * @covers ::getDocComment
*/ */
public function testNoExtraSpacesAfterTagRemoval() public function testNoExtraSpacesAfterTagRemoval() : void
{ {
$expected = <<<'DOCCOMMENT' $expected = <<<'DOCCOMMENT'
/** /**
@@ -190,7 +194,7 @@ DOCCOMMENT;
*/ */
DOCCOMMENT_AFTER_REMOVE; DOCCOMMENT_AFTER_REMOVE;
$fixture = new Serializer(0, '', true, 15); $fixture = new Serializer(0, '', true, 15);
$genericTag = new DocBlock\Tags\Generic('unknown-tag'); $genericTag = new DocBlock\Tags\Generic('unknown-tag');
$docBlock = new DocBlock('', null, [$genericTag]); $docBlock = new DocBlock('', null, [$genericTag]);
+88 -71
View File
@@ -1,4 +1,6 @@
<?php declare(strict_types=1); <?php
declare(strict_types=1);
/** /**
* This file is part of phpDocumentor. * This file is part of phpDocumentor.
@@ -6,9 +8,7 @@
* For the full copyright and license information, please view the LICENSE * For the full copyright and license information, please view the LICENSE
* file that was distributed with this source code. * file that was distributed with this source code.
* *
* @copyright 2010-2018 Mike van Riel<mike@phpdoc.org> * @link http://phpdoc.org
* @license http://www.opensource.org/licenses/mit-license.php MIT
* @link http://phpdoc.org
*/ */
namespace phpDocumentor\Reflection\DocBlock; namespace phpDocumentor\Reflection\DocBlock;
@@ -27,7 +27,7 @@ use phpDocumentor\Reflection\Types\Context;
use PHPUnit\Framework\TestCase; use PHPUnit\Framework\TestCase;
/** /**
* @coversDefaultClass phpDocumentor\Reflection\DocBlock\StandardTagFactory * @coversDefaultClass \phpDocumentor\Reflection\DocBlock\StandardTagFactory
* @covers ::<private> * @covers ::<private>
*/ */
class StandardTagFactoryTest extends TestCase class StandardTagFactoryTest extends TestCase
@@ -35,25 +35,26 @@ class StandardTagFactoryTest extends TestCase
/** /**
* Call Mockery::close after each test. * Call Mockery::close after each test.
*/ */
public function tearDown(): void public function tearDown() : void
{ {
m::close(); m::close();
} }
/** /**
* @uses \phpDocumentor\Reflection\DocBlock\StandardTagFactory::addService
* @uses \phpDocumentor\Reflection\DocBlock\Tags\Generic
* @uses \phpDocumentor\Reflection\DocBlock\Tags\BaseTag
* @uses \phpDocumentor\Reflection\DocBlock\Description
*
* @covers ::__construct * @covers ::__construct
* @covers ::create * @covers ::create
* @uses phpDocumentor\Reflection\DocBlock\StandardTagFactory::addService
* @uses phpDocumentor\Reflection\DocBlock\Tags\Generic
* @uses phpDocumentor\Reflection\DocBlock\Tags\BaseTag
* @uses phpDocumentor\Reflection\DocBlock\Description
*/ */
public function testCreatingAGenericTag(): void public function testCreatingAGenericTag() : void
{ {
$expectedTagName = 'unknown-tag'; $expectedTagName = 'unknown-tag';
$expectedDescriptionText = 'This is a description'; $expectedDescriptionText = 'This is a description';
$expectedDescription = new Description($expectedDescriptionText); $expectedDescription = new Description($expectedDescriptionText);
$context = new Context(''); $context = new Context('');
$descriptionFactory = m::mock(DescriptionFactory::class); $descriptionFactory = m::mock(DescriptionFactory::class);
$descriptionFactory $descriptionFactory
@@ -74,15 +75,16 @@ class StandardTagFactoryTest extends TestCase
} }
/** /**
* @uses \phpDocumentor\Reflection\DocBlock\StandardTagFactory::addService
* @uses \phpDocumentor\Reflection\DocBlock\Tags\Author
* @uses \phpDocumentor\Reflection\DocBlock\Tags\BaseTag
*
* @covers ::__construct * @covers ::__construct
* @covers ::create * @covers ::create
* @uses phpDocumentor\Reflection\DocBlock\StandardTagFactory::addService
* @uses phpDocumentor\Reflection\DocBlock\Tags\Author
* @uses phpDocumentor\Reflection\DocBlock\Tags\BaseTag
*/ */
public function testCreatingASpecificTag(): void public function testCreatingASpecificTag() : void
{ {
$context = new Context(''); $context = new Context('');
$tagFactory = new StandardTagFactory(m::mock(FqsenResolver::class)); $tagFactory = new StandardTagFactory(m::mock(FqsenResolver::class));
/** @var Author $tag */ /** @var Author $tag */
@@ -93,18 +95,19 @@ class StandardTagFactoryTest extends TestCase
} }
/** /**
* @covers ::__construct
* @covers ::create
* @uses \phpDocumentor\Reflection\DocBlock\StandardTagFactory::addService * @uses \phpDocumentor\Reflection\DocBlock\StandardTagFactory::addService
* @uses \phpDocumentor\Reflection\DocBlock\Tags\See * @uses \phpDocumentor\Reflection\DocBlock\Tags\See
* @uses \phpDocumentor\Reflection\DocBlock\Tags\BaseTag * @uses \phpDocumentor\Reflection\DocBlock\Tags\BaseTag
* @uses \phpDocumentor\Reflection\Fqsen * @uses \phpDocumentor\Reflection\Fqsen
* @uses \phpDocumentor\Reflection\DocBlock\Tags\Reference\Fqsen * @uses \phpDocumentor\Reflection\DocBlock\Tags\Reference\Fqsen
*
* @covers ::__construct
* @covers ::create
*/ */
public function testAnEmptyContextIsCreatedIfNoneIsProvided(): void public function testAnEmptyContextIsCreatedIfNoneIsProvided() : void
{ {
$fqsen = '\Tag'; $fqsen = '\Tag';
$resolver = m::mock(FqsenResolver::class) $resolver = m::mock(FqsenResolver::class)
->shouldReceive('resolve') ->shouldReceive('resolve')
->with('Tag', m::type(Context::class)) ->with('Tag', m::type(Context::class))
->andReturn(new Fqsen($fqsen)) ->andReturn(new Fqsen($fqsen))
@@ -123,15 +126,16 @@ class StandardTagFactoryTest extends TestCase
} }
/** /**
* @uses \phpDocumentor\Reflection\DocBlock\StandardTagFactory::addService
* @uses \phpDocumentor\Reflection\DocBlock\Tags\Author
* @uses \phpDocumentor\Reflection\DocBlock\Tags\BaseTag
*
* @covers ::__construct * @covers ::__construct
* @covers ::create * @covers ::create
* @uses phpDocumentor\Reflection\DocBlock\StandardTagFactory::addService
* @uses phpDocumentor\Reflection\DocBlock\Tags\Author
* @uses phpDocumentor\Reflection\DocBlock\Tags\BaseTag
*/ */
public function testPassingYourOwnSetOfTagHandlers(): void public function testPassingYourOwnSetOfTagHandlers() : void
{ {
$context = new Context(''); $context = new Context('');
$tagFactory = new StandardTagFactory(m::mock(FqsenResolver::class), ['user' => Author::class]); $tagFactory = new StandardTagFactory(m::mock(FqsenResolver::class), ['user' => Author::class]);
/** @var Author $tag */ /** @var Author $tag */
@@ -142,26 +146,30 @@ class StandardTagFactoryTest extends TestCase
} }
/** /**
* @uses \phpDocumentor\Reflection\DocBlock\StandardTagFactory::__construct
* @uses \phpDocumentor\Reflection\DocBlock\StandardTagFactory::addService
*
* @covers ::create * @covers ::create
* @uses phpDocumentor\Reflection\DocBlock\StandardTagFactory::__construct
* @uses phpDocumentor\Reflection\DocBlock\StandardTagFactory::addService
*/ */
public function testExceptionIsThrownIfProvidedTagIsNotWellformed(): void public function testExceptionIsThrownIfProvidedTagIsNotWellformed() : void
{ {
$this->expectException('InvalidArgumentException'); $this->expectException('InvalidArgumentException');
$this->expectExceptionMessage('The tag "@user[myuser" does not seem to be wellformed, please check it for errors'); $this->expectExceptionMessage(
'The tag "@user[myuser" does not seem to be wellformed, please check it for errors'
);
$tagFactory = new StandardTagFactory(m::mock(FqsenResolver::class)); $tagFactory = new StandardTagFactory(m::mock(FqsenResolver::class));
$tagFactory->create('@user[myuser'); $tagFactory->create('@user[myuser');
} }
/** /**
* @uses \phpDocumentor\Reflection\DocBlock\StandardTagFactory::addService
*
* @covers ::__construct * @covers ::__construct
* @covers ::addParameter * @covers ::addParameter
* @uses phpDocumentor\Reflection\DocBlock\StandardTagFactory::addService
*/ */
public function testAddParameterToServiceLocator(): void public function testAddParameterToServiceLocator() : void
{ {
$resolver = m::mock(FqsenResolver::class); $resolver = m::mock(FqsenResolver::class);
$tagFactory = new StandardTagFactory($resolver); $tagFactory = new StandardTagFactory($resolver);
$tagFactory->addParameter('myParam', 'myValue'); $tagFactory->addParameter('myParam', 'myValue');
@@ -173,14 +181,15 @@ class StandardTagFactoryTest extends TestCase
} }
/** /**
* @uses \phpDocumentor\Reflection\DocBlock\StandardTagFactory::__construct
*
* @covers ::addService * @covers ::addService
* @uses phpDocumentor\Reflection\DocBlock\StandardTagFactory::__construct
*/ */
public function testAddServiceToServiceLocator(): void public function testAddServiceToServiceLocator() : void
{ {
$service = new PassthroughFormatter(); $service = new PassthroughFormatter();
$resolver = m::mock(FqsenResolver::class); $resolver = m::mock(FqsenResolver::class);
$tagFactory = new StandardTagFactory($resolver); $tagFactory = new StandardTagFactory($resolver);
$tagFactory->addService($service); $tagFactory->addService($service);
@@ -192,15 +201,16 @@ class StandardTagFactoryTest extends TestCase
} }
/** /**
* @uses \phpDocumentor\Reflection\DocBlock\StandardTagFactory::__construct
*
* @covers ::addService * @covers ::addService
* @uses phpDocumentor\Reflection\DocBlock\StandardTagFactory::__construct
*/ */
public function testInjectConcreteServiceForInterfaceToServiceLocator(): void public function testInjectConcreteServiceForInterfaceToServiceLocator() : void
{ {
$interfaceName = Formatter::class; $interfaceName = Formatter::class;
$service = new PassthroughFormatter(); $service = new PassthroughFormatter();
$resolver = m::mock(FqsenResolver::class); $resolver = m::mock(FqsenResolver::class);
$tagFactory = new StandardTagFactory($resolver); $tagFactory = new StandardTagFactory($resolver);
$tagFactory->addService($service, $interfaceName); $tagFactory->addService($service, $interfaceName);
@@ -212,15 +222,16 @@ class StandardTagFactoryTest extends TestCase
} }
/** /**
* @uses \phpDocumentor\Reflection\DocBlock\StandardTagFactory::__construct
* @uses \phpDocumentor\Reflection\DocBlock\StandardTagFactory::addService
* @uses \phpDocumentor\Reflection\DocBlock\StandardTagFactory::create
* @uses \phpDocumentor\Reflection\DocBlock\Tags\Author
*
* @covers ::registerTagHandler * @covers ::registerTagHandler
* @uses phpDocumentor\Reflection\DocBlock\StandardTagFactory::__construct
* @uses phpDocumentor\Reflection\DocBlock\StandardTagFactory::addService
* @uses phpDocumentor\Reflection\DocBlock\StandardTagFactory::create
* @uses phpDocumentor\Reflection\DocBlock\Tags\Author
*/ */
public function testRegisteringAHandlerForANewTag(): void public function testRegisteringAHandlerForANewTag() : void
{ {
$resolver = m::mock(FqsenResolver::class); $resolver = m::mock(FqsenResolver::class);
$tagFactory = new StandardTagFactory($resolver); $tagFactory = new StandardTagFactory($resolver);
$tagFactory->registerTagHandler('my-tag', Author::class); $tagFactory->registerTagHandler('my-tag', Author::class);
@@ -231,66 +242,72 @@ class StandardTagFactoryTest extends TestCase
} }
/** /**
* @uses \phpDocumentor\Reflection\DocBlock\StandardTagFactory::__construct
* @uses \phpDocumentor\Reflection\DocBlock\StandardTagFactory::addService
*
* @covers ::registerTagHandler * @covers ::registerTagHandler
* @uses phpDocumentor\Reflection\DocBlock\StandardTagFactory::__construct
* @uses phpDocumentor\Reflection\DocBlock\StandardTagFactory::addService
*/ */
public function testHandlerRegistrationFailsIfProvidedTagNameIsNamespaceButNotFullyQualified(): void public function testHandlerRegistrationFailsIfProvidedTagNameIsNamespaceButNotFullyQualified() : void
{ {
$this->expectException('InvalidArgumentException'); $this->expectException('InvalidArgumentException');
$resolver = m::mock(FqsenResolver::class); $resolver = m::mock(FqsenResolver::class);
$tagFactory = new StandardTagFactory($resolver); $tagFactory = new StandardTagFactory($resolver);
// phpcs:ignore SlevomatCodingStandard.Namespaces.ReferenceUsedNamesOnly.ReferenceViaFullyQualifiedName
$tagFactory->registerTagHandler(\Name\Spaced\Tag::class, Author::class); $tagFactory->registerTagHandler(\Name\Spaced\Tag::class, Author::class);
} }
/** /**
* @uses \phpDocumentor\Reflection\DocBlock\StandardTagFactory::__construct
* @uses \phpDocumentor\Reflection\DocBlock\StandardTagFactory::addService
*
* @covers ::registerTagHandler * @covers ::registerTagHandler
* @uses phpDocumentor\Reflection\DocBlock\StandardTagFactory::__construct
* @uses phpDocumentor\Reflection\DocBlock\StandardTagFactory::addService
*/ */
public function testHandlerRegistrationFailsIfProvidedHandlerIsEmpty(): void public function testHandlerRegistrationFailsIfProvidedHandlerIsEmpty() : void
{ {
$this->expectException('InvalidArgumentException'); $this->expectException('InvalidArgumentException');
$resolver = m::mock(FqsenResolver::class); $resolver = m::mock(FqsenResolver::class);
$tagFactory = new StandardTagFactory($resolver); $tagFactory = new StandardTagFactory($resolver);
$tagFactory->registerTagHandler('my-tag', ''); $tagFactory->registerTagHandler('my-tag', '');
} }
/** /**
* @uses \phpDocumentor\Reflection\DocBlock\StandardTagFactory::__construct
* @uses \phpDocumentor\Reflection\DocBlock\StandardTagFactory::addService
*
* @covers ::registerTagHandler * @covers ::registerTagHandler
* @uses phpDocumentor\Reflection\DocBlock\StandardTagFactory::__construct
* @uses phpDocumentor\Reflection\DocBlock\StandardTagFactory::addService
*/ */
public function testHandlerRegistrationFailsIfProvidedHandlerIsNotAnExistingClassName(): void public function testHandlerRegistrationFailsIfProvidedHandlerIsNotAnExistingClassName() : void
{ {
$this->expectException('InvalidArgumentException'); $this->expectException('InvalidArgumentException');
$resolver = m::mock(FqsenResolver::class); $resolver = m::mock(FqsenResolver::class);
$tagFactory = new StandardTagFactory($resolver); $tagFactory = new StandardTagFactory($resolver);
$tagFactory->registerTagHandler('my-tag', 'IDoNotExist'); $tagFactory->registerTagHandler('my-tag', 'IDoNotExist');
} }
/** /**
* @uses \phpDocumentor\Reflection\DocBlock\StandardTagFactory::__construct
* @uses \phpDocumentor\Reflection\DocBlock\StandardTagFactory::addService
*
* @covers ::registerTagHandler * @covers ::registerTagHandler
* @uses phpDocumentor\Reflection\DocBlock\StandardTagFactory::__construct
* @uses phpDocumentor\Reflection\DocBlock\StandardTagFactory::addService
*/ */
public function testHandlerRegistrationFailsIfProvidedHandlerDoesNotImplementTheTagInterface(): void public function testHandlerRegistrationFailsIfProvidedHandlerDoesNotImplementTheTagInterface() : void
{ {
$this->expectException('InvalidArgumentException'); $this->expectException('InvalidArgumentException');
$resolver = m::mock(FqsenResolver::class); $resolver = m::mock(FqsenResolver::class);
$tagFactory = new StandardTagFactory($resolver); $tagFactory = new StandardTagFactory($resolver);
$tagFactory->registerTagHandler('my-tag', 'stdClass'); $tagFactory->registerTagHandler('my-tag', 'stdClass');
} }
/** /**
* @uses \phpDocumentor\Reflection\DocBlock\StandardTagFactory::__construct
* @uses \phpDocumentor\Reflection\DocBlock\StandardTagFactory::addService
* @uses \phpDocumentor\Reflection\Docblock\Description
* @uses \phpDocumentor\Reflection\Docblock\Tags\Return_
* @uses \phpDocumentor\Reflection\Docblock\Tags\BaseTag
*
* @covers ::create * @covers ::create
* @uses phpDocumentor\Reflection\DocBlock\StandardTagFactory::__construct
* @uses phpDocumentor\Reflection\DocBlock\StandardTagFactory::addService
* @uses phpDocumentor\Reflection\Docblock\Description
* @uses phpDocumentor\Reflection\Docblock\Tags\Return_
* @uses phpDocumentor\Reflection\Docblock\Tags\BaseTag
*/ */
public function testReturntagIsMappedCorrectly(): void public function testReturnTagIsMappedCorrectly() : void
{ {
$context = new Context(''); $context = new Context('');
+21 -16
View File
@@ -1,4 +1,6 @@
<?php declare(strict_types=1); <?php
declare(strict_types=1);
/** /**
* This file is part of phpDocumentor. * This file is part of phpDocumentor.
@@ -6,8 +8,6 @@
* For the full copyright and license information, please view the LICENSE * For the full copyright and license information, please view the LICENSE
* file that was distributed with this source code. * file that was distributed with this source code.
* *
* @copyright 2010-2018 Mike van Riel<[email protected]>
* @license http://www.opensource.org/licenses/mit-license.php MIT
* @link http://phpdoc.org * @link http://phpdoc.org
*/ */
@@ -25,16 +25,17 @@ class AuthorTest extends TestCase
/** /**
* Call Mockery::close after each test. * Call Mockery::close after each test.
*/ */
public function tearDown(): void public function tearDown() : void
{ {
m::close(); m::close();
} }
/** /**
* @uses \phpDocumentor\Reflection\DocBlock\Tags\Author::__construct * @uses \phpDocumentor\Reflection\DocBlock\Tags\Author::__construct
*
* @covers \phpDocumentor\Reflection\DocBlock\Tags\BaseTag::getName * @covers \phpDocumentor\Reflection\DocBlock\Tags\BaseTag::getName
*/ */
public function testIfCorrectTagNameIsReturned(): void public function testIfCorrectTagNameIsReturned() : void
{ {
$fixture = new Author('Mike van Riel', '[email protected]'); $fixture = new Author('Mike van Riel', '[email protected]');
@@ -45,10 +46,11 @@ class AuthorTest extends TestCase
* @uses \phpDocumentor\Reflection\DocBlock\Tags\Author::__construct * @uses \phpDocumentor\Reflection\DocBlock\Tags\Author::__construct
* @uses \phpDocumentor\Reflection\DocBlock\Tags\Author::__toString * @uses \phpDocumentor\Reflection\DocBlock\Tags\Author::__toString
* @uses \phpDocumentor\Reflection\DocBlock\Tags\Formatter\PassthroughFormatter * @uses \phpDocumentor\Reflection\DocBlock\Tags\Formatter\PassthroughFormatter
*
* @covers \phpDocumentor\Reflection\DocBlock\Tags\BaseTag::render * @covers \phpDocumentor\Reflection\DocBlock\Tags\BaseTag::render
* @covers \phpDocumentor\Reflection\DocBlock\Tags\BaseTag::getName * @covers \phpDocumentor\Reflection\DocBlock\Tags\BaseTag::getName
*/ */
public function testIfTagCanBeRenderedUsingDefaultFormatter(): void public function testIfTagCanBeRenderedUsingDefaultFormatter() : void
{ {
$fixture = new Author('Mike van Riel', '[email protected]'); $fixture = new Author('Mike van Riel', '[email protected]');
@@ -57,9 +59,10 @@ class AuthorTest extends TestCase
/** /**
* @uses \phpDocumentor\Reflection\DocBlock\Tags\Author::__construct * @uses \phpDocumentor\Reflection\DocBlock\Tags\Author::__construct
*
* @covers \phpDocumentor\Reflection\DocBlock\Tags\BaseTag::render * @covers \phpDocumentor\Reflection\DocBlock\Tags\BaseTag::render
*/ */
public function testIfTagCanBeRenderedUsingSpecificFormatter(): void public function testIfTagCanBeRenderedUsingSpecificFormatter() : void
{ {
$fixture = new Author('Mike van Riel', '[email protected]'); $fixture = new Author('Mike van Riel', '[email protected]');
@@ -73,7 +76,7 @@ class AuthorTest extends TestCase
* @covers ::__construct * @covers ::__construct
* @covers ::getAuthorName * @covers ::getAuthorName
*/ */
public function testHasTheAuthorName(): void public function testHasTheAuthorName() : void
{ {
$expected = 'Mike van Riel'; $expected = 'Mike van Riel';
@@ -86,7 +89,7 @@ class AuthorTest extends TestCase
* @covers ::__construct * @covers ::__construct
* @covers ::getEmail * @covers ::getEmail
*/ */
public function testHasTheAuthorMailAddress(): void public function testHasTheAuthorMailAddress() : void
{ {
$expected = '[email protected]'; $expected = '[email protected]';
@@ -98,7 +101,7 @@ class AuthorTest extends TestCase
/** /**
* @covers ::__construct * @covers ::__construct
*/ */
public function testInitializationFailsIfEmailIsNotValid(): void public function testInitializationFailsIfEmailIsNotValid() : void
{ {
$this->expectException('InvalidArgumentException'); $this->expectException('InvalidArgumentException');
new Author('Mike van Riel', 'mike'); new Author('Mike van Riel', 'mike');
@@ -108,7 +111,7 @@ class AuthorTest extends TestCase
* @covers ::__construct * @covers ::__construct
* @covers ::__toString * @covers ::__toString
*/ */
public function testStringRepresentationIsReturned(): void public function testStringRepresentationIsReturned() : void
{ {
$fixture = new Author('Mike van Riel', '[email protected]'); $fixture = new Author('Mike van Riel', '[email protected]');
@@ -119,7 +122,7 @@ class AuthorTest extends TestCase
* @covers ::__construct * @covers ::__construct
* @covers ::__toString * @covers ::__toString
*/ */
public function testStringRepresentationWithEmtpyEmail(): void public function testStringRepresentationWithEmtpyEmail() : void
{ {
$fixture = new Author('Mike van Riel', ''); $fixture = new Author('Mike van Riel', '');
@@ -127,10 +130,11 @@ class AuthorTest extends TestCase
} }
/** /**
* @covers ::create
* @uses \phpDocumentor\Reflection\DocBlock\Tags\Author::<public> * @uses \phpDocumentor\Reflection\DocBlock\Tags\Author::<public>
*
* @covers ::create
*/ */
public function testFactoryMethod(): void public function testFactoryMethod() : void
{ {
$fixture = Author::create('Mike van Riel <[email protected]>'); $fixture = Author::create('Mike van Riel <[email protected]>');
@@ -140,10 +144,11 @@ class AuthorTest extends TestCase
} }
/** /**
* @covers ::create
* @uses \phpDocumentor\Reflection\DocBlock\Tags\Author::<public> * @uses \phpDocumentor\Reflection\DocBlock\Tags\Author::<public>
*
* @covers ::create
*/ */
public function testFactoryMethodReturnsNullIfItCouldNotReadBody(): void public function testFactoryMethodReturnsNullIfItCouldNotReadBody() : void
{ {
$this->assertNull(Author::create('dfgr<')); $this->assertNull(Author::create('dfgr<'));
} }
+24 -18
View File
@@ -1,4 +1,6 @@
<?php declare(strict_types=1); <?php
declare(strict_types=1);
/** /**
* This file is part of phpDocumentor. * This file is part of phpDocumentor.
@@ -6,8 +8,6 @@
* For the full copyright and license information, please view the LICENSE * For the full copyright and license information, please view the LICENSE
* file that was distributed with this source code. * file that was distributed with this source code.
* *
* @copyright 2010-2018 Mike van Riel<[email protected]>
* @license http://www.opensource.org/licenses/mit-license.php MIT
* @link http://phpdoc.org * @link http://phpdoc.org
*/ */
@@ -30,7 +30,7 @@ class CoversTest extends TestCase
/** /**
* Call Mockery::close after each test. * Call Mockery::close after each test.
*/ */
public function tearDown(): void public function tearDown() : void
{ {
m::close(); m::close();
} }
@@ -38,9 +38,10 @@ class CoversTest extends TestCase
/** /**
* @uses \phpDocumentor\Reflection\DocBlock\Tags\Covers::__construct * @uses \phpDocumentor\Reflection\DocBlock\Tags\Covers::__construct
* @uses \phpDocumentor\Reflection\DocBlock\Description * @uses \phpDocumentor\Reflection\DocBlock\Description
*
* @covers \phpDocumentor\Reflection\DocBlock\Tags\BaseTag::getName * @covers \phpDocumentor\Reflection\DocBlock\Tags\BaseTag::getName
*/ */
public function testIfCorrectTagNameIsReturned(): void public function testIfCorrectTagNameIsReturned() : void
{ {
$fixture = new Covers(new Fqsen('\DateTime'), new Description('Description')); $fixture = new Covers(new Fqsen('\DateTime'), new Description('Description'));
@@ -52,10 +53,11 @@ class CoversTest extends TestCase
* @uses \phpDocumentor\Reflection\DocBlock\Tags\Covers::__toString * @uses \phpDocumentor\Reflection\DocBlock\Tags\Covers::__toString
* @uses \phpDocumentor\Reflection\DocBlock\Tags\Formatter\PassthroughFormatter * @uses \phpDocumentor\Reflection\DocBlock\Tags\Formatter\PassthroughFormatter
* @uses \phpDocumentor\Reflection\DocBlock\Description * @uses \phpDocumentor\Reflection\DocBlock\Description
*
* @covers \phpDocumentor\Reflection\DocBlock\Tags\BaseTag::render * @covers \phpDocumentor\Reflection\DocBlock\Tags\BaseTag::render
* @covers \phpDocumentor\Reflection\DocBlock\Tags\BaseTag::getName * @covers \phpDocumentor\Reflection\DocBlock\Tags\BaseTag::getName
*/ */
public function testIfTagCanBeRenderedUsingDefaultFormatter(): void public function testIfTagCanBeRenderedUsingDefaultFormatter() : void
{ {
$fixture = new Covers(new Fqsen('\DateTime'), new Description('Description')); $fixture = new Covers(new Fqsen('\DateTime'), new Description('Description'));
@@ -65,9 +67,10 @@ class CoversTest extends TestCase
/** /**
* @uses \phpDocumentor\Reflection\DocBlock\Tags\Covers::__construct * @uses \phpDocumentor\Reflection\DocBlock\Tags\Covers::__construct
* @uses \phpDocumentor\Reflection\DocBlock\Description * @uses \phpDocumentor\Reflection\DocBlock\Description
*
* @covers \phpDocumentor\Reflection\DocBlock\Tags\BaseTag::render * @covers \phpDocumentor\Reflection\DocBlock\Tags\BaseTag::render
*/ */
public function testIfTagCanBeRenderedUsingSpecificFormatter(): void public function testIfTagCanBeRenderedUsingSpecificFormatter() : void
{ {
$fixture = new Covers(new Fqsen('\DateTime'), new Description('Description')); $fixture = new Covers(new Fqsen('\DateTime'), new Description('Description'));
@@ -81,7 +84,7 @@ class CoversTest extends TestCase
* @covers ::__construct * @covers ::__construct
* @covers ::getReference * @covers ::getReference
*/ */
public function testHasReferenceToFqsen(): void public function testHasReferenceToFqsen() : void
{ {
$expected = new Fqsen('\DateTime'); $expected = new Fqsen('\DateTime');
@@ -91,11 +94,12 @@ class CoversTest extends TestCase
} }
/** /**
* @uses \phpDocumentor\Reflection\DocBlock\Description
*
* @covers ::__construct * @covers ::__construct
* @covers \phpDocumentor\Reflection\DocBlock\Tags\BaseTag::getDescription * @covers \phpDocumentor\Reflection\DocBlock\Tags\BaseTag::getDescription
* @uses \phpDocumentor\Reflection\DocBlock\Description
*/ */
public function testHasDescription(): void public function testHasDescription() : void
{ {
$expected = new Description('Description'); $expected = new Description('Description');
@@ -105,11 +109,12 @@ class CoversTest extends TestCase
} }
/** /**
* @uses \phpDocumentor\Reflection\DocBlock\Description
*
* @covers ::__construct * @covers ::__construct
* @covers ::__toString * @covers ::__toString
* @uses \phpDocumentor\Reflection\DocBlock\Description
*/ */
public function testStringRepresentationIsReturned(): void public function testStringRepresentationIsReturned() : void
{ {
$fixture = new Covers(new Fqsen('\DateTime'), new Description('Description')); $fixture = new Covers(new Fqsen('\DateTime'), new Description('Description'));
@@ -117,21 +122,22 @@ class CoversTest extends TestCase
} }
/** /**
* @covers ::create
* @uses \phpDocumentor\Reflection\DocBlock\Tags\Covers::<public> * @uses \phpDocumentor\Reflection\DocBlock\Tags\Covers::<public>
* @uses \phpDocumentor\Reflection\DocBlock\DescriptionFactory * @uses \phpDocumentor\Reflection\DocBlock\DescriptionFactory
* @uses \phpDocumentor\Reflection\FqsenResolver * @uses \phpDocumentor\Reflection\FqsenResolver
* @uses \phpDocumentor\Reflection\DocBlock\Description * @uses \phpDocumentor\Reflection\DocBlock\Description
* @uses \phpDocumentor\Reflection\Fqsen * @uses \phpDocumentor\Reflection\Fqsen
* @uses \phpDocumentor\Reflection\Types\Context * @uses \phpDocumentor\Reflection\Types\Context
*
* @covers ::create
*/ */
public function testFactoryMethod(): void public function testFactoryMethod() : void
{ {
$descriptionFactory = m::mock(DescriptionFactory::class); $descriptionFactory = m::mock(DescriptionFactory::class);
$resolver = m::mock(FqsenResolver::class); $resolver = m::mock(FqsenResolver::class);
$context = new Context(''); $context = new Context('');
$fqsen = new Fqsen('\DateTime'); $fqsen = new Fqsen('\DateTime');
$description = new Description('My Description'); $description = new Description('My Description');
$descriptionFactory $descriptionFactory
@@ -148,7 +154,7 @@ class CoversTest extends TestCase
/** /**
* @covers ::create * @covers ::create
*/ */
public function testFactoryMethodFailsIfBodyIsNotEmpty(): void public function testFactoryMethodFailsIfBodyIsNotEmpty() : void
{ {
$this->expectException('InvalidArgumentException'); $this->expectException('InvalidArgumentException');
$this->assertNull(Covers::create('')); $this->assertNull(Covers::create(''));
+28 -20
View File
@@ -1,4 +1,6 @@
<?php declare(strict_types=1); <?php
declare(strict_types=1);
/** /**
* This file is part of phpDocumentor. * This file is part of phpDocumentor.
@@ -6,8 +8,6 @@
* For the full copyright and license information, please view the LICENSE * For the full copyright and license information, please view the LICENSE
* file that was distributed with this source code. * file that was distributed with this source code.
* *
* @copyright 2010-2018 Mike van Riel<[email protected]>
* @license http://www.opensource.org/licenses/mit-license.php MIT
* @link http://phpdoc.org * @link http://phpdoc.org
*/ */
@@ -28,7 +28,7 @@ class DeprecatedTest extends TestCase
/** /**
* Call Mockery::close after each test. * Call Mockery::close after each test.
*/ */
public function tearDown(): void public function tearDown() : void
{ {
m::close(); m::close();
} }
@@ -36,9 +36,10 @@ class DeprecatedTest extends TestCase
/** /**
* @uses \phpDocumentor\Reflection\DocBlock\Tags\Deprecated::__construct * @uses \phpDocumentor\Reflection\DocBlock\Tags\Deprecated::__construct
* @uses \phpDocumentor\Reflection\DocBlock\Description * @uses \phpDocumentor\Reflection\DocBlock\Description
*
* @covers \phpDocumentor\Reflection\DocBlock\Tags\BaseTag::getName * @covers \phpDocumentor\Reflection\DocBlock\Tags\BaseTag::getName
*/ */
public function testIfCorrectTagNameIsReturned(): void public function testIfCorrectTagNameIsReturned() : void
{ {
$fixture = new Deprecated('1.0', new Description('Description')); $fixture = new Deprecated('1.0', new Description('Description'));
@@ -50,10 +51,11 @@ class DeprecatedTest extends TestCase
* @uses \phpDocumentor\Reflection\DocBlock\Tags\Deprecated::__toString * @uses \phpDocumentor\Reflection\DocBlock\Tags\Deprecated::__toString
* @uses \phpDocumentor\Reflection\DocBlock\Tags\Formatter\PassthroughFormatter * @uses \phpDocumentor\Reflection\DocBlock\Tags\Formatter\PassthroughFormatter
* @uses \phpDocumentor\Reflection\DocBlock\Description * @uses \phpDocumentor\Reflection\DocBlock\Description
*
* @covers \phpDocumentor\Reflection\DocBlock\Tags\BaseTag::render * @covers \phpDocumentor\Reflection\DocBlock\Tags\BaseTag::render
* @covers \phpDocumentor\Reflection\DocBlock\Tags\BaseTag::getName * @covers \phpDocumentor\Reflection\DocBlock\Tags\BaseTag::getName
*/ */
public function testIfTagCanBeRenderedUsingDefaultFormatter(): void public function testIfTagCanBeRenderedUsingDefaultFormatter() : void
{ {
$fixture = new Deprecated('1.0', new Description('Description')); $fixture = new Deprecated('1.0', new Description('Description'));
@@ -63,9 +65,10 @@ class DeprecatedTest extends TestCase
/** /**
* @uses \phpDocumentor\Reflection\DocBlock\Tags\Deprecated::__construct * @uses \phpDocumentor\Reflection\DocBlock\Tags\Deprecated::__construct
* @uses \phpDocumentor\Reflection\DocBlock\Description * @uses \phpDocumentor\Reflection\DocBlock\Description
*
* @covers \phpDocumentor\Reflection\DocBlock\Tags\BaseTag::render * @covers \phpDocumentor\Reflection\DocBlock\Tags\BaseTag::render
*/ */
public function testIfTagCanBeRenderedUsingSpecificFormatter(): void public function testIfTagCanBeRenderedUsingSpecificFormatter() : void
{ {
$fixture = new Deprecated('1.0', new Description('Description')); $fixture = new Deprecated('1.0', new Description('Description'));
@@ -79,7 +82,7 @@ class DeprecatedTest extends TestCase
* @covers ::__construct * @covers ::__construct
* @covers ::getVersion * @covers ::getVersion
*/ */
public function testHasVersionNumber(): void public function testHasVersionNumber() : void
{ {
$expected = '1.0'; $expected = '1.0';
@@ -89,11 +92,12 @@ class DeprecatedTest extends TestCase
} }
/** /**
* @uses \phpDocumentor\Reflection\DocBlock\Description
*
* @covers ::__construct * @covers ::__construct
* @covers \phpDocumentor\Reflection\DocBlock\Tags\BaseTag::getDescription * @covers \phpDocumentor\Reflection\DocBlock\Tags\BaseTag::getDescription
* @uses \phpDocumentor\Reflection\DocBlock\Description
*/ */
public function testHasDescription(): void public function testHasDescription() : void
{ {
$expected = new Description('Description'); $expected = new Description('Description');
@@ -103,11 +107,12 @@ class DeprecatedTest extends TestCase
} }
/** /**
* @uses \phpDocumentor\Reflection\DocBlock\Description
*
* @covers ::__construct * @covers ::__construct
* @covers ::__toString * @covers ::__toString
* @uses \phpDocumentor\Reflection\DocBlock\Description
*/ */
public function testStringRepresentationIsReturned(): void public function testStringRepresentationIsReturned() : void
{ {
$fixture = new Deprecated('1.0', new Description('Description')); $fixture = new Deprecated('1.0', new Description('Description'));
@@ -115,18 +120,19 @@ class DeprecatedTest extends TestCase
} }
/** /**
* @covers ::create
* @uses \phpDocumentor\Reflection\DocBlock\Tags\Deprecated::<public> * @uses \phpDocumentor\Reflection\DocBlock\Tags\Deprecated::<public>
* @uses \phpDocumentor\Reflection\DocBlock\DescriptionFactory * @uses \phpDocumentor\Reflection\DocBlock\DescriptionFactory
* @uses \phpDocumentor\Reflection\DocBlock\Description * @uses \phpDocumentor\Reflection\DocBlock\Description
* @uses \phpDocumentor\Reflection\Types\Context * @uses \phpDocumentor\Reflection\Types\Context
*
* @covers ::create
*/ */
public function testFactoryMethod(): void public function testFactoryMethod() : void
{ {
$descriptionFactory = m::mock(DescriptionFactory::class); $descriptionFactory = m::mock(DescriptionFactory::class);
$context = new Context(''); $context = new Context('');
$version = '1.0'; $version = '1.0';
$description = new Description('My Description'); $description = new Description('My Description');
$descriptionFactory->shouldReceive('create')->with('My Description', $context)->andReturn($description); $descriptionFactory->shouldReceive('create')->with('My Description', $context)->andReturn($description);
@@ -139,13 +145,14 @@ class DeprecatedTest extends TestCase
} }
/** /**
* @covers ::create
* @uses \phpDocumentor\Reflection\DocBlock\Tags\Deprecated::<public> * @uses \phpDocumentor\Reflection\DocBlock\Tags\Deprecated::<public>
* @uses \phpDocumentor\Reflection\DocBlock\DescriptionFactory * @uses \phpDocumentor\Reflection\DocBlock\DescriptionFactory
* @uses \phpDocumentor\Reflection\DocBlock\Description * @uses \phpDocumentor\Reflection\DocBlock\Description
* @uses \phpDocumentor\Reflection\Types\Context * @uses \phpDocumentor\Reflection\Types\Context
*
* @covers ::create
*/ */
public function testFactoryMethodCreatesEmptyDeprecatedTag(): void public function testFactoryMethodCreatesEmptyDeprecatedTag() : void
{ {
$descriptionFactory = m::mock(DescriptionFactory::class); $descriptionFactory = m::mock(DescriptionFactory::class);
$descriptionFactory->shouldReceive('create')->never(); $descriptionFactory->shouldReceive('create')->never();
@@ -158,10 +165,11 @@ class DeprecatedTest extends TestCase
} }
/** /**
* @covers ::create
* @uses \phpDocumentor\Reflection\DocBlock\Tags\Deprecated::__construct * @uses \phpDocumentor\Reflection\DocBlock\Tags\Deprecated::__construct
*
* @covers ::create
*/ */
public function testFactoryMethodReturnsNullIfBodyDoesNotMatchRegex(): void public function testFactoryMethodReturnsNullIfBodyDoesNotMatchRegex() : void
{ {
$this->assertEquals(new Deprecated(), Deprecated::create('dkhf<')); $this->assertEquals(new Deprecated(), Deprecated::create('dkhf<'));
} }
+22 -14
View File
@@ -1,4 +1,6 @@
<?php declare(strict_types=1); <?php
declare(strict_types=1);
namespace DocBlock\Tags; namespace DocBlock\Tags;
@@ -14,18 +16,19 @@ class ExampleTest extends TestCase
/** /**
* Call Mockery::close after each test. * Call Mockery::close after each test.
*/ */
public function tearDown(): void public function tearDown() : void
{ {
m::close(); m::close();
} }
/** /**
* @uses phpDocumentor\Reflection\DocBlock\Tags\BaseTag
*
* @covers ::create * @covers ::create
* @covers ::__construct * @covers ::__construct
* @covers ::getContent * @covers ::getContent
* @uses phpDocumentor\Reflection\DocBlock\Tags\BaseTag
*/ */
public function testExampleWithoutContent(): void public function testExampleWithoutContent() : void
{ {
$tag = Example::create('"example1.php"'); $tag = Example::create('"example1.php"');
$this->assertEquals('"example1.php"', $tag->getContent()); $this->assertEquals('"example1.php"', $tag->getContent());
@@ -34,13 +37,14 @@ class ExampleTest extends TestCase
} }
/** /**
* @uses phpDocumentor\Reflection\DocBlock\Tags\BaseTag
*
* @covers ::create * @covers ::create
* @covers ::__construct * @covers ::__construct
* @covers ::getFilePath * @covers ::getFilePath
* @covers ::getDescription * @covers ::getDescription
* @uses phpDocumentor\Reflection\DocBlock\Tags\BaseTag
*/ */
public function testWithDescription(): void public function testWithDescription() : void
{ {
$tag = Example::create('"example1.php" some text'); $tag = Example::create('"example1.php" some text');
$this->assertEquals('example1.php', $tag->getFilePath()); $this->assertEquals('example1.php', $tag->getFilePath());
@@ -48,13 +52,14 @@ class ExampleTest extends TestCase
} }
/** /**
* @uses phpDocumentor\Reflection\DocBlock\Tags\BaseTag
*
* @covers ::create * @covers ::create
* @covers ::__construct * @covers ::__construct
* @covers ::getFilePath * @covers ::getFilePath
* @covers ::getStartingLine * @covers ::getStartingLine
* @uses phpDocumentor\Reflection\DocBlock\Tags\BaseTag
*/ */
public function testStartlineIsParsed(): void public function testStartlineIsParsed() : void
{ {
$tag = Example::create('"example1.php" 10'); $tag = Example::create('"example1.php" 10');
$this->assertEquals('example1.php', $tag->getFilePath()); $this->assertEquals('example1.php', $tag->getFilePath());
@@ -62,14 +67,15 @@ class ExampleTest extends TestCase
} }
/** /**
* @uses phpDocumentor\Reflection\DocBlock\Tags\BaseTag
*
* @covers ::create * @covers ::create
* @covers ::__construct * @covers ::__construct
* @covers ::getFilePath * @covers ::getFilePath
* @covers ::getStartingLine * @covers ::getStartingLine
* @covers ::getDescription * @covers ::getDescription
* @uses phpDocumentor\Reflection\DocBlock\Tags\BaseTag
*/ */
public function testAllowOmitingLineCount(): void public function testAllowOmitingLineCount() : void
{ {
$tag = Example::create('"example1.php" 10 some text'); $tag = Example::create('"example1.php" 10 some text');
$this->assertEquals('example1.php', $tag->getFilePath()); $this->assertEquals('example1.php', $tag->getFilePath());
@@ -78,14 +84,15 @@ class ExampleTest extends TestCase
} }
/** /**
* @uses phpDocumentor\Reflection\DocBlock\Tags\BaseTag
*
* @covers ::create * @covers ::create
* @covers ::__construct * @covers ::__construct
* @covers ::getFilePath * @covers ::getFilePath
* @covers ::getStartingLine * @covers ::getStartingLine
* @covers ::getLineCount * @covers ::getLineCount
* @uses phpDocumentor\Reflection\DocBlock\Tags\BaseTag
*/ */
public function testLengthIsParsed(): void public function testLengthIsParsed() : void
{ {
$tag = Example::create('"example1.php" 10 5'); $tag = Example::create('"example1.php" 10 5');
$this->assertEquals('example1.php', $tag->getFilePath()); $this->assertEquals('example1.php', $tag->getFilePath());
@@ -94,15 +101,16 @@ class ExampleTest extends TestCase
} }
/** /**
* @uses phpDocumentor\Reflection\DocBlock\Tags\BaseTag
*
* @covers ::create * @covers ::create
* @covers ::__construct * @covers ::__construct
* @covers ::getFilePath * @covers ::getFilePath
* @covers ::getStartingLine * @covers ::getStartingLine
* @covers ::getLineCount * @covers ::getLineCount
* @covers ::getDescription * @covers ::getDescription
* @uses phpDocumentor\Reflection\DocBlock\Tags\BaseTag
*/ */
public function testFullExample(): void public function testFullExample() : void
{ {
$tag = Example::create('"example1.php" 10 5 test text'); $tag = Example::create('"example1.php" 10 5 test text');
$this->assertEquals('example1.php', $tag->getFilePath()); $this->assertEquals('example1.php', $tag->getFilePath());
@@ -1,4 +1,6 @@
<?php declare(strict_types=1); <?php
declare(strict_types=1);
/** /**
* This file is part of phpDocumentor. * This file is part of phpDocumentor.
@@ -6,17 +8,14 @@
* For the full copyright and license information, please view the LICENSE * For the full copyright and license information, please view the LICENSE
* file that was distributed with this source code. * file that was distributed with this source code.
* *
* @author Jan Schneider <jan@horde.org> * @link http://phpdoc.org
* @copyright 2018 Mike van Riel<[email protected]>
* @license http://www.opensource.org/licenses/mit-license.php MIT
* @link http://phpdoc.org
*/ */
namespace phpDocumentor\Reflection\DocBlock\Tags\Formatter; namespace phpDocumentor\Reflection\DocBlock\Tags\Formatter;
use Mockery as m; use Mockery as m;
use phpDocumentor\Reflection\DocBlock\Description; use phpDocumentor\Reflection\DocBlock\Description;
use phpDocumentor\Reflection\DocBlock\Tags\Link; use phpDocumentor\Reflection\DocBlock\Tags\Link as LinkTag;
use phpDocumentor\Reflection\DocBlock\Tags\Param; use phpDocumentor\Reflection\DocBlock\Tags\Param;
use phpDocumentor\Reflection\DocBlock\Tags\Version; use phpDocumentor\Reflection\DocBlock\Tags\Version;
use phpDocumentor\Reflection\Types\String_; use phpDocumentor\Reflection\Types\String_;
@@ -30,27 +29,28 @@ class AlignFormatterTest extends TestCase
/** /**
* Call Mockery::close after each test. * Call Mockery::close after each test.
*/ */
public function tearDown(): void public function tearDown() : void
{ {
m::close(); m::close();
} }
/** /**
* @uses \phpDocumentor\Reflection\DocBlock\Description
* @uses \phpDocumentor\Reflection\DocBlock\Tags\BaseTag
* @uses \phpDocumentor\Reflection\DocBlock\Tags\Link
* @uses \phpDocumentor\Reflection\DocBlock\Tags\Param
* @uses \phpDocumentor\Reflection\DocBlock\Tags\Version
* @uses \phpDocumentor\Reflection\Types\String_
*
* @covers ::format * @covers ::format
* @covers \phpDocumentor\Reflection\DocBlock\Tags\Formatter\AlignFormatter::__construct * @covers \phpDocumentor\Reflection\DocBlock\Tags\Formatter\AlignFormatter::__construct
* @uses \phpDocumentor\Reflection\DocBlock\Description
* @uses \phpDocumentor\Reflection\DocBlock\Tags\BaseTag
* @uses \phpDocumentor\Reflection\DocBlock\Tags\Link
* @uses \phpDocumentor\Reflection\DocBlock\Tags\Param
* @uses \phpDocumentor\Reflection\DocBlock\Tags\Version
* @uses \phpDocumentor\Reflection\Types\String_
*/ */
public function testFormatterCallsToStringAndReturnsAStandardRepresentation(): void public function testFormatterCallsToStringAndReturnsAStandardRepresentation() : void
{ {
$tags = [ $tags = [
new Param('foobar', new String_()), new Param('foobar', new String_()),
new Version('1.2.0'), new Version('1.2.0'),
new Link('http://www.example.com', new Description('Examples')), new LinkTag('http://www.example.com', new Description('Examples')),
]; ];
$fixture = new AlignFormatter($tags); $fixture = new AlignFormatter($tags);
@@ -1,4 +1,6 @@
<?php declare(strict_types=1); <?php
declare(strict_types=1);
/** /**
* This file is part of phpDocumentor. * This file is part of phpDocumentor.
@@ -6,9 +8,7 @@
* For the full copyright and license information, please view the LICENSE * For the full copyright and license information, please view the LICENSE
* file that was distributed with this source code. * file that was distributed with this source code.
* *
* @copyright 2010-2018 Mike van Riel<mike@phpdoc.org> * @link http://phpdoc.org
* @license http://www.opensource.org/licenses/mit-license.php MIT
* @link http://phpdoc.org
*/ */
namespace phpDocumentor\Reflection\DocBlock\Tags\Formatter; namespace phpDocumentor\Reflection\DocBlock\Tags\Formatter;
@@ -26,18 +26,19 @@ class PassthroughFormatterTest extends TestCase
/** /**
* Call Mockery::close after each test. * Call Mockery::close after each test.
*/ */
public function tearDown(): void public function tearDown() : void
{ {
m::close(); m::close();
} }
/** /**
* @covers ::format
* @uses \phpDocumentor\Reflection\DocBlock\Description * @uses \phpDocumentor\Reflection\DocBlock\Description
* @uses \phpDocumentor\Reflection\DocBlock\Tags\BaseTag * @uses \phpDocumentor\Reflection\DocBlock\Tags\BaseTag
* @uses \phpDocumentor\Reflection\DocBlock\Tags\Generic * @uses \phpDocumentor\Reflection\DocBlock\Tags\Generic
*
* @covers ::format
*/ */
public function testFormatterCallsToStringAndReturnsAStandardRepresentation(): void public function testFormatterCallsToStringAndReturnsAStandardRepresentation() : void
{ {
$expected = '@unknown-tag This is a description'; $expected = '@unknown-tag This is a description';
@@ -50,15 +51,16 @@ class PassthroughFormatterTest extends TestCase
} }
/** /**
* @covers ::format
* @uses \phpDocumentor\Reflection\DocBlock\Description * @uses \phpDocumentor\Reflection\DocBlock\Description
* @uses \phpDocumentor\Reflection\DocBlock\Tags\BaseTag * @uses \phpDocumentor\Reflection\DocBlock\Tags\BaseTag
* @uses \phpDocumentor\Reflection\DocBlock\Tags\Generic * @uses \phpDocumentor\Reflection\DocBlock\Tags\Generic
*
* @covers ::format
*/ */
public function testFormatterToStringWitoutDescription(): void public function testFormatterToStringWitoutDescription() : void
{ {
$expected = '@unknown-tag'; $expected = '@unknown-tag';
$fixture = new PassthroughFormatter(); $fixture = new PassthroughFormatter();
$this->assertSame( $this->assertSame(
$expected, $expected,
+24 -18
View File
@@ -1,4 +1,6 @@
<?php declare(strict_types=1); <?php
declare(strict_types=1);
/** /**
* This file is part of phpDocumentor. * This file is part of phpDocumentor.
@@ -6,8 +8,6 @@
* For the full copyright and license information, please view the LICENSE * For the full copyright and license information, please view the LICENSE
* file that was distributed with this source code. * file that was distributed with this source code.
* *
* @copyright 2010-2018 Mike van Riel<[email protected]>
* @license http://www.opensource.org/licenses/mit-license.php MIT
* @generic http://phpdoc.org * @generic http://phpdoc.org
*/ */
@@ -28,7 +28,7 @@ class GenericTest extends TestCase
/** /**
* Call Mockery::close after each test. * Call Mockery::close after each test.
*/ */
public function tearDown(): void public function tearDown() : void
{ {
m::close(); m::close();
} }
@@ -36,9 +36,10 @@ class GenericTest extends TestCase
/** /**
* @uses \phpDocumentor\Reflection\DocBlock\Tags\Generic::__construct * @uses \phpDocumentor\Reflection\DocBlock\Tags\Generic::__construct
* @uses \phpDocumentor\Reflection\DocBlock\Description * @uses \phpDocumentor\Reflection\DocBlock\Description
*
* @covers \phpDocumentor\Reflection\DocBlock\Tags\BaseTag::getName * @covers \phpDocumentor\Reflection\DocBlock\Tags\BaseTag::getName
*/ */
public function testIfCorrectTagNameIsReturned(): void public function testIfCorrectTagNameIsReturned() : void
{ {
$fixture = new Generic('generic', new Description('Description')); $fixture = new Generic('generic', new Description('Description'));
@@ -51,9 +52,10 @@ class GenericTest extends TestCase
* @uses \phpDocumentor\Reflection\DocBlock\Tags\Formatter\PassthroughFormatter * @uses \phpDocumentor\Reflection\DocBlock\Tags\Formatter\PassthroughFormatter
* @uses \phpDocumentor\Reflection\DocBlock\Description * @uses \phpDocumentor\Reflection\DocBlock\Description
* @uses \phpDocumentor\Reflection\DocBlock\Tags\BaseTag::getName * @uses \phpDocumentor\Reflection\DocBlock\Tags\BaseTag::getName
*
* @covers \phpDocumentor\Reflection\DocBlock\Tags\BaseTag::render * @covers \phpDocumentor\Reflection\DocBlock\Tags\BaseTag::render
*/ */
public function testIfTagCanBeRenderedUsingDefaultFormatter(): void public function testIfTagCanBeRenderedUsingDefaultFormatter() : void
{ {
$fixture = new Generic('generic', new Description('Description')); $fixture = new Generic('generic', new Description('Description'));
@@ -63,9 +65,10 @@ class GenericTest extends TestCase
/** /**
* @uses \phpDocumentor\Reflection\DocBlock\Tags\Generic::__construct * @uses \phpDocumentor\Reflection\DocBlock\Tags\Generic::__construct
* @uses \phpDocumentor\Reflection\DocBlock\Description * @uses \phpDocumentor\Reflection\DocBlock\Description
*
* @covers \phpDocumentor\Reflection\DocBlock\Tags\BaseTag::render * @covers \phpDocumentor\Reflection\DocBlock\Tags\BaseTag::render
*/ */
public function testIfTagCanBeRenderedUsingSpecificFormatter(): void public function testIfTagCanBeRenderedUsingSpecificFormatter() : void
{ {
$fixture = new Generic('generic', new Description('Description')); $fixture = new Generic('generic', new Description('Description'));
@@ -76,11 +79,12 @@ class GenericTest extends TestCase
} }
/** /**
* @uses \phpDocumentor\Reflection\DocBlock\Description
*
* @covers ::__construct * @covers ::__construct
* @covers \phpDocumentor\Reflection\DocBlock\Tags\BaseTag::getDescription * @covers \phpDocumentor\Reflection\DocBlock\Tags\BaseTag::getDescription
* @uses \phpDocumentor\Reflection\DocBlock\Description
*/ */
public function testHasDescription(): void public function testHasDescription() : void
{ {
$expected = new Description('Description'); $expected = new Description('Description');
@@ -90,12 +94,13 @@ class GenericTest extends TestCase
} }
/** /**
* @covers ::__construct
* @covers ::__toString
* @uses \phpDocumentor\Reflection\DocBlock\Description * @uses \phpDocumentor\Reflection\DocBlock\Description
* @uses \phpDocumentor\Reflection\DocBlock\Tags\BaseTag::getName * @uses \phpDocumentor\Reflection\DocBlock\Tags\BaseTag::getName
*
* @covers ::__construct
* @covers ::__toString
*/ */
public function testStringRepresentationIsReturned(): void public function testStringRepresentationIsReturned() : void
{ {
$fixture = new Generic('generic', new Description('Description')); $fixture = new Generic('generic', new Description('Description'));
@@ -103,18 +108,19 @@ class GenericTest extends TestCase
} }
/** /**
* @covers ::create
* @uses \phpDocumentor\Reflection\DocBlock\Tags\Generic::<public> * @uses \phpDocumentor\Reflection\DocBlock\Tags\Generic::<public>
* @uses \phpDocumentor\Reflection\DocBlock\DescriptionFactory * @uses \phpDocumentor\Reflection\DocBlock\DescriptionFactory
* @uses \phpDocumentor\Reflection\DocBlock\Description * @uses \phpDocumentor\Reflection\DocBlock\Description
* @uses \phpDocumentor\Reflection\Types\Context * @uses \phpDocumentor\Reflection\Types\Context
*
* @covers ::create
*/ */
public function testFactoryMethod(): void public function testFactoryMethod() : void
{ {
$descriptionFactory = m::mock(DescriptionFactory::class); $descriptionFactory = m::mock(DescriptionFactory::class);
$context = new Context(''); $context = new Context('');
$generics = 'generic'; $generics = 'generic';
$description = new Description('My Description'); $description = new Description('My Description');
$descriptionFactory->shouldReceive('create')->with('My Description', $context)->andReturn($description); $descriptionFactory->shouldReceive('create')->with('My Description', $context)->andReturn($description);
@@ -129,7 +135,7 @@ class GenericTest extends TestCase
/** /**
* @covers ::create * @covers ::create
*/ */
public function testFactoryMethodFailsIfNameIsNotEmpty(): void public function testFactoryMethodFailsIfNameIsNotEmpty() : void
{ {
$this->expectException('InvalidArgumentException'); $this->expectException('InvalidArgumentException');
Generic::create('', ''); Generic::create('', '');
@@ -139,7 +145,7 @@ class GenericTest extends TestCase
* @covers ::create * @covers ::create
* @covers ::__construct * @covers ::__construct
*/ */
public function testFactoryMethodFailsIfNameContainsIllegalCharacters(): void public function testFactoryMethodFailsIfNameContainsIllegalCharacters() : void
{ {
$this->expectException('InvalidArgumentException'); $this->expectException('InvalidArgumentException');
Generic::create('', 'name/myname'); Generic::create('', 'name/myname');
+25 -18
View File
@@ -1,4 +1,6 @@
<?php declare(strict_types=1); <?php
declare(strict_types=1);
/** /**
* This file is part of phpDocumentor. * This file is part of phpDocumentor.
@@ -6,8 +8,6 @@
* For the full copyright and license information, please view the LICENSE * For the full copyright and license information, please view the LICENSE
* file that was distributed with this source code. * file that was distributed with this source code.
* *
* @copyright 2010-2018 Mike van Riel<[email protected]>
* @license http://www.opensource.org/licenses/mit-license.php MIT
* @link http://phpdoc.org * @link http://phpdoc.org
*/ */
@@ -28,7 +28,7 @@ class LinkTest extends TestCase
/** /**
* Call Mockery::close after each test. * Call Mockery::close after each test.
*/ */
public function tearDown(): void public function tearDown() : void
{ {
m::close(); m::close();
} }
@@ -36,9 +36,10 @@ class LinkTest extends TestCase
/** /**
* @uses \phpDocumentor\Reflection\DocBlock\Tags\Link::__construct * @uses \phpDocumentor\Reflection\DocBlock\Tags\Link::__construct
* @uses \phpDocumentor\Reflection\DocBlock\Description * @uses \phpDocumentor\Reflection\DocBlock\Description
*
* @covers \phpDocumentor\Reflection\DocBlock\Tags\BaseTag::getName * @covers \phpDocumentor\Reflection\DocBlock\Tags\BaseTag::getName
*/ */
public function testIfCorrectTagNameIsReturned(): void public function testIfCorrectTagNameIsReturned() : void
{ {
$fixture = new Link('http://this.is.my/link', new Description('Description')); $fixture = new Link('http://this.is.my/link', new Description('Description'));
@@ -50,10 +51,11 @@ class LinkTest extends TestCase
* @uses \phpDocumentor\Reflection\DocBlock\Tags\Link::__toString * @uses \phpDocumentor\Reflection\DocBlock\Tags\Link::__toString
* @uses \phpDocumentor\Reflection\DocBlock\Tags\Formatter\PassthroughFormatter * @uses \phpDocumentor\Reflection\DocBlock\Tags\Formatter\PassthroughFormatter
* @uses \phpDocumentor\Reflection\DocBlock\Description * @uses \phpDocumentor\Reflection\DocBlock\Description
*
* @covers \phpDocumentor\Reflection\DocBlock\Tags\BaseTag::render * @covers \phpDocumentor\Reflection\DocBlock\Tags\BaseTag::render
* @covers \phpDocumentor\Reflection\DocBlock\Tags\BaseTag::getName * @covers \phpDocumentor\Reflection\DocBlock\Tags\BaseTag::getName
*/ */
public function testIfTagCanBeRenderedUsingDefaultFormatter(): void public function testIfTagCanBeRenderedUsingDefaultFormatter() : void
{ {
$fixture = new Link('http://this.is.my/link', new Description('Description')); $fixture = new Link('http://this.is.my/link', new Description('Description'));
@@ -63,9 +65,10 @@ class LinkTest extends TestCase
/** /**
* @uses \phpDocumentor\Reflection\DocBlock\Tags\Link::__construct * @uses \phpDocumentor\Reflection\DocBlock\Tags\Link::__construct
* @uses \phpDocumentor\Reflection\DocBlock\Description * @uses \phpDocumentor\Reflection\DocBlock\Description
*
* @covers \phpDocumentor\Reflection\DocBlock\Tags\BaseTag::render * @covers \phpDocumentor\Reflection\DocBlock\Tags\BaseTag::render
*/ */
public function testIfTagCanBeRenderedUsingSpecificFormatter(): void public function testIfTagCanBeRenderedUsingSpecificFormatter() : void
{ {
$fixture = new Link('http://this.is.my/link', new Description('Description')); $fixture = new Link('http://this.is.my/link', new Description('Description'));
@@ -79,7 +82,7 @@ class LinkTest extends TestCase
* @covers ::__construct * @covers ::__construct
* @covers ::getLink * @covers ::getLink
*/ */
public function testHasLinkUrl(): void public function testHasLinkUrl() : void
{ {
$expected = 'http://this.is.my/link'; $expected = 'http://this.is.my/link';
@@ -89,11 +92,12 @@ class LinkTest extends TestCase
} }
/** /**
* @uses \phpDocumentor\Reflection\DocBlock\Description
*
* @covers ::__construct * @covers ::__construct
* @covers \phpDocumentor\Reflection\DocBlock\Tags\BaseTag::getDescription * @covers \phpDocumentor\Reflection\DocBlock\Tags\BaseTag::getDescription
* @uses \phpDocumentor\Reflection\DocBlock\Description
*/ */
public function testHasDescription(): void public function testHasDescription() : void
{ {
$expected = new Description('Description'); $expected = new Description('Description');
@@ -103,11 +107,12 @@ class LinkTest extends TestCase
} }
/** /**
* @uses \phpDocumentor\Reflection\DocBlock\Description
*
* @covers ::__construct * @covers ::__construct
* @covers ::__toString * @covers ::__toString
* @uses \phpDocumentor\Reflection\DocBlock\Description
*/ */
public function testStringRepresentationIsReturned(): void public function testStringRepresentationIsReturned() : void
{ {
$fixture = new Link('http://this.is.my/link', new Description('Description')); $fixture = new Link('http://this.is.my/link', new Description('Description'));
@@ -115,18 +120,19 @@ class LinkTest extends TestCase
} }
/** /**
* @covers ::create
* @uses \phpDocumentor\Reflection\DocBlock\Tags\Link::<public> * @uses \phpDocumentor\Reflection\DocBlock\Tags\Link::<public>
* @uses \phpDocumentor\Reflection\DocBlock\DescriptionFactory * @uses \phpDocumentor\Reflection\DocBlock\DescriptionFactory
* @uses \phpDocumentor\Reflection\DocBlock\Description * @uses \phpDocumentor\Reflection\DocBlock\Description
* @uses \phpDocumentor\Reflection\Types\Context * @uses \phpDocumentor\Reflection\Types\Context
*
* @covers ::create
*/ */
public function testFactoryMethod(): void public function testFactoryMethod() : void
{ {
$descriptionFactory = m::mock(DescriptionFactory::class); $descriptionFactory = m::mock(DescriptionFactory::class);
$context = new Context(''); $context = new Context('');
$links = 'http://this.is.my/link'; $links = 'http://this.is.my/link';
$description = new Description('My Description'); $description = new Description('My Description');
$descriptionFactory->shouldReceive('create')->with('My Description', $context)->andReturn($description); $descriptionFactory->shouldReceive('create')->with('My Description', $context)->andReturn($description);
@@ -139,13 +145,14 @@ class LinkTest extends TestCase
} }
/** /**
* @covers ::create
* @uses \phpDocumentor\Reflection\DocBlock\Tags\Link::<public> * @uses \phpDocumentor\Reflection\DocBlock\Tags\Link::<public>
* @uses \phpDocumentor\Reflection\DocBlock\DescriptionFactory * @uses \phpDocumentor\Reflection\DocBlock\DescriptionFactory
* @uses \phpDocumentor\Reflection\DocBlock\Description * @uses \phpDocumentor\Reflection\DocBlock\Description
* @uses \phpDocumentor\Reflection\Types\Context * @uses \phpDocumentor\Reflection\Types\Context
*
* @covers ::create
*/ */
public function testFactoryMethodCreatesEmptyLinkTag(): void public function testFactoryMethodCreatesEmptyLinkTag() : void
{ {
$descriptionFactory = m::mock(DescriptionFactory::class); $descriptionFactory = m::mock(DescriptionFactory::class);
$descriptionFactory->shouldReceive('create')->never(); $descriptionFactory->shouldReceive('create')->never();
+99 -93
View File
@@ -1,4 +1,6 @@
<?php declare(strict_types=1); <?php
declare(strict_types=1);
/** /**
* This file is part of phpDocumentor. * This file is part of phpDocumentor.
@@ -6,8 +8,6 @@
* For the full copyright and license information, please view the LICENSE * For the full copyright and license information, please view the LICENSE
* file that was distributed with this source code. * file that was distributed with this source code.
* *
* @copyright 2010-2018 Mike van Riel<[email protected]>
* @license http://www.opensource.org/licenses/mit-license.php MIT
* @link http://phpdoc.org * @link http://phpdoc.org
*/ */
@@ -37,16 +37,17 @@ class MethodTest extends TestCase
/** /**
* Call Mockery::close after each test. * Call Mockery::close after each test.
*/ */
public function tearDown(): void public function tearDown() : void
{ {
m::close(); m::close();
} }
/** /**
* @uses \phpDocumentor\Reflection\DocBlock\Tags\Method::__construct * @uses \phpDocumentor\Reflection\DocBlock\Tags\Method::__construct
*
* @covers \phpDocumentor\Reflection\DocBlock\Tags\BaseTag::getName * @covers \phpDocumentor\Reflection\DocBlock\Tags\BaseTag::getName
*/ */
public function testIfCorrectTagNameIsReturned(): void public function testIfCorrectTagNameIsReturned() : void
{ {
$fixture = new Method('myMethod'); $fixture = new Method('myMethod');
@@ -59,16 +60,24 @@ class MethodTest extends TestCase
* @uses \phpDocumentor\Reflection\DocBlock\Tags\Method::__toString * @uses \phpDocumentor\Reflection\DocBlock\Tags\Method::__toString
* @uses \phpDocumentor\Reflection\DocBlock\Tags\Formatter\PassthroughFormatter * @uses \phpDocumentor\Reflection\DocBlock\Tags\Formatter\PassthroughFormatter
* @uses \phpDocumentor\Reflection\DocBlock\Description * @uses \phpDocumentor\Reflection\DocBlock\Description
*
* @covers \phpDocumentor\Reflection\DocBlock\Tags\BaseTag::render * @covers \phpDocumentor\Reflection\DocBlock\Tags\BaseTag::render
* @covers \phpDocumentor\Reflection\DocBlock\Tags\BaseTag::getName * @covers \phpDocumentor\Reflection\DocBlock\Tags\BaseTag::getName
*/ */
public function testIfTagCanBeRenderedUsingDefaultFormatter(): void public function testIfTagCanBeRenderedUsingDefaultFormatter() : void
{ {
$arguments = [ $arguments = [
['name' => 'argument1', 'type' => new String_()], ['name' => 'argument1', 'type' => new String_()],
['name' => 'argument2', 'type' => new Object_()], ['name' => 'argument2', 'type' => new Object_()],
]; ];
$fixture = new Method('myMethod', $arguments, new Void_(), true, new Description('My Description'));
$fixture = new Method(
'myMethod',
$arguments,
new Void_(),
true,
new Description('My Description')
);
$this->assertSame( $this->assertSame(
'@method static void myMethod(string $argument1, object $argument2) My Description', '@method static void myMethod(string $argument1, object $argument2) My Description',
@@ -79,9 +88,10 @@ class MethodTest extends TestCase
/** /**
* @uses \phpDocumentor\Reflection\DocBlock\Tags\Method::__construct * @uses \phpDocumentor\Reflection\DocBlock\Tags\Method::__construct
* @uses \phpDocumentor\Reflection\DocBlock\Description * @uses \phpDocumentor\Reflection\DocBlock\Description
*
* @covers \phpDocumentor\Reflection\DocBlock\Tags\BaseTag::render * @covers \phpDocumentor\Reflection\DocBlock\Tags\BaseTag::render
*/ */
public function testIfTagCanBeRenderedUsingSpecificFormatter(): void public function testIfTagCanBeRenderedUsingSpecificFormatter() : void
{ {
$fixture = new Method('myMethod'); $fixture = new Method('myMethod');
@@ -95,7 +105,7 @@ class MethodTest extends TestCase
* @covers ::__construct * @covers ::__construct
* @covers ::getMethodName * @covers ::getMethodName
*/ */
public function testHasMethodName(): void public function testHasMethodName() : void
{ {
$expected = 'myMethod'; $expected = 'myMethod';
@@ -108,7 +118,7 @@ class MethodTest extends TestCase
* @covers ::__construct * @covers ::__construct
* @covers ::getArguments * @covers ::getArguments
*/ */
public function testHasArguments(): void public function testHasArguments() : void
{ {
$arguments = [ $arguments = [
['name' => 'argument1', 'type' => new String_()], ['name' => 'argument1', 'type' => new String_()],
@@ -123,10 +133,10 @@ class MethodTest extends TestCase
* @covers ::__construct * @covers ::__construct
* @covers ::getArguments * @covers ::getArguments
*/ */
public function testArgumentsMayBePassedAsString(): void public function testArgumentsMayBePassedAsString() : void
{ {
$arguments = ['argument1']; $arguments = ['argument1'];
$expected = [ $expected = [
['name' => $arguments[0], 'type' => new Void_()], ['name' => $arguments[0], 'type' => new Void_()],
]; ];
@@ -139,10 +149,10 @@ class MethodTest extends TestCase
* @covers ::__construct * @covers ::__construct
* @covers ::getArguments * @covers ::getArguments
*/ */
public function testArgumentTypeCanBeInferredAsVoid(): void public function testArgumentTypeCanBeInferredAsVoid() : void
{ {
$arguments = [['name' => 'argument1']]; $arguments = [['name' => 'argument1']];
$expected = [ $expected = [
['name' => $arguments[0]['name'], 'type' => new Void_()], ['name' => $arguments[0]['name'], 'type' => new Void_()],
]; ];
@@ -152,12 +162,13 @@ class MethodTest extends TestCase
} }
/** /**
* @covers ::create
* @uses \phpDocumentor\Reflection\DocBlock\Tags\Method::__construct * @uses \phpDocumentor\Reflection\DocBlock\Tags\Method::__construct
* @uses \phpDocumentor\Reflection\DocBlock\Tags\Method::getArguments * @uses \phpDocumentor\Reflection\DocBlock\Tags\Method::getArguments
* @uses \phpDocumentor\Reflection\DocBlock\Description * @uses \phpDocumentor\Reflection\DocBlock\Description
*
* @covers ::create
*/ */
public function testRestArgumentIsParsedAsRegularArg(): void public function testRestArgumentIsParsedAsRegularArg() : void
{ {
$expected = [ $expected = [
['name' => 'arg1', 'type' => new Void_()], ['name' => 'arg1', 'type' => new Void_()],
@@ -166,9 +177,9 @@ class MethodTest extends TestCase
]; ];
$descriptionFactory = m::mock(DescriptionFactory::class); $descriptionFactory = m::mock(DescriptionFactory::class);
$resolver = new TypeResolver(); $resolver = new TypeResolver();
$context = new Context(''); $context = new Context('');
$description = new Description(''); $description = new Description('');
$descriptionFactory->shouldReceive('create')->with('', $context)->andReturn($description); $descriptionFactory->shouldReceive('create')->with('', $context)->andReturn($description);
$fixture = Method::create( $fixture = Method::create(
@@ -185,7 +196,7 @@ class MethodTest extends TestCase
* @covers ::__construct * @covers ::__construct
* @covers ::getReturnType * @covers ::getReturnType
*/ */
public function testHasReturnType(): void public function testHasReturnType() : void
{ {
$expected = new String_(); $expected = new String_();
@@ -198,7 +209,7 @@ class MethodTest extends TestCase
* @covers ::__construct * @covers ::__construct
* @covers ::getReturnType * @covers ::getReturnType
*/ */
public function testReturnTypeCanBeInferredAsVoid(): void public function testReturnTypeCanBeInferredAsVoid() : void
{ {
$fixture = new Method('myMethod', []); $fixture = new Method('myMethod', []);
@@ -209,23 +220,24 @@ class MethodTest extends TestCase
* @covers ::__construct * @covers ::__construct
* @covers ::isStatic * @covers ::isStatic
*/ */
public function testMethodCanBeStatic(): void public function testMethodCanBeStatic() : void
{ {
$expected = false; $expected = false;
$fixture = new Method('myMethod', [], null, $expected); $fixture = new Method('myMethod', [], null, $expected);
$this->assertSame($expected, $fixture->isStatic()); $this->assertSame($expected, $fixture->isStatic());
$expected = true; $expected = true;
$fixture = new Method('myMethod', [], null, $expected); $fixture = new Method('myMethod', [], null, $expected);
$this->assertSame($expected, $fixture->isStatic()); $this->assertSame($expected, $fixture->isStatic());
} }
/** /**
* @uses \phpDocumentor\Reflection\DocBlock\Description
*
* @covers ::__construct * @covers ::__construct
* @covers \phpDocumentor\Reflection\DocBlock\Tags\BaseTag::getDescription * @covers \phpDocumentor\Reflection\DocBlock\Tags\BaseTag::getDescription
* @uses \phpDocumentor\Reflection\DocBlock\Description
*/ */
public function testHasDescription(): void public function testHasDescription() : void
{ {
$expected = new Description('Description'); $expected = new Description('Description');
@@ -235,18 +247,19 @@ class MethodTest extends TestCase
} }
/** /**
* @covers ::__construct
* @covers ::__toString
* @uses \phpDocumentor\Reflection\DocBlock\Description * @uses \phpDocumentor\Reflection\DocBlock\Description
* @uses \phpDocumentor\Reflection\DocBlock\Tags\Method::isStatic * @uses \phpDocumentor\Reflection\DocBlock\Tags\Method::isStatic
*
* @covers ::__construct
* @covers ::__toString
*/ */
public function testStringRepresentationIsReturned(): void public function testStringRepresentationIsReturned() : void
{ {
$arguments = [ $arguments = [
['name' => 'argument1', 'type' => new String_()], ['name' => 'argument1', 'type' => new String_()],
['name' => 'argument2', 'type' => new Object_()], ['name' => 'argument2', 'type' => new Object_()],
]; ];
$fixture = new Method('myMethod', $arguments, new Void_(), true, new Description('My Description')); $fixture = new Method('myMethod', $arguments, new Void_(), true, new Description('My Description'));
$this->assertSame( $this->assertSame(
'static void myMethod(string $argument1, object $argument2) My Description', 'static void myMethod(string $argument1, object $argument2) My Description',
@@ -255,21 +268,22 @@ class MethodTest extends TestCase
} }
/** /**
* @covers ::create
* @uses \phpDocumentor\Reflection\DocBlock\Tags\Method::<public> * @uses \phpDocumentor\Reflection\DocBlock\Tags\Method::<public>
* @uses \phpDocumentor\Reflection\DocBlock\DescriptionFactory * @uses \phpDocumentor\Reflection\DocBlock\DescriptionFactory
* @uses \phpDocumentor\Reflection\TypeResolver * @uses \phpDocumentor\Reflection\TypeResolver
* @uses \phpDocumentor\Reflection\DocBlock\Description * @uses \phpDocumentor\Reflection\DocBlock\Description
* @uses \phpDocumentor\Reflection\Fqsen * @uses \phpDocumentor\Reflection\Fqsen
* @uses \phpDocumentor\Reflection\Types\Context * @uses \phpDocumentor\Reflection\Types\Context
*
* @covers ::create
*/ */
public function testFactoryMethod(): void public function testFactoryMethod() : void
{ {
$descriptionFactory = m::mock(DescriptionFactory::class); $descriptionFactory = m::mock(DescriptionFactory::class);
$resolver = new TypeResolver(); $resolver = new TypeResolver();
$context = new Context(''); $context = new Context('');
$description = new Description('My Description'); $description = new Description('My Description');
$expectedArguments = [ $expectedArguments = [
['name' => 'argument1', 'type' => new String_()], ['name' => 'argument1', 'type' => new String_()],
['name' => 'argument2', 'type' => new Void_()], ['name' => 'argument2', 'type' => new Void_()],
@@ -292,17 +306,18 @@ class MethodTest extends TestCase
} }
/** /**
* @covers ::create
* @uses \phpDocumentor\Reflection\DocBlock\Tags\Method::<public> * @uses \phpDocumentor\Reflection\DocBlock\Tags\Method::<public>
* @uses \phpDocumentor\Reflection\TypeResolver * @uses \phpDocumentor\Reflection\TypeResolver
* @uses \phpDocumentor\Reflection\DocBlock\Description * @uses \phpDocumentor\Reflection\DocBlock\Description
* @uses \phpDocumentor\Reflection\Types\Context * @uses \phpDocumentor\Reflection\Types\Context
*
* @covers ::create
*/ */
public function testReturnTypeThis(): void public function testReturnTypeThis() : void
{ {
$descriptionFactory = m::mock(DescriptionFactory::class); $descriptionFactory = m::mock(DescriptionFactory::class);
$resolver = new TypeResolver(); $resolver = new TypeResolver();
$context = new Context(''); $context = new Context('');
$description = new Description(''); $description = new Description('');
@@ -321,52 +336,58 @@ class MethodTest extends TestCase
$this->assertInstanceOf(This::class, $fixture->getReturnType()); $this->assertInstanceOf(This::class, $fixture->getReturnType());
} }
public function collectionReturnTypesProvider() /**
* @return string[][]
*/
public function collectionReturnTypesProvider() : array
{ {
return [ return [
['int[]', Array_::class, Integer::class, Compound::class], ['int[]', Array_::class, Integer::class, Compound::class],
['int[][]', Array_::class, Array_::class, Compound::class], ['int[][]', Array_::class, Array_::class, Compound::class],
['Object[]', Array_::class, Object_::class, Compound::class], ['Object[]', Array_::class, Object_::class, Compound::class],
['array[]', Array_::class, Array_::class, Compound::class], ['array[]', Array_::class, Array_::class, Compound::class],
]; ];
} }
/** /**
* @uses \phpDocumentor\Reflection\DocBlock\Tags\Method::<public>
* @uses \phpDocumentor\Reflection\DocBlock\Description
* @uses \phpDocumentor\Reflection\DocBlock\DescriptionFactory
* @uses \phpDocumentor\Reflection\TypeResolver
* @uses \phpDocumentor\Reflection\Types\Array_
* @uses \phpDocumentor\Reflection\Types\Compound
* @uses \phpDocumentor\Reflection\Types\Integer
* @uses \phpDocumentor\Reflection\Types\Object_
*
* @dataProvider collectionReturnTypesProvider * @dataProvider collectionReturnTypesProvider
* @covers ::create * @covers ::create
* @uses phpDocumentor\Reflection\DocBlock\Tags\Method::<public>
* @uses phpDocumentor\Reflection\DocBlock\Description
* @uses phpDocumentor\Reflection\DocBlock\DescriptionFactory
* @uses phpDocumentor\Reflection\TypeResolver
* @uses phpDocumentor\Reflection\Types\Array_
* @uses phpDocumentor\Reflection\Types\Compound
* @uses phpDocumentor\Reflection\Types\Integer
* @uses phpDocumentor\Reflection\Types\Object_
*/ */
public function testCollectionReturnTypes( public function testCollectionReturnTypes(
string $returnType, string $returnType,
string $expectedType, string $expectedType,
?string $expectedValueType = null, ?string $expectedValueType = null,
?string $expectedKeyType = null ?string $expectedKeyType = null
): void { ) : void {
$resolver = new TypeResolver(); $resolver = new TypeResolver();
$descriptionFactory = m::mock(DescriptionFactory::class); $descriptionFactory = m::mock(DescriptionFactory::class);
$descriptionFactory->shouldReceive('create')->with('', null)->andReturn(new Description('')); $descriptionFactory->shouldReceive('create')->with('', null)->andReturn(new Description(''));
$fixture = Method::create("${returnType} myMethod(\$arg)", $resolver, $descriptionFactory); $fixture = Method::create("${returnType} myMethod(\$arg)", $resolver, $descriptionFactory);
$returnType = $fixture->getReturnType(); $returnType = $fixture->getReturnType();
$this->assertInstanceOf($expectedType, $returnType); $this->assertInstanceOf($expectedType, $returnType);
if ($returnType instanceof Array_) { if (!($returnType instanceof Array_)) {
$this->assertInstanceOf($expectedValueType, $returnType->getValueType()); return;
$this->assertInstanceOf($expectedKeyType, $returnType->getKeyType());
} }
$this->assertInstanceOf($expectedValueType, $returnType->getValueType());
$this->assertInstanceOf($expectedKeyType, $returnType->getKeyType());
} }
/** /**
* @covers ::create * @covers ::create
*/ */
public function testFactoryMethodFailsIfBodyIsEmpty(): void public function testFactoryMethodFailsIfBodyIsEmpty() : void
{ {
$this->expectException('InvalidArgumentException'); $this->expectException('InvalidArgumentException');
Method::create(''); Method::create('');
@@ -375,7 +396,7 @@ class MethodTest extends TestCase
/** /**
* @covers ::create * @covers ::create
*/ */
public function testFactoryMethodReturnsNullIfBodyIsIncorrect(): void public function testFactoryMethodReturnsNullIfBodyIsIncorrect() : void
{ {
$this->expectException('InvalidArgumentException'); $this->expectException('InvalidArgumentException');
$this->assertNull(Method::create('body(')); $this->assertNull(Method::create('body('));
@@ -384,7 +405,7 @@ class MethodTest extends TestCase
/** /**
* @covers ::create * @covers ::create
*/ */
public function testFactoryMethodFailsIfResolverIsNull(): void public function testFactoryMethodFailsIfResolverIsNull() : void
{ {
$this->expectException('InvalidArgumentException'); $this->expectException('InvalidArgumentException');
Method::create('body'); Method::create('body');
@@ -393,7 +414,7 @@ class MethodTest extends TestCase
/** /**
* @covers ::create * @covers ::create
*/ */
public function testFactoryMethodFailsIfDescriptionFactoryIsNull(): void public function testFactoryMethodFailsIfDescriptionFactoryIsNull() : void
{ {
$this->expectException('InvalidArgumentException'); $this->expectException('InvalidArgumentException');
Method::create('body', new TypeResolver()); Method::create('body', new TypeResolver());
@@ -402,16 +423,7 @@ class MethodTest extends TestCase
/** /**
* @covers ::__construct * @covers ::__construct
*/ */
public function testCreationFailsIfBodyIsNotString(): void public function testCreationFailsIfBodyIsEmpty() : void
{
$this->expectException('InvalidArgumentException');
new Method([]);
}
/**
* @covers ::__construct
*/
public function testCreationFailsIfBodyIsEmpty(): void
{ {
$this->expectException('InvalidArgumentException'); $this->expectException('InvalidArgumentException');
new Method(''); new Method('');
@@ -420,35 +432,27 @@ class MethodTest extends TestCase
/** /**
* @covers ::__construct * @covers ::__construct
*/ */
public function testCreationFailsIfStaticIsNotBoolean(): void public function testCreationFailsIfArgumentRecordContainsInvalidEntry() : void
{
$this->expectException('InvalidArgumentException');
new Method('body', [], null, []);
}
/**
* @covers ::__construct
*/
public function testCreationFailsIfArgumentRecordContainsInvalidEntry(): void
{ {
$this->expectException('InvalidArgumentException'); $this->expectException('InvalidArgumentException');
new Method('body', [['name' => 'myName', 'unknown' => 'nah']]); new Method('body', [['name' => 'myName', 'unknown' => 'nah']]);
} }
/** /**
* @covers ::create
* @uses \phpDocumentor\Reflection\DocBlock\Tags\Method::<public> * @uses \phpDocumentor\Reflection\DocBlock\Tags\Method::<public>
* @uses \phpDocumentor\Reflection\DocBlock\DescriptionFactory * @uses \phpDocumentor\Reflection\DocBlock\DescriptionFactory
* @uses \phpDocumentor\Reflection\TypeResolver * @uses \phpDocumentor\Reflection\TypeResolver
* @uses \phpDocumentor\Reflection\DocBlock\Description * @uses \phpDocumentor\Reflection\DocBlock\Description
* @uses \phpDocumentor\Reflection\Fqsen * @uses \phpDocumentor\Reflection\Fqsen
* @uses \phpDocumentor\Reflection\Types\Context * @uses \phpDocumentor\Reflection\Types\Context
*
* @covers ::create
*/ */
public function testCreateMethodParenthesisMissing(): void public function testCreateMethodParenthesisMissing() : void
{ {
$descriptionFactory = m::mock(DescriptionFactory::class); $descriptionFactory = m::mock(DescriptionFactory::class);
$resolver = new TypeResolver(); $resolver = new TypeResolver();
$context = new Context(''); $context = new Context('');
$description = new Description('My Description'); $description = new Description('My Description');
@@ -469,7 +473,6 @@ class MethodTest extends TestCase
} }
/** /**
* @covers ::create
* @uses \phpDocumentor\Reflection\DocBlock\Tags\Method::<public> * @uses \phpDocumentor\Reflection\DocBlock\Tags\Method::<public>
* @uses \phpDocumentor\Reflection\DocBlock\DescriptionFactory * @uses \phpDocumentor\Reflection\DocBlock\DescriptionFactory
* @uses \phpDocumentor\Reflection\TypeResolver * @uses \phpDocumentor\Reflection\TypeResolver
@@ -477,12 +480,14 @@ class MethodTest extends TestCase
* @uses \phpDocumentor\Reflection\Fqsen * @uses \phpDocumentor\Reflection\Fqsen
* @uses \phpDocumentor\Reflection\Types\Context * @uses \phpDocumentor\Reflection\Types\Context
* @uses \phpDocumentor\Reflection\Types\Void_ * @uses \phpDocumentor\Reflection\Types\Void_
*
* @covers ::create
*/ */
public function testCreateWithoutReturnType(): void public function testCreateWithoutReturnType() : void
{ {
$descriptionFactory = m::mock(DescriptionFactory::class); $descriptionFactory = m::mock(DescriptionFactory::class);
$resolver = new TypeResolver(); $resolver = new TypeResolver();
$context = new Context(''); $context = new Context('');
$description = new Description(''); $description = new Description('');
@@ -503,7 +508,6 @@ class MethodTest extends TestCase
} }
/** /**
* @covers ::create
* @uses \phpDocumentor\Reflection\DocBlock\Tags\Method::<public> * @uses \phpDocumentor\Reflection\DocBlock\Tags\Method::<public>
* @uses \phpDocumentor\Reflection\DocBlock\DescriptionFactory * @uses \phpDocumentor\Reflection\DocBlock\DescriptionFactory
* @uses \phpDocumentor\Reflection\TypeResolver * @uses \phpDocumentor\Reflection\TypeResolver
@@ -514,12 +518,14 @@ class MethodTest extends TestCase
* @uses \phpDocumentor\Reflection\Types\Compound * @uses \phpDocumentor\Reflection\Types\Compound
* @uses \phpDocumentor\Reflection\Types\Integer * @uses \phpDocumentor\Reflection\Types\Integer
* @uses \phpDocumentor\Reflection\Types\Object_ * @uses \phpDocumentor\Reflection\Types\Object_
*
* @covers ::create
*/ */
public function testCreateWithMixedReturnTypes(): void public function testCreateWithMixedReturnTypes() : void
{ {
$descriptionFactory = m::mock(DescriptionFactory::class); $descriptionFactory = m::mock(DescriptionFactory::class);
$resolver = new TypeResolver(); $resolver = new TypeResolver();
$context = new Context(''); $context = new Context('');
$descriptionFactory->shouldReceive('create')->andReturn(new Description('')); $descriptionFactory->shouldReceive('create')->andReturn(new Description(''));
+32 -24
View File
@@ -1,4 +1,6 @@
<?php declare(strict_types=1); <?php
declare(strict_types=1);
/** /**
* This file is part of phpDocumentor. * This file is part of phpDocumentor.
@@ -6,8 +8,6 @@
* For the full copyright and license information, please view the LICENSE * For the full copyright and license information, please view the LICENSE
* file that was distributed with this source code. * file that was distributed with this source code.
* *
* @copyright 2010-2018 Mike van Riel<[email protected]>
* @license http://www.opensource.org/licenses/mit-license.php MIT
* @link http://phpdoc.org * @link http://phpdoc.org
*/ */
@@ -30,7 +30,7 @@ class ParamTest extends TestCase
/** /**
* Call Mockery::close after each test. * Call Mockery::close after each test.
*/ */
public function tearDown(): void public function tearDown() : void
{ {
m::close(); m::close();
} }
@@ -38,9 +38,10 @@ class ParamTest extends TestCase
/** /**
* @uses \phpDocumentor\Reflection\DocBlock\Tags\Param::__construct * @uses \phpDocumentor\Reflection\DocBlock\Tags\Param::__construct
* @uses \phpDocumentor\Reflection\DocBlock\Description * @uses \phpDocumentor\Reflection\DocBlock\Description
*
* @covers \phpDocumentor\Reflection\DocBlock\Tags\BaseTag::getName * @covers \phpDocumentor\Reflection\DocBlock\Tags\BaseTag::getName
*/ */
public function testIfCorrectTagNameIsReturned(): void public function testIfCorrectTagNameIsReturned() : void
{ {
$fixture = new Param('myParameter', null, false, new Description('Description')); $fixture = new Param('myParameter', null, false, new Description('Description'));
@@ -53,10 +54,11 @@ class ParamTest extends TestCase
* @uses \phpDocumentor\Reflection\DocBlock\Tags\Param::__toString * @uses \phpDocumentor\Reflection\DocBlock\Tags\Param::__toString
* @uses \phpDocumentor\Reflection\DocBlock\Tags\Formatter\PassthroughFormatter * @uses \phpDocumentor\Reflection\DocBlock\Tags\Formatter\PassthroughFormatter
* @uses \phpDocumentor\Reflection\DocBlock\Description * @uses \phpDocumentor\Reflection\DocBlock\Description
*
* @covers \phpDocumentor\Reflection\DocBlock\Tags\BaseTag::render * @covers \phpDocumentor\Reflection\DocBlock\Tags\BaseTag::render
* @covers \phpDocumentor\Reflection\DocBlock\Tags\BaseTag::getName * @covers \phpDocumentor\Reflection\DocBlock\Tags\BaseTag::getName
*/ */
public function testIfTagCanBeRenderedUsingDefaultFormatter(): void public function testIfTagCanBeRenderedUsingDefaultFormatter() : void
{ {
$fixture = new Param('myParameter', new String_(), true, new Description('Description')); $fixture = new Param('myParameter', new String_(), true, new Description('Description'));
$this->assertSame('@param string ...$myParameter Description', $fixture->render()); $this->assertSame('@param string ...$myParameter Description', $fixture->render());
@@ -73,9 +75,10 @@ class ParamTest extends TestCase
/** /**
* @uses \phpDocumentor\Reflection\DocBlock\Tags\Param::__construct * @uses \phpDocumentor\Reflection\DocBlock\Tags\Param::__construct
*
* @covers \phpDocumentor\Reflection\DocBlock\Tags\BaseTag::render * @covers \phpDocumentor\Reflection\DocBlock\Tags\BaseTag::render
*/ */
public function testIfTagCanBeRenderedUsingSpecificFormatter(): void public function testIfTagCanBeRenderedUsingSpecificFormatter() : void
{ {
$fixture = new Param('myParameter'); $fixture = new Param('myParameter');
@@ -89,7 +92,7 @@ class ParamTest extends TestCase
* @covers ::__construct * @covers ::__construct
* @covers ::getVariableName * @covers ::getVariableName
*/ */
public function testHasVariableName(): void public function testHasVariableName() : void
{ {
$expected = 'myParameter'; $expected = 'myParameter';
@@ -102,7 +105,7 @@ class ParamTest extends TestCase
* @covers ::__construct * @covers ::__construct
* @covers ::getType * @covers ::getType
*/ */
public function testHasType(): void public function testHasType() : void
{ {
$expected = new String_(); $expected = new String_();
@@ -115,7 +118,7 @@ class ParamTest extends TestCase
* @covers ::__construct * @covers ::__construct
* @covers ::isVariadic * @covers ::isVariadic
*/ */
public function testIfParameterIsVariadic(): void public function testIfParameterIsVariadic() : void
{ {
$fixture = new Param('myParameter', new String_(), false); $fixture = new Param('myParameter', new String_(), false);
$this->assertFalse($fixture->isVariadic()); $this->assertFalse($fixture->isVariadic());
@@ -125,11 +128,12 @@ class ParamTest extends TestCase
} }
/** /**
* @uses \phpDocumentor\Reflection\DocBlock\Description
*
* @covers ::__construct * @covers ::__construct
* @covers \phpDocumentor\Reflection\DocBlock\Tags\BaseTag::getDescription * @covers \phpDocumentor\Reflection\DocBlock\Tags\BaseTag::getDescription
* @uses \phpDocumentor\Reflection\DocBlock\Description
*/ */
public function testHasDescription(): void public function testHasDescription() : void
{ {
$expected = new Description('Description'); $expected = new Description('Description');
@@ -139,13 +143,14 @@ class ParamTest extends TestCase
} }
/** /**
* @uses \phpDocumentor\Reflection\DocBlock\Description
* @uses \phpDocumentor\Reflection\Types\String_
*
* @covers ::__construct * @covers ::__construct
* @covers ::isVariadic * @covers ::isVariadic
* @covers ::__toString * @covers ::__toString
* @uses \phpDocumentor\Reflection\DocBlock\Description
* @uses \phpDocumentor\Reflection\Types\String_
*/ */
public function testStringRepresentationIsReturned(): void public function testStringRepresentationIsReturned() : void
{ {
$fixture = new Param('myParameter', new String_(), true, new Description('Description')); $fixture = new Param('myParameter', new String_(), true, new Description('Description'));
@@ -153,17 +158,18 @@ class ParamTest extends TestCase
} }
/** /**
* @covers ::create
* @uses \phpDocumentor\Reflection\DocBlock\Tags\Param::<public> * @uses \phpDocumentor\Reflection\DocBlock\Tags\Param::<public>
* @uses \phpDocumentor\Reflection\DocBlock\DescriptionFactory * @uses \phpDocumentor\Reflection\DocBlock\DescriptionFactory
* @uses \phpDocumentor\Reflection\DocBlock\Description * @uses \phpDocumentor\Reflection\DocBlock\Description
* @uses \phpDocumentor\Reflection\Types\Context * @uses \phpDocumentor\Reflection\Types\Context
*
* @covers ::create
*/ */
public function testFactoryMethod(): void public function testFactoryMethod() : void
{ {
$typeResolver = new TypeResolver(); $typeResolver = new TypeResolver();
$descriptionFactory = m::mock(DescriptionFactory::class); $descriptionFactory = m::mock(DescriptionFactory::class);
$context = new Context(''); $context = new Context('');
$description = new Description('My Description'); $description = new Description('My Description');
$descriptionFactory->shouldReceive('create')->with('My Description', $context)->andReturn($description); $descriptionFactory->shouldReceive('create')->with('My Description', $context)->andReturn($description);
@@ -178,12 +184,13 @@ class ParamTest extends TestCase
} }
/** /**
* @covers ::create
* @uses \phpDocumentor\Reflection\DocBlock\Tags\Param::<public> * @uses \phpDocumentor\Reflection\DocBlock\Tags\Param::<public>
* @uses \phpDocumentor\Reflection\TypeResolver * @uses \phpDocumentor\Reflection\TypeResolver
* @uses \phpDocumentor\Reflection\DocBlock\DescriptionFactory * @uses \phpDocumentor\Reflection\DocBlock\DescriptionFactory
*
* @covers ::create
*/ */
public function testFactoryMethodFailsIfEmptyBodyIsGiven(): void public function testFactoryMethodFailsIfEmptyBodyIsGiven() : void
{ {
$this->expectException('InvalidArgumentException'); $this->expectException('InvalidArgumentException');
$descriptionFactory = m::mock(DescriptionFactory::class); $descriptionFactory = m::mock(DescriptionFactory::class);
@@ -193,17 +200,18 @@ class ParamTest extends TestCase
/** /**
* @covers ::create * @covers ::create
*/ */
public function testFactoryMethodFailsIfResolverIsNull(): void public function testFactoryMethodFailsIfResolverIsNull() : void
{ {
$this->expectException('InvalidArgumentException'); $this->expectException('InvalidArgumentException');
Param::create('body'); Param::create('body');
} }
/** /**
* @covers ::create
* @uses \phpDocumentor\Reflection\TypeResolver * @uses \phpDocumentor\Reflection\TypeResolver
*
* @covers ::create
*/ */
public function testFactoryMethodFailsIfDescriptionFactoryIsNull(): void public function testFactoryMethodFailsIfDescriptionFactoryIsNull() : void
{ {
$this->expectException('InvalidArgumentException'); $this->expectException('InvalidArgumentException');
Param::create('body', new TypeResolver()); Param::create('body', new TypeResolver());
+31 -23
View File
@@ -1,4 +1,6 @@
<?php declare(strict_types=1); <?php
declare(strict_types=1);
/** /**
* This file is part of phpDocumentor. * This file is part of phpDocumentor.
@@ -6,8 +8,6 @@
* For the full copyright and license information, please view the LICENSE * For the full copyright and license information, please view the LICENSE
* file that was distributed with this source code. * file that was distributed with this source code.
* *
* @copyright 2010-2018 Mike van Riel<[email protected]>
* @license http://www.opensource.org/licenses/mit-license.php MIT
* @link http://phpdoc.org * @link http://phpdoc.org
*/ */
@@ -30,7 +30,7 @@ class PropertyReadTest extends TestCase
/** /**
* Call Mockery::close after each test. * Call Mockery::close after each test.
*/ */
public function tearDown(): void public function tearDown() : void
{ {
m::close(); m::close();
} }
@@ -38,9 +38,10 @@ class PropertyReadTest extends TestCase
/** /**
* @uses \phpDocumentor\Reflection\DocBlock\Tags\PropertyRead::__construct * @uses \phpDocumentor\Reflection\DocBlock\Tags\PropertyRead::__construct
* @uses \phpDocumentor\Reflection\DocBlock\Description * @uses \phpDocumentor\Reflection\DocBlock\Description
*
* @covers \phpDocumentor\Reflection\DocBlock\Tags\BaseTag::getName * @covers \phpDocumentor\Reflection\DocBlock\Tags\BaseTag::getName
*/ */
public function testIfCorrectTagNameIsReturned(): void public function testIfCorrectTagNameIsReturned() : void
{ {
$fixture = new PropertyRead('myProperty', null, new Description('Description')); $fixture = new PropertyRead('myProperty', null, new Description('Description'));
@@ -52,10 +53,11 @@ class PropertyReadTest extends TestCase
* @uses \phpDocumentor\Reflection\DocBlock\Tags\PropertyRead::__toString * @uses \phpDocumentor\Reflection\DocBlock\Tags\PropertyRead::__toString
* @uses \phpDocumentor\Reflection\DocBlock\Tags\Formatter\PassthroughFormatter * @uses \phpDocumentor\Reflection\DocBlock\Tags\Formatter\PassthroughFormatter
* @uses \phpDocumentor\Reflection\DocBlock\Description * @uses \phpDocumentor\Reflection\DocBlock\Description
*
* @covers \phpDocumentor\Reflection\DocBlock\Tags\BaseTag::render * @covers \phpDocumentor\Reflection\DocBlock\Tags\BaseTag::render
* @covers \phpDocumentor\Reflection\DocBlock\Tags\BaseTag::getName * @covers \phpDocumentor\Reflection\DocBlock\Tags\BaseTag::getName
*/ */
public function testIfTagCanBeRenderedUsingDefaultFormatter(): void public function testIfTagCanBeRenderedUsingDefaultFormatter() : void
{ {
$fixture = new PropertyRead('myProperty', new String_(), new Description('Description')); $fixture = new PropertyRead('myProperty', new String_(), new Description('Description'));
$this->assertSame('@property-read string $myProperty Description', $fixture->render()); $this->assertSame('@property-read string $myProperty Description', $fixture->render());
@@ -69,9 +71,10 @@ class PropertyReadTest extends TestCase
/** /**
* @uses \phpDocumentor\Reflection\DocBlock\Tags\PropertyRead::__construct * @uses \phpDocumentor\Reflection\DocBlock\Tags\PropertyRead::__construct
*
* @covers \phpDocumentor\Reflection\DocBlock\Tags\BaseTag::render * @covers \phpDocumentor\Reflection\DocBlock\Tags\BaseTag::render
*/ */
public function testIfTagCanBeRenderedUsingSpecificFormatter(): void public function testIfTagCanBeRenderedUsingSpecificFormatter() : void
{ {
$fixture = new PropertyRead('myProperty'); $fixture = new PropertyRead('myProperty');
@@ -85,7 +88,7 @@ class PropertyReadTest extends TestCase
* @covers ::__construct * @covers ::__construct
* @covers ::getVariableName * @covers ::getVariableName
*/ */
public function testHasVariableName(): void public function testHasVariableName() : void
{ {
$expected = 'myProperty'; $expected = 'myProperty';
@@ -98,7 +101,7 @@ class PropertyReadTest extends TestCase
* @covers ::__construct * @covers ::__construct
* @covers ::getType * @covers ::getType
*/ */
public function testHasType(): void public function testHasType() : void
{ {
$expected = new String_(); $expected = new String_();
@@ -108,11 +111,12 @@ class PropertyReadTest extends TestCase
} }
/** /**
* @uses \phpDocumentor\Reflection\DocBlock\Description
*
* @covers ::__construct * @covers ::__construct
* @covers \phpDocumentor\Reflection\DocBlock\Tags\BaseTag::getDescription * @covers \phpDocumentor\Reflection\DocBlock\Tags\BaseTag::getDescription
* @uses \phpDocumentor\Reflection\DocBlock\Description
*/ */
public function testHasDescription(): void public function testHasDescription() : void
{ {
$expected = new Description('Description'); $expected = new Description('Description');
@@ -122,12 +126,13 @@ class PropertyReadTest extends TestCase
} }
/** /**
* @covers ::__construct
* @covers ::__toString
* @uses \phpDocumentor\Reflection\DocBlock\Description * @uses \phpDocumentor\Reflection\DocBlock\Description
* @uses \phpDocumentor\Reflection\Types\String_ * @uses \phpDocumentor\Reflection\Types\String_
*
* @covers ::__construct
* @covers ::__toString
*/ */
public function testStringRepresentationIsReturned(): void public function testStringRepresentationIsReturned() : void
{ {
$fixture = new PropertyRead('myProperty', new String_(), new Description('Description')); $fixture = new PropertyRead('myProperty', new String_(), new Description('Description'));
@@ -135,17 +140,18 @@ class PropertyReadTest extends TestCase
} }
/** /**
* @covers ::create
* @uses \phpDocumentor\Reflection\DocBlock\Tags\PropertyRead::<public> * @uses \phpDocumentor\Reflection\DocBlock\Tags\PropertyRead::<public>
* @uses \phpDocumentor\Reflection\DocBlock\DescriptionFactory * @uses \phpDocumentor\Reflection\DocBlock\DescriptionFactory
* @uses \phpDocumentor\Reflection\DocBlock\Description * @uses \phpDocumentor\Reflection\DocBlock\Description
* @uses \phpDocumentor\Reflection\Types\Context * @uses \phpDocumentor\Reflection\Types\Context
*
* @covers ::create
*/ */
public function testFactoryMethod(): void public function testFactoryMethod() : void
{ {
$typeResolver = new TypeResolver(); $typeResolver = new TypeResolver();
$descriptionFactory = m::mock(DescriptionFactory::class); $descriptionFactory = m::mock(DescriptionFactory::class);
$context = new Context(''); $context = new Context('');
$description = new Description('My Description'); $description = new Description('My Description');
$descriptionFactory->shouldReceive('create')->with('My Description', $context)->andReturn($description); $descriptionFactory->shouldReceive('create')->with('My Description', $context)->andReturn($description);
@@ -164,12 +170,13 @@ class PropertyReadTest extends TestCase
} }
/** /**
* @covers ::create
* @uses \phpDocumentor\Reflection\DocBlock\Tags\PropertyRead::<public> * @uses \phpDocumentor\Reflection\DocBlock\Tags\PropertyRead::<public>
* @uses \phpDocumentor\Reflection\TypeResolver * @uses \phpDocumentor\Reflection\TypeResolver
* @uses \phpDocumentor\Reflection\DocBlock\DescriptionFactory * @uses \phpDocumentor\Reflection\DocBlock\DescriptionFactory
*
* @covers ::create
*/ */
public function testFactoryMethodFailsIfEmptyBodyIsGiven(): void public function testFactoryMethodFailsIfEmptyBodyIsGiven() : void
{ {
$this->expectException('InvalidArgumentException'); $this->expectException('InvalidArgumentException');
$descriptionFactory = m::mock(DescriptionFactory::class); $descriptionFactory = m::mock(DescriptionFactory::class);
@@ -179,17 +186,18 @@ class PropertyReadTest extends TestCase
/** /**
* @covers ::create * @covers ::create
*/ */
public function testFactoryMethodFailsIfResolverIsNull(): void public function testFactoryMethodFailsIfResolverIsNull() : void
{ {
$this->expectException('InvalidArgumentException'); $this->expectException('InvalidArgumentException');
PropertyRead::create('body'); PropertyRead::create('body');
} }
/** /**
* @covers ::create
* @uses \phpDocumentor\Reflection\TypeResolver * @uses \phpDocumentor\Reflection\TypeResolver
*
* @covers ::create
*/ */
public function testFactoryMethodFailsIfDescriptionFactoryIsNull(): void public function testFactoryMethodFailsIfDescriptionFactoryIsNull() : void
{ {
$this->expectException('InvalidArgumentException'); $this->expectException('InvalidArgumentException');
PropertyRead::create('body', new TypeResolver()); PropertyRead::create('body', new TypeResolver());
+31 -23
View File
@@ -1,4 +1,6 @@
<?php declare(strict_types=1); <?php
declare(strict_types=1);
/** /**
* This file is part of phpDocumentor. * This file is part of phpDocumentor.
@@ -6,8 +8,6 @@
* For the full copyright and license information, please view the LICENSE * For the full copyright and license information, please view the LICENSE
* file that was distributed with this source code. * file that was distributed with this source code.
* *
* @copyright 2010-2018 Mike van Riel<[email protected]>
* @license http://www.opensource.org/licenses/mit-license.php MIT
* @link http://phpdoc.org * @link http://phpdoc.org
*/ */
@@ -30,7 +30,7 @@ class PropertyTest extends TestCase
/** /**
* Call Mockery::close after each test. * Call Mockery::close after each test.
*/ */
public function tearDown(): void public function tearDown() : void
{ {
m::close(); m::close();
} }
@@ -38,9 +38,10 @@ class PropertyTest extends TestCase
/** /**
* @uses \phpDocumentor\Reflection\DocBlock\Tags\Property::__construct * @uses \phpDocumentor\Reflection\DocBlock\Tags\Property::__construct
* @uses \phpDocumentor\Reflection\DocBlock\Description * @uses \phpDocumentor\Reflection\DocBlock\Description
*
* @covers \phpDocumentor\Reflection\DocBlock\Tags\BaseTag::getName * @covers \phpDocumentor\Reflection\DocBlock\Tags\BaseTag::getName
*/ */
public function testIfCorrectTagNameIsReturned(): void public function testIfCorrectTagNameIsReturned() : void
{ {
$fixture = new Property('myProperty', null, new Description('Description')); $fixture = new Property('myProperty', null, new Description('Description'));
@@ -52,10 +53,11 @@ class PropertyTest extends TestCase
* @uses \phpDocumentor\Reflection\DocBlock\Tags\Property::__toString * @uses \phpDocumentor\Reflection\DocBlock\Tags\Property::__toString
* @uses \phpDocumentor\Reflection\DocBlock\Tags\Formatter\PassthroughFormatter * @uses \phpDocumentor\Reflection\DocBlock\Tags\Formatter\PassthroughFormatter
* @uses \phpDocumentor\Reflection\DocBlock\Description * @uses \phpDocumentor\Reflection\DocBlock\Description
*
* @covers \phpDocumentor\Reflection\DocBlock\Tags\BaseTag::render * @covers \phpDocumentor\Reflection\DocBlock\Tags\BaseTag::render
* @covers \phpDocumentor\Reflection\DocBlock\Tags\BaseTag::getName * @covers \phpDocumentor\Reflection\DocBlock\Tags\BaseTag::getName
*/ */
public function testIfTagCanBeRenderedUsingDefaultFormatter(): void public function testIfTagCanBeRenderedUsingDefaultFormatter() : void
{ {
$fixture = new Property('myProperty', new String_(), new Description('Description')); $fixture = new Property('myProperty', new String_(), new Description('Description'));
$this->assertSame('@property string $myProperty Description', $fixture->render()); $this->assertSame('@property string $myProperty Description', $fixture->render());
@@ -69,9 +71,10 @@ class PropertyTest extends TestCase
/** /**
* @uses \phpDocumentor\Reflection\DocBlock\Tags\Property::__construct * @uses \phpDocumentor\Reflection\DocBlock\Tags\Property::__construct
*
* @covers \phpDocumentor\Reflection\DocBlock\Tags\BaseTag::render * @covers \phpDocumentor\Reflection\DocBlock\Tags\BaseTag::render
*/ */
public function testIfTagCanBeRenderedUsingSpecificFormatter(): void public function testIfTagCanBeRenderedUsingSpecificFormatter() : void
{ {
$fixture = new Property('myProperty'); $fixture = new Property('myProperty');
@@ -85,7 +88,7 @@ class PropertyTest extends TestCase
* @covers ::__construct * @covers ::__construct
* @covers ::getVariableName * @covers ::getVariableName
*/ */
public function testHasVariableName(): void public function testHasVariableName() : void
{ {
$expected = 'myProperty'; $expected = 'myProperty';
@@ -98,7 +101,7 @@ class PropertyTest extends TestCase
* @covers ::__construct * @covers ::__construct
* @covers ::getType * @covers ::getType
*/ */
public function testHasType(): void public function testHasType() : void
{ {
$expected = new String_(); $expected = new String_();
@@ -108,11 +111,12 @@ class PropertyTest extends TestCase
} }
/** /**
* @uses \phpDocumentor\Reflection\DocBlock\Description
*
* @covers ::__construct * @covers ::__construct
* @covers \phpDocumentor\Reflection\DocBlock\Tags\BaseTag::getDescription * @covers \phpDocumentor\Reflection\DocBlock\Tags\BaseTag::getDescription
* @uses \phpDocumentor\Reflection\DocBlock\Description
*/ */
public function testHasDescription(): void public function testHasDescription() : void
{ {
$expected = new Description('Description'); $expected = new Description('Description');
@@ -122,12 +126,13 @@ class PropertyTest extends TestCase
} }
/** /**
* @covers ::__construct
* @covers ::__toString
* @uses \phpDocumentor\Reflection\DocBlock\Description * @uses \phpDocumentor\Reflection\DocBlock\Description
* @uses \phpDocumentor\Reflection\Types\String_ * @uses \phpDocumentor\Reflection\Types\String_
*
* @covers ::__construct
* @covers ::__toString
*/ */
public function testStringRepresentationIsReturned(): void public function testStringRepresentationIsReturned() : void
{ {
$fixture = new Property('myProperty', new String_(), new Description('Description')); $fixture = new Property('myProperty', new String_(), new Description('Description'));
@@ -135,17 +140,18 @@ class PropertyTest extends TestCase
} }
/** /**
* @covers ::create
* @uses \phpDocumentor\Reflection\DocBlock\Tags\Property::<public> * @uses \phpDocumentor\Reflection\DocBlock\Tags\Property::<public>
* @uses \phpDocumentor\Reflection\DocBlock\DescriptionFactory * @uses \phpDocumentor\Reflection\DocBlock\DescriptionFactory
* @uses \phpDocumentor\Reflection\DocBlock\Description * @uses \phpDocumentor\Reflection\DocBlock\Description
* @uses \phpDocumentor\Reflection\Types\Context * @uses \phpDocumentor\Reflection\Types\Context
*
* @covers ::create
*/ */
public function testFactoryMethod(): void public function testFactoryMethod() : void
{ {
$typeResolver = new TypeResolver(); $typeResolver = new TypeResolver();
$descriptionFactory = m::mock(DescriptionFactory::class); $descriptionFactory = m::mock(DescriptionFactory::class);
$context = new Context(''); $context = new Context('');
$description = new Description('My Description'); $description = new Description('My Description');
$descriptionFactory->shouldReceive('create')->with('My Description', $context)->andReturn($description); $descriptionFactory->shouldReceive('create')->with('My Description', $context)->andReturn($description);
@@ -159,12 +165,13 @@ class PropertyTest extends TestCase
} }
/** /**
* @covers ::create
* @uses \phpDocumentor\Reflection\DocBlock\Tags\Property::<public> * @uses \phpDocumentor\Reflection\DocBlock\Tags\Property::<public>
* @uses \phpDocumentor\Reflection\TypeResolver * @uses \phpDocumentor\Reflection\TypeResolver
* @uses \phpDocumentor\Reflection\DocBlock\DescriptionFactory * @uses \phpDocumentor\Reflection\DocBlock\DescriptionFactory
*
* @covers ::create
*/ */
public function testFactoryMethodFailsIfEmptyBodyIsGiven(): void public function testFactoryMethodFailsIfEmptyBodyIsGiven() : void
{ {
$this->expectException('InvalidArgumentException'); $this->expectException('InvalidArgumentException');
$descriptionFactory = m::mock(DescriptionFactory::class); $descriptionFactory = m::mock(DescriptionFactory::class);
@@ -174,17 +181,18 @@ class PropertyTest extends TestCase
/** /**
* @covers ::create * @covers ::create
*/ */
public function testFactoryMethodFailsIfResolverIsNull(): void public function testFactoryMethodFailsIfResolverIsNull() : void
{ {
$this->expectException('InvalidArgumentException'); $this->expectException('InvalidArgumentException');
Property::create('body'); Property::create('body');
} }
/** /**
* @covers ::create
* @uses \phpDocumentor\Reflection\TypeResolver * @uses \phpDocumentor\Reflection\TypeResolver
*
* @covers ::create
*/ */
public function testFactoryMethodFailsIfDescriptionFactoryIsNull(): void public function testFactoryMethodFailsIfDescriptionFactoryIsNull() : void
{ {
$this->expectException('InvalidArgumentException'); $this->expectException('InvalidArgumentException');
Property::create('body', new TypeResolver()); Property::create('body', new TypeResolver());
+31 -23
View File
@@ -1,4 +1,6 @@
<?php declare(strict_types=1); <?php
declare(strict_types=1);
/** /**
* This file is part of phpDocumentor. * This file is part of phpDocumentor.
@@ -6,8 +8,6 @@
* For the full copyright and license information, please view the LICENSE * For the full copyright and license information, please view the LICENSE
* file that was distributed with this source code. * file that was distributed with this source code.
* *
* @copyright 2010-2018 Mike van Riel<[email protected]>
* @license http://www.opensource.org/licenses/mit-license.php MIT
* @link http://phpdoc.org * @link http://phpdoc.org
*/ */
@@ -30,7 +30,7 @@ class PropertyWriteTest extends TestCase
/** /**
* Call Mockery::close after each test. * Call Mockery::close after each test.
*/ */
public function tearDown(): void public function tearDown() : void
{ {
m::close(); m::close();
} }
@@ -38,9 +38,10 @@ class PropertyWriteTest extends TestCase
/** /**
* @uses \phpDocumentor\Reflection\DocBlock\Tags\PropertyWrite::__construct * @uses \phpDocumentor\Reflection\DocBlock\Tags\PropertyWrite::__construct
* @uses \phpDocumentor\Reflection\DocBlock\Description * @uses \phpDocumentor\Reflection\DocBlock\Description
*
* @covers \phpDocumentor\Reflection\DocBlock\Tags\BaseTag::getName * @covers \phpDocumentor\Reflection\DocBlock\Tags\BaseTag::getName
*/ */
public function testIfCorrectTagNameIsReturned(): void public function testIfCorrectTagNameIsReturned() : void
{ {
$fixture = new PropertyWrite('myProperty', null, new Description('Description')); $fixture = new PropertyWrite('myProperty', null, new Description('Description'));
@@ -52,10 +53,11 @@ class PropertyWriteTest extends TestCase
* @uses \phpDocumentor\Reflection\DocBlock\Tags\PropertyWrite::__toString * @uses \phpDocumentor\Reflection\DocBlock\Tags\PropertyWrite::__toString
* @uses \phpDocumentor\Reflection\DocBlock\Tags\Formatter\PassthroughFormatter * @uses \phpDocumentor\Reflection\DocBlock\Tags\Formatter\PassthroughFormatter
* @uses \phpDocumentor\Reflection\DocBlock\Description * @uses \phpDocumentor\Reflection\DocBlock\Description
*
* @covers \phpDocumentor\Reflection\DocBlock\Tags\BaseTag::render * @covers \phpDocumentor\Reflection\DocBlock\Tags\BaseTag::render
* @covers \phpDocumentor\Reflection\DocBlock\Tags\BaseTag::getName * @covers \phpDocumentor\Reflection\DocBlock\Tags\BaseTag::getName
*/ */
public function testIfTagCanBeRenderedUsingDefaultFormatter(): void public function testIfTagCanBeRenderedUsingDefaultFormatter() : void
{ {
$fixture = new PropertyWrite('myProperty', new String_(), new Description('Description')); $fixture = new PropertyWrite('myProperty', new String_(), new Description('Description'));
$this->assertSame('@property-write string $myProperty Description', $fixture->render()); $this->assertSame('@property-write string $myProperty Description', $fixture->render());
@@ -69,9 +71,10 @@ class PropertyWriteTest extends TestCase
/** /**
* @uses \phpDocumentor\Reflection\DocBlock\Tags\PropertyWrite::__construct * @uses \phpDocumentor\Reflection\DocBlock\Tags\PropertyWrite::__construct
*
* @covers \phpDocumentor\Reflection\DocBlock\Tags\BaseTag::render * @covers \phpDocumentor\Reflection\DocBlock\Tags\BaseTag::render
*/ */
public function testIfTagCanBeRenderedUsingSpecificFormatter(): void public function testIfTagCanBeRenderedUsingSpecificFormatter() : void
{ {
$fixture = new PropertyWrite('myProperty'); $fixture = new PropertyWrite('myProperty');
@@ -85,7 +88,7 @@ class PropertyWriteTest extends TestCase
* @covers ::__construct * @covers ::__construct
* @covers ::getVariableName * @covers ::getVariableName
*/ */
public function testHasVariableName(): void public function testHasVariableName() : void
{ {
$expected = 'myProperty'; $expected = 'myProperty';
@@ -98,7 +101,7 @@ class PropertyWriteTest extends TestCase
* @covers ::__construct * @covers ::__construct
* @covers ::getType * @covers ::getType
*/ */
public function testHasType(): void public function testHasType() : void
{ {
$expected = new String_(); $expected = new String_();
@@ -108,11 +111,12 @@ class PropertyWriteTest extends TestCase
} }
/** /**
* @uses \phpDocumentor\Reflection\DocBlock\Description
*
* @covers ::__construct * @covers ::__construct
* @covers \phpDocumentor\Reflection\DocBlock\Tags\BaseTag::getDescription * @covers \phpDocumentor\Reflection\DocBlock\Tags\BaseTag::getDescription
* @uses \phpDocumentor\Reflection\DocBlock\Description
*/ */
public function testHasDescription(): void public function testHasDescription() : void
{ {
$expected = new Description('Description'); $expected = new Description('Description');
@@ -122,12 +126,13 @@ class PropertyWriteTest extends TestCase
} }
/** /**
* @covers ::__construct
* @covers ::__toString
* @uses \phpDocumentor\Reflection\DocBlock\Description * @uses \phpDocumentor\Reflection\DocBlock\Description
* @uses \phpDocumentor\Reflection\Types\String_ * @uses \phpDocumentor\Reflection\Types\String_
*
* @covers ::__construct
* @covers ::__toString
*/ */
public function testStringRepresentationIsReturned(): void public function testStringRepresentationIsReturned() : void
{ {
$fixture = new PropertyWrite('myProperty', new String_(), new Description('Description')); $fixture = new PropertyWrite('myProperty', new String_(), new Description('Description'));
@@ -135,17 +140,18 @@ class PropertyWriteTest extends TestCase
} }
/** /**
* @covers ::create
* @uses \phpDocumentor\Reflection\DocBlock\Tags\PropertyWrite::<public> * @uses \phpDocumentor\Reflection\DocBlock\Tags\PropertyWrite::<public>
* @uses \phpDocumentor\Reflection\DocBlock\DescriptionFactory * @uses \phpDocumentor\Reflection\DocBlock\DescriptionFactory
* @uses \phpDocumentor\Reflection\DocBlock\Description * @uses \phpDocumentor\Reflection\DocBlock\Description
* @uses \phpDocumentor\Reflection\Types\Context * @uses \phpDocumentor\Reflection\Types\Context
*
* @covers ::create
*/ */
public function testFactoryMethod(): void public function testFactoryMethod() : void
{ {
$typeResolver = new TypeResolver(); $typeResolver = new TypeResolver();
$descriptionFactory = m::mock(DescriptionFactory::class); $descriptionFactory = m::mock(DescriptionFactory::class);
$context = new Context(''); $context = new Context('');
$description = new Description('My Description'); $description = new Description('My Description');
$descriptionFactory->shouldReceive('create')->with('My Description', $context)->andReturn($description); $descriptionFactory->shouldReceive('create')->with('My Description', $context)->andReturn($description);
@@ -164,12 +170,13 @@ class PropertyWriteTest extends TestCase
} }
/** /**
* @covers ::create
* @uses \phpDocumentor\Reflection\DocBlock\Tags\PropertyWrite::<public> * @uses \phpDocumentor\Reflection\DocBlock\Tags\PropertyWrite::<public>
* @uses \phpDocumentor\Reflection\TypeResolver * @uses \phpDocumentor\Reflection\TypeResolver
* @uses \phpDocumentor\Reflection\DocBlock\DescriptionFactory * @uses \phpDocumentor\Reflection\DocBlock\DescriptionFactory
*
* @covers ::create
*/ */
public function testFactoryMethodFailsIfEmptyBodyIsGiven(): void public function testFactoryMethodFailsIfEmptyBodyIsGiven() : void
{ {
$this->expectException('InvalidArgumentException'); $this->expectException('InvalidArgumentException');
$descriptionFactory = m::mock(DescriptionFactory::class); $descriptionFactory = m::mock(DescriptionFactory::class);
@@ -179,17 +186,18 @@ class PropertyWriteTest extends TestCase
/** /**
* @covers ::create * @covers ::create
*/ */
public function testFactoryMethodFailsIfResolverIsNull(): void public function testFactoryMethodFailsIfResolverIsNull() : void
{ {
$this->expectException('InvalidArgumentException'); $this->expectException('InvalidArgumentException');
PropertyWrite::create('body'); PropertyWrite::create('body');
} }
/** /**
* @covers ::create
* @uses \phpDocumentor\Reflection\TypeResolver * @uses \phpDocumentor\Reflection\TypeResolver
*
* @covers ::create
*/ */
public function testFactoryMethodFailsIfDescriptionFactoryIsNull(): void public function testFactoryMethodFailsIfDescriptionFactoryIsNull() : void
{ {
$this->expectException('InvalidArgumentException'); $this->expectException('InvalidArgumentException');
PropertyWrite::create('body', new TypeResolver()); PropertyWrite::create('body', new TypeResolver());
+26 -20
View File
@@ -1,4 +1,6 @@
<?php declare(strict_types=1); <?php
declare(strict_types=1);
/** /**
* This file is part of phpDocumentor. * This file is part of phpDocumentor.
@@ -6,8 +8,6 @@
* For the full copyright and license information, please view the LICENSE * For the full copyright and license information, please view the LICENSE
* file that was distributed with this source code. * file that was distributed with this source code.
* *
* @copyright 2010-2018 Mike van Riel<[email protected]>
* @license http://www.opensource.org/licenses/mit-license.php MIT
* @link http://phpdoc.org * @link http://phpdoc.org
*/ */
@@ -30,7 +30,7 @@ class ReturnTest extends TestCase
/** /**
* Call Mockery::close after each test. * Call Mockery::close after each test.
*/ */
public function tearDown(): void public function tearDown() : void
{ {
m::close(); m::close();
} }
@@ -38,9 +38,10 @@ class ReturnTest extends TestCase
/** /**
* @uses \phpDocumentor\Reflection\DocBlock\Tags\Return_::__construct * @uses \phpDocumentor\Reflection\DocBlock\Tags\Return_::__construct
* @uses \phpDocumentor\Reflection\DocBlock\Description * @uses \phpDocumentor\Reflection\DocBlock\Description
*
* @covers \phpDocumentor\Reflection\DocBlock\Tags\BaseTag::getName * @covers \phpDocumentor\Reflection\DocBlock\Tags\BaseTag::getName
*/ */
public function testIfCorrectTagNameIsReturned(): void public function testIfCorrectTagNameIsReturned() : void
{ {
$fixture = new Return_(new String_(), new Description('Description')); $fixture = new Return_(new String_(), new Description('Description'));
@@ -52,10 +53,11 @@ class ReturnTest extends TestCase
* @uses \phpDocumentor\Reflection\DocBlock\Tags\Return_::__toString * @uses \phpDocumentor\Reflection\DocBlock\Tags\Return_::__toString
* @uses \phpDocumentor\Reflection\DocBlock\Tags\Formatter\PassthroughFormatter * @uses \phpDocumentor\Reflection\DocBlock\Tags\Formatter\PassthroughFormatter
* @uses \phpDocumentor\Reflection\DocBlock\Description * @uses \phpDocumentor\Reflection\DocBlock\Description
*
* @covers \phpDocumentor\Reflection\DocBlock\Tags\BaseTag::render * @covers \phpDocumentor\Reflection\DocBlock\Tags\BaseTag::render
* @covers \phpDocumentor\Reflection\DocBlock\Tags\BaseTag::getName * @covers \phpDocumentor\Reflection\DocBlock\Tags\BaseTag::getName
*/ */
public function testIfTagCanBeRenderedUsingDefaultFormatter(): void public function testIfTagCanBeRenderedUsingDefaultFormatter() : void
{ {
$fixture = new Return_(new String_(), new Description('Description')); $fixture = new Return_(new String_(), new Description('Description'));
@@ -65,9 +67,10 @@ class ReturnTest extends TestCase
/** /**
* @uses \phpDocumentor\Reflection\DocBlock\Tags\Return_::__construct * @uses \phpDocumentor\Reflection\DocBlock\Tags\Return_::__construct
* @uses \phpDocumentor\Reflection\DocBlock\Description * @uses \phpDocumentor\Reflection\DocBlock\Description
*
* @covers \phpDocumentor\Reflection\DocBlock\Tags\BaseTag::render * @covers \phpDocumentor\Reflection\DocBlock\Tags\BaseTag::render
*/ */
public function testIfTagCanBeRenderedUsingSpecificFormatter(): void public function testIfTagCanBeRenderedUsingSpecificFormatter() : void
{ {
$fixture = new Return_(new String_(), new Description('Description')); $fixture = new Return_(new String_(), new Description('Description'));
@@ -81,7 +84,7 @@ class ReturnTest extends TestCase
* @covers ::__construct * @covers ::__construct
* @covers ::getType * @covers ::getType
*/ */
public function testHasType(): void public function testHasType() : void
{ {
$expected = new String_(); $expected = new String_();
@@ -91,11 +94,12 @@ class ReturnTest extends TestCase
} }
/** /**
* @uses \phpDocumentor\Reflection\DocBlock\Description
*
* @covers ::__construct * @covers ::__construct
* @covers \phpDocumentor\Reflection\DocBlock\Tags\BaseTag::getDescription * @covers \phpDocumentor\Reflection\DocBlock\Tags\BaseTag::getDescription
* @uses \phpDocumentor\Reflection\DocBlock\Description
*/ */
public function testHasDescription(): void public function testHasDescription() : void
{ {
$expected = new Description('Description'); $expected = new Description('Description');
@@ -105,11 +109,12 @@ class ReturnTest extends TestCase
} }
/** /**
* @uses \phpDocumentor\Reflection\DocBlock\Description
*
* @covers ::__construct * @covers ::__construct
* @covers ::__toString * @covers ::__toString
* @uses \phpDocumentor\Reflection\DocBlock\Description
*/ */
public function testStringRepresentationIsReturned(): void public function testStringRepresentationIsReturned() : void
{ {
$fixture = new Return_(new String_(), new Description('Description')); $fixture = new Return_(new String_(), new Description('Description'));
@@ -117,21 +122,22 @@ class ReturnTest extends TestCase
} }
/** /**
* @covers ::create
* @uses \phpDocumentor\Reflection\DocBlock\Tags\Return_::<public> * @uses \phpDocumentor\Reflection\DocBlock\Tags\Return_::<public>
* @uses \phpDocumentor\Reflection\DocBlock\DescriptionFactory * @uses \phpDocumentor\Reflection\DocBlock\DescriptionFactory
* @uses \phpDocumentor\Reflection\TypeResolver * @uses \phpDocumentor\Reflection\TypeResolver
* @uses \phpDocumentor\Reflection\DocBlock\Description * @uses \phpDocumentor\Reflection\DocBlock\Description
* @uses \phpDocumentor\Reflection\Types\String_ * @uses \phpDocumentor\Reflection\Types\String_
* @uses \phpDocumentor\Reflection\Types\Context * @uses \phpDocumentor\Reflection\Types\Context
*
* @covers ::create
*/ */
public function testFactoryMethod(): void public function testFactoryMethod() : void
{ {
$descriptionFactory = m::mock(DescriptionFactory::class); $descriptionFactory = m::mock(DescriptionFactory::class);
$resolver = new TypeResolver(); $resolver = new TypeResolver();
$context = new Context(''); $context = new Context('');
$type = new String_(); $type = new String_();
$description = new Description('My Description'); $description = new Description('My Description');
$descriptionFactory->shouldReceive('create')->with('My Description', $context)->andReturn($description); $descriptionFactory->shouldReceive('create')->with('My Description', $context)->andReturn($description);
@@ -145,7 +151,7 @@ class ReturnTest extends TestCase
/** /**
* @covers ::create * @covers ::create
*/ */
public function testFactoryMethodFailsIfBodyIsNotEmpty(): void public function testFactoryMethodFailsIfBodyIsNotEmpty() : void
{ {
$this->expectException('InvalidArgumentException'); $this->expectException('InvalidArgumentException');
$this->assertNull(Return_::create('')); $this->assertNull(Return_::create(''));
@@ -154,7 +160,7 @@ class ReturnTest extends TestCase
/** /**
* @covers ::create * @covers ::create
*/ */
public function testFactoryMethodFailsIfResolverIsNull(): void public function testFactoryMethodFailsIfResolverIsNull() : void
{ {
$this->expectException('InvalidArgumentException'); $this->expectException('InvalidArgumentException');
Return_::create('body'); Return_::create('body');
@@ -163,7 +169,7 @@ class ReturnTest extends TestCase
/** /**
* @covers ::create * @covers ::create
*/ */
public function testFactoryMethodFailsIfDescriptionFactoryIsNull(): void public function testFactoryMethodFailsIfDescriptionFactoryIsNull() : void
{ {
$this->expectException('InvalidArgumentException'); $this->expectException('InvalidArgumentException');
Return_::create('body', new TypeResolver()); Return_::create('body', new TypeResolver());
+34 -26
View File
@@ -1,4 +1,6 @@
<?php declare(strict_types=1); <?php
declare(strict_types=1);
/** /**
* This file is part of phpDocumentor. * This file is part of phpDocumentor.
@@ -6,8 +8,6 @@
* For the full copyright and license information, please view the LICENSE * For the full copyright and license information, please view the LICENSE
* file that was distributed with this source code. * file that was distributed with this source code.
* *
* @copyright 2010-2018 Mike van Riel<[email protected]>
* @license http://www.opensource.org/licenses/mit-license.php MIT
* @link http://phpdoc.org * @link http://phpdoc.org
*/ */
@@ -32,7 +32,7 @@ class SeeTest extends TestCase
/** /**
* Call Mockery::close after each test. * Call Mockery::close after each test.
*/ */
public function tearDown(): void public function tearDown() : void
{ {
m::close(); m::close();
} }
@@ -42,9 +42,10 @@ class SeeTest extends TestCase
* @uses \phpDocumentor\Reflection\DocBlock\Description * @uses \phpDocumentor\Reflection\DocBlock\Description
* @uses \phpDocumentor\Reflection\DocBlock\Tags\Reference\Fqsen * @uses \phpDocumentor\Reflection\DocBlock\Tags\Reference\Fqsen
* @uses \phpDocumentor\Reflection\Fqsen * @uses \phpDocumentor\Reflection\Fqsen
*
* @covers \phpDocumentor\Reflection\DocBlock\Tags\BaseTag::getName * @covers \phpDocumentor\Reflection\DocBlock\Tags\BaseTag::getName
*/ */
public function testIfCorrectTagNameIsReturned(): void public function testIfCorrectTagNameIsReturned() : void
{ {
$fixture = new See(new FqsenRef(new Fqsen('\DateTime')), new Description('Description')); $fixture = new See(new FqsenRef(new Fqsen('\DateTime')), new Description('Description'));
@@ -57,10 +58,11 @@ class SeeTest extends TestCase
* @uses \phpDocumentor\Reflection\DocBlock\Tags\Formatter\PassthroughFormatter * @uses \phpDocumentor\Reflection\DocBlock\Tags\Formatter\PassthroughFormatter
* @uses \phpDocumentor\Reflection\DocBlock\Description * @uses \phpDocumentor\Reflection\DocBlock\Description
* @uses \phpDocumentor\Reflection\DocBlock\Tags\Reference\Fqsen * @uses \phpDocumentor\Reflection\DocBlock\Tags\Reference\Fqsen
*
* @covers \phpDocumentor\Reflection\DocBlock\Tags\BaseTag::render * @covers \phpDocumentor\Reflection\DocBlock\Tags\BaseTag::render
* @covers \phpDocumentor\Reflection\DocBlock\Tags\BaseTag::getName * @covers \phpDocumentor\Reflection\DocBlock\Tags\BaseTag::getName
*/ */
public function testIfTagCanBeRenderedUsingDefaultFormatter(): void public function testIfTagCanBeRenderedUsingDefaultFormatter() : void
{ {
$fixture = new See(new FqsenRef(new Fqsen('\DateTime')), new Description('Description')); $fixture = new See(new FqsenRef(new Fqsen('\DateTime')), new Description('Description'));
@@ -72,9 +74,10 @@ class SeeTest extends TestCase
* @uses \phpDocumentor\Reflection\DocBlock\Description * @uses \phpDocumentor\Reflection\DocBlock\Description
* @uses \phpDocumentor\Reflection\DocBlock\Tags\Reference\Fqsen * @uses \phpDocumentor\Reflection\DocBlock\Tags\Reference\Fqsen
* @uses \phpDocumentor\Reflection\Fqsen * @uses \phpDocumentor\Reflection\Fqsen
*
* @covers \phpDocumentor\Reflection\DocBlock\Tags\BaseTag::render * @covers \phpDocumentor\Reflection\DocBlock\Tags\BaseTag::render
*/ */
public function testIfTagCanBeRenderedUsingSpecificFormatter(): void public function testIfTagCanBeRenderedUsingSpecificFormatter() : void
{ {
$fixture = new See(new FqsenRef(new Fqsen('\DateTime')), new Description('Description')); $fixture = new See(new FqsenRef(new Fqsen('\DateTime')), new Description('Description'));
@@ -87,10 +90,11 @@ class SeeTest extends TestCase
/** /**
* @uses \phpDocumentor\Reflection\DocBlock\Tags\Reference\Fqsen * @uses \phpDocumentor\Reflection\DocBlock\Tags\Reference\Fqsen
* @uses \phpDocumentor\Reflection\Fqsen * @uses \phpDocumentor\Reflection\Fqsen
*
* @covers ::__construct * @covers ::__construct
* @covers ::getReference * @covers ::getReference
*/ */
public function testHasReferenceToFqsen(): void public function testHasReferenceToFqsen() : void
{ {
$expected = new FqsenRef(new Fqsen('\DateTime')); $expected = new FqsenRef(new Fqsen('\DateTime'));
@@ -100,13 +104,14 @@ class SeeTest extends TestCase
} }
/** /**
* @covers ::__construct
* @covers \phpDocumentor\Reflection\DocBlock\Tags\BaseTag::getDescription
* @uses \phpDocumentor\Reflection\DocBlock\Description * @uses \phpDocumentor\Reflection\DocBlock\Description
* @uses \phpDocumentor\Reflection\DocBlock\Tags\Reference\Fqsen * @uses \phpDocumentor\Reflection\DocBlock\Tags\Reference\Fqsen
* @uses \phpDocumentor\Reflection\Fqsen * @uses \phpDocumentor\Reflection\Fqsen
*
* @covers ::__construct
* @covers \phpDocumentor\Reflection\DocBlock\Tags\BaseTag::getDescription
*/ */
public function testHasDescription(): void public function testHasDescription() : void
{ {
$expected = new Description('Description'); $expected = new Description('Description');
@@ -116,13 +121,14 @@ class SeeTest extends TestCase
} }
/** /**
* @covers ::__construct
* @covers ::__toString
* @uses \phpDocumentor\Reflection\DocBlock\Description * @uses \phpDocumentor\Reflection\DocBlock\Description
* @uses \phpDocumentor\Reflection\DocBlock\Tags\Reference\Fqsen * @uses \phpDocumentor\Reflection\DocBlock\Tags\Reference\Fqsen
* @uses \phpDocumentor\Reflection\Fqsen * @uses \phpDocumentor\Reflection\Fqsen
*
* @covers ::__construct
* @covers ::__toString
*/ */
public function testStringRepresentationIsReturned(): void public function testStringRepresentationIsReturned() : void
{ {
$fixture = new See(new FqsenRef(new Fqsen('\DateTime::format()')), new Description('Description')); $fixture = new See(new FqsenRef(new Fqsen('\DateTime::format()')), new Description('Description'));
@@ -130,7 +136,6 @@ class SeeTest extends TestCase
} }
/** /**
* @covers ::create
* @uses \phpDocumentor\Reflection\DocBlock\Tags\See::<public> * @uses \phpDocumentor\Reflection\DocBlock\Tags\See::<public>
* @uses \phpDocumentor\Reflection\DocBlock\DescriptionFactory * @uses \phpDocumentor\Reflection\DocBlock\DescriptionFactory
* @uses \phpDocumentor\Reflection\FqsenResolver * @uses \phpDocumentor\Reflection\FqsenResolver
@@ -138,14 +143,16 @@ class SeeTest extends TestCase
* @uses \phpDocumentor\Reflection\DocBlock\Tags\Reference\Fqsen * @uses \phpDocumentor\Reflection\DocBlock\Tags\Reference\Fqsen
* @uses \phpDocumentor\Reflection\Fqsen * @uses \phpDocumentor\Reflection\Fqsen
* @uses \phpDocumentor\Reflection\Types\Context * @uses \phpDocumentor\Reflection\Types\Context
*
* @covers ::create
*/ */
public function testFactoryMethod(): void public function testFactoryMethod() : void
{ {
$descriptionFactory = m::mock(DescriptionFactory::class); $descriptionFactory = m::mock(DescriptionFactory::class);
$resolver = m::mock(FqsenResolver::class); $resolver = m::mock(FqsenResolver::class);
$context = new Context(''); $context = new Context('');
$fqsen = new Fqsen('\DateTime'); $fqsen = new Fqsen('\DateTime');
$description = new Description('My Description'); $description = new Description('My Description');
$descriptionFactory $descriptionFactory
@@ -161,19 +168,20 @@ class SeeTest extends TestCase
} }
/** /**
* @covers ::create
* @uses \phpDocumentor\Reflection\DocBlock\Tags\See::<public> * @uses \phpDocumentor\Reflection\DocBlock\Tags\See::<public>
* @uses \phpDocumentor\Reflection\DocBlock\DescriptionFactory * @uses \phpDocumentor\Reflection\DocBlock\DescriptionFactory
* @uses \phpDocumentor\Reflection\FqsenResolver * @uses \phpDocumentor\Reflection\FqsenResolver
* @uses \phpDocumentor\Reflection\DocBlock\Description * @uses \phpDocumentor\Reflection\DocBlock\Description
* @uses \phpDocumentor\Reflection\DocBlock\Tags\Reference\Url * @uses \phpDocumentor\Reflection\DocBlock\Tags\Reference\Url
* @uses \phpDocumentor\Reflection\Types\Context * @uses \phpDocumentor\Reflection\Types\Context
*
* @covers ::create
*/ */
public function testFactoryMethodWithUrl(): void public function testFactoryMethodWithUrl() : void
{ {
$descriptionFactory = m::mock(DescriptionFactory::class); $descriptionFactory = m::mock(DescriptionFactory::class);
$resolver = m::mock(FqsenResolver::class); $resolver = m::mock(FqsenResolver::class);
$context = new Context(''); $context = new Context('');
$description = new Description('My Description'); $description = new Description('My Description');
@@ -193,7 +201,7 @@ class SeeTest extends TestCase
/** /**
* @covers ::create * @covers ::create
*/ */
public function testFactoryMethodFailsIfBodyIsNotEmpty(): void public function testFactoryMethodFailsIfBodyIsNotEmpty() : void
{ {
$this->expectException('InvalidArgumentException'); $this->expectException('InvalidArgumentException');
$this->assertNull(See::create('')); $this->assertNull(See::create(''));
@@ -202,7 +210,7 @@ class SeeTest extends TestCase
/** /**
* @covers ::create * @covers ::create
*/ */
public function testFactoryMethodFailsIfResolverIsNull(): void public function testFactoryMethodFailsIfResolverIsNull() : void
{ {
$this->expectException('InvalidArgumentException'); $this->expectException('InvalidArgumentException');
See::create('body'); See::create('body');
@@ -211,7 +219,7 @@ class SeeTest extends TestCase
/** /**
* @covers ::create * @covers ::create
*/ */
public function testFactoryMethodFailsIfDescriptionFactoryIsNull(): void public function testFactoryMethodFailsIfDescriptionFactoryIsNull() : void
{ {
$this->expectException('InvalidArgumentException'); $this->expectException('InvalidArgumentException');
See::create('body', new FqsenResolver()); See::create('body', new FqsenResolver());
+26 -19
View File
@@ -1,4 +1,6 @@
<?php declare(strict_types=1); <?php
declare(strict_types=1);
/** /**
* This file is part of phpDocumentor. * This file is part of phpDocumentor.
@@ -6,8 +8,6 @@
* For the full copyright and license information, please view the LICENSE * For the full copyright and license information, please view the LICENSE
* file that was distributed with this source code. * file that was distributed with this source code.
* *
* @copyright 2010-2018 Mike van Riel<[email protected]>
* @license http://www.opensource.org/licenses/mit-license.php MIT
* @link http://phpdoc.org * @link http://phpdoc.org
*/ */
@@ -28,7 +28,7 @@ class SinceTest extends TestCase
/** /**
* Call Mockery::close after each test. * Call Mockery::close after each test.
*/ */
public function tearDown(): void public function tearDown() : void
{ {
m::close(); m::close();
} }
@@ -36,9 +36,10 @@ class SinceTest extends TestCase
/** /**
* @uses \phpDocumentor\Reflection\DocBlock\Tags\Since::__construct * @uses \phpDocumentor\Reflection\DocBlock\Tags\Since::__construct
* @uses \phpDocumentor\Reflection\DocBlock\Description * @uses \phpDocumentor\Reflection\DocBlock\Description
*
* @covers \phpDocumentor\Reflection\DocBlock\Tags\BaseTag::getName * @covers \phpDocumentor\Reflection\DocBlock\Tags\BaseTag::getName
*/ */
public function testIfCorrectTagNameIsReturned(): void public function testIfCorrectTagNameIsReturned() : void
{ {
$fixture = new Since('1.0', new Description('Description')); $fixture = new Since('1.0', new Description('Description'));
@@ -50,10 +51,11 @@ class SinceTest extends TestCase
* @uses \phpDocumentor\Reflection\DocBlock\Tags\Since::__toString * @uses \phpDocumentor\Reflection\DocBlock\Tags\Since::__toString
* @uses \phpDocumentor\Reflection\DocBlock\Tags\Formatter\PassthroughFormatter * @uses \phpDocumentor\Reflection\DocBlock\Tags\Formatter\PassthroughFormatter
* @uses \phpDocumentor\Reflection\DocBlock\Description * @uses \phpDocumentor\Reflection\DocBlock\Description
*
* @covers \phpDocumentor\Reflection\DocBlock\Tags\BaseTag::render * @covers \phpDocumentor\Reflection\DocBlock\Tags\BaseTag::render
* @covers \phpDocumentor\Reflection\DocBlock\Tags\BaseTag::getName * @covers \phpDocumentor\Reflection\DocBlock\Tags\BaseTag::getName
*/ */
public function testIfTagCanBeRenderedUsingDefaultFormatter(): void public function testIfTagCanBeRenderedUsingDefaultFormatter() : void
{ {
$fixture = new Since('1.0', new Description('Description')); $fixture = new Since('1.0', new Description('Description'));
@@ -63,9 +65,10 @@ class SinceTest extends TestCase
/** /**
* @uses \phpDocumentor\Reflection\DocBlock\Tags\Since::__construct * @uses \phpDocumentor\Reflection\DocBlock\Tags\Since::__construct
* @uses \phpDocumentor\Reflection\DocBlock\Description * @uses \phpDocumentor\Reflection\DocBlock\Description
*
* @covers \phpDocumentor\Reflection\DocBlock\Tags\BaseTag::render * @covers \phpDocumentor\Reflection\DocBlock\Tags\BaseTag::render
*/ */
public function testIfTagCanBeRenderedUsingSpecificFormatter(): void public function testIfTagCanBeRenderedUsingSpecificFormatter() : void
{ {
$fixture = new Since('1.0', new Description('Description')); $fixture = new Since('1.0', new Description('Description'));
@@ -79,7 +82,7 @@ class SinceTest extends TestCase
* @covers ::__construct * @covers ::__construct
* @covers ::getVersion * @covers ::getVersion
*/ */
public function testHasVersionNumber(): void public function testHasVersionNumber() : void
{ {
$expected = '1.0'; $expected = '1.0';
@@ -89,11 +92,12 @@ class SinceTest extends TestCase
} }
/** /**
* @uses \phpDocumentor\Reflection\DocBlock\Description
*
* @covers ::__construct * @covers ::__construct
* @covers \phpDocumentor\Reflection\DocBlock\Tags\BaseTag::getDescription * @covers \phpDocumentor\Reflection\DocBlock\Tags\BaseTag::getDescription
* @uses \phpDocumentor\Reflection\DocBlock\Description
*/ */
public function testHasDescription(): void public function testHasDescription() : void
{ {
$expected = new Description('Description'); $expected = new Description('Description');
@@ -103,11 +107,12 @@ class SinceTest extends TestCase
} }
/** /**
* @uses \phpDocumentor\Reflection\DocBlock\Description
*
* @covers ::__construct * @covers ::__construct
* @covers ::__toString * @covers ::__toString
* @uses \phpDocumentor\Reflection\DocBlock\Description
*/ */
public function testStringRepresentationIsReturned(): void public function testStringRepresentationIsReturned() : void
{ {
$fixture = new Since('1.0', new Description('Description')); $fixture = new Since('1.0', new Description('Description'));
@@ -115,18 +120,19 @@ class SinceTest extends TestCase
} }
/** /**
* @covers ::create
* @uses \phpDocumentor\Reflection\DocBlock\Tags\Since::<public> * @uses \phpDocumentor\Reflection\DocBlock\Tags\Since::<public>
* @uses \phpDocumentor\Reflection\DocBlock\DescriptionFactory * @uses \phpDocumentor\Reflection\DocBlock\DescriptionFactory
* @uses \phpDocumentor\Reflection\DocBlock\Description * @uses \phpDocumentor\Reflection\DocBlock\Description
* @uses \phpDocumentor\Reflection\Types\Context * @uses \phpDocumentor\Reflection\Types\Context
*
* @covers ::create
*/ */
public function testFactoryMethod(): void public function testFactoryMethod() : void
{ {
$descriptionFactory = m::mock(DescriptionFactory::class); $descriptionFactory = m::mock(DescriptionFactory::class);
$context = new Context(''); $context = new Context('');
$version = '1.0'; $version = '1.0';
$description = new Description('My Description'); $description = new Description('My Description');
$descriptionFactory->shouldReceive('create')->with('My Description', $context)->andReturn($description); $descriptionFactory->shouldReceive('create')->with('My Description', $context)->andReturn($description);
@@ -139,13 +145,14 @@ class SinceTest extends TestCase
} }
/** /**
* @covers ::create
* @uses \phpDocumentor\Reflection\DocBlock\Tags\Since::<public> * @uses \phpDocumentor\Reflection\DocBlock\Tags\Since::<public>
* @uses \phpDocumentor\Reflection\DocBlock\DescriptionFactory * @uses \phpDocumentor\Reflection\DocBlock\DescriptionFactory
* @uses \phpDocumentor\Reflection\DocBlock\Description * @uses \phpDocumentor\Reflection\DocBlock\Description
* @uses \phpDocumentor\Reflection\Types\Context * @uses \phpDocumentor\Reflection\Types\Context
*
* @covers ::create
*/ */
public function testFactoryMethodCreatesEmptySinceTag(): void public function testFactoryMethodCreatesEmptySinceTag() : void
{ {
$descriptionFactory = m::mock(DescriptionFactory::class); $descriptionFactory = m::mock(DescriptionFactory::class);
$descriptionFactory->shouldReceive('create')->never(); $descriptionFactory->shouldReceive('create')->never();
@@ -160,7 +167,7 @@ class SinceTest extends TestCase
/** /**
* @covers ::create * @covers ::create
*/ */
public function testFactoryMethodReturnsNullIfBodyDoesNotMatchRegex(): void public function testFactoryMethodReturnsNullIfBodyDoesNotMatchRegex() : void
{ {
$this->assertNull(Since::create('dkhf<')); $this->assertNull(Since::create('dkhf<'));
} }
+31 -23
View File
@@ -1,4 +1,6 @@
<?php declare(strict_types=1); <?php
declare(strict_types=1);
/** /**
* This file is part of phpDocumentor. * This file is part of phpDocumentor.
@@ -6,8 +8,6 @@
* For the full copyright and license information, please view the LICENSE * For the full copyright and license information, please view the LICENSE
* file that was distributed with this source code. * file that was distributed with this source code.
* *
* @copyright 2010-2018 Mike van Riel<[email protected]>
* @license http://www.opensource.org/licenses/mit-license.php MIT
* @link http://phpdoc.org * @link http://phpdoc.org
*/ */
@@ -28,7 +28,7 @@ class SourceTest extends TestCase
/** /**
* Call Mockery::close after each test. * Call Mockery::close after each test.
*/ */
public function tearDown(): void public function tearDown() : void
{ {
m::close(); m::close();
} }
@@ -36,9 +36,10 @@ class SourceTest extends TestCase
/** /**
* @uses \phpDocumentor\Reflection\DocBlock\Tags\Source::__construct * @uses \phpDocumentor\Reflection\DocBlock\Tags\Source::__construct
* @uses \phpDocumentor\Reflection\DocBlock\Description * @uses \phpDocumentor\Reflection\DocBlock\Description
*
* @covers \phpDocumentor\Reflection\DocBlock\Tags\BaseTag::getName * @covers \phpDocumentor\Reflection\DocBlock\Tags\BaseTag::getName
*/ */
public function testIfCorrectTagNameIsReturned(): void public function testIfCorrectTagNameIsReturned() : void
{ {
$fixture = new Source(1, null, new Description('Description')); $fixture = new Source(1, null, new Description('Description'));
@@ -50,10 +51,11 @@ class SourceTest extends TestCase
* @uses \phpDocumentor\Reflection\DocBlock\Tags\Source::__toString * @uses \phpDocumentor\Reflection\DocBlock\Tags\Source::__toString
* @uses \phpDocumentor\Reflection\DocBlock\Tags\Formatter\PassthroughFormatter * @uses \phpDocumentor\Reflection\DocBlock\Tags\Formatter\PassthroughFormatter
* @uses \phpDocumentor\Reflection\DocBlock\Description * @uses \phpDocumentor\Reflection\DocBlock\Description
*
* @covers \phpDocumentor\Reflection\DocBlock\Tags\BaseTag::render * @covers \phpDocumentor\Reflection\DocBlock\Tags\BaseTag::render
* @covers \phpDocumentor\Reflection\DocBlock\Tags\BaseTag::getName * @covers \phpDocumentor\Reflection\DocBlock\Tags\BaseTag::getName
*/ */
public function testIfTagCanBeRenderedUsingDefaultFormatter(): void public function testIfTagCanBeRenderedUsingDefaultFormatter() : void
{ {
$fixture = new Source(1, 10, new Description('Description')); $fixture = new Source(1, 10, new Description('Description'));
$this->assertSame('@source 1 10 Description', $fixture->render()); $this->assertSame('@source 1 10 Description', $fixture->render());
@@ -67,9 +69,10 @@ class SourceTest extends TestCase
/** /**
* @uses \phpDocumentor\Reflection\DocBlock\Tags\Source::__construct * @uses \phpDocumentor\Reflection\DocBlock\Tags\Source::__construct
*
* @covers \phpDocumentor\Reflection\DocBlock\Tags\BaseTag::render * @covers \phpDocumentor\Reflection\DocBlock\Tags\BaseTag::render
*/ */
public function testIfTagCanBeRenderedUsingSpecificFormatter(): void public function testIfTagCanBeRenderedUsingSpecificFormatter() : void
{ {
$fixture = new Source(1); $fixture = new Source(1);
@@ -83,7 +86,7 @@ class SourceTest extends TestCase
* @covers ::__construct * @covers ::__construct
* @covers ::getStartingLine * @covers ::getStartingLine
*/ */
public function testHasStartingLine(): void public function testHasStartingLine() : void
{ {
$expected = 1; $expected = 1;
@@ -96,7 +99,7 @@ class SourceTest extends TestCase
* @covers ::__construct * @covers ::__construct
* @covers ::getLineCount * @covers ::getLineCount
*/ */
public function testHasLineCount(): void public function testHasLineCount() : void
{ {
$expected = 2; $expected = 2;
@@ -106,11 +109,12 @@ class SourceTest extends TestCase
} }
/** /**
* @uses \phpDocumentor\Reflection\DocBlock\Description
*
* @covers ::__construct * @covers ::__construct
* @covers \phpDocumentor\Reflection\DocBlock\Tags\BaseTag::getDescription * @covers \phpDocumentor\Reflection\DocBlock\Tags\BaseTag::getDescription
* @uses \phpDocumentor\Reflection\DocBlock\Description
*/ */
public function testHasDescription(): void public function testHasDescription() : void
{ {
$expected = new Description('Description'); $expected = new Description('Description');
@@ -120,12 +124,13 @@ class SourceTest extends TestCase
} }
/** /**
* @covers ::__construct
* @covers ::__toString
* @uses \phpDocumentor\Reflection\DocBlock\Description * @uses \phpDocumentor\Reflection\DocBlock\Description
* @uses \phpDocumentor\Reflection\Types\String_ * @uses \phpDocumentor\Reflection\Types\String_
*
* @covers ::__construct
* @covers ::__toString
*/ */
public function testStringRepresentationIsReturned(): void public function testStringRepresentationIsReturned() : void
{ {
$fixture = new Source(1, 10, new Description('Description')); $fixture = new Source(1, 10, new Description('Description'));
@@ -133,16 +138,17 @@ class SourceTest extends TestCase
} }
/** /**
* @covers ::create
* @uses \phpDocumentor\Reflection\DocBlock\Tags\Source::<public> * @uses \phpDocumentor\Reflection\DocBlock\Tags\Source::<public>
* @uses \phpDocumentor\Reflection\DocBlock\DescriptionFactory * @uses \phpDocumentor\Reflection\DocBlock\DescriptionFactory
* @uses \phpDocumentor\Reflection\DocBlock\Description * @uses \phpDocumentor\Reflection\DocBlock\Description
* @uses \phpDocumentor\Reflection\Types\Context * @uses \phpDocumentor\Reflection\Types\Context
*
* @covers ::create
*/ */
public function testFactoryMethod(): void public function testFactoryMethod() : void
{ {
$descriptionFactory = m::mock(DescriptionFactory::class); $descriptionFactory = m::mock(DescriptionFactory::class);
$context = new Context(''); $context = new Context('');
$description = new Description('My Description'); $description = new Description('My Description');
$descriptionFactory->shouldReceive('create')->with('My Description', $context)->andReturn($description); $descriptionFactory->shouldReceive('create')->with('My Description', $context)->andReturn($description);
@@ -156,12 +162,13 @@ class SourceTest extends TestCase
} }
/** /**
* @covers ::create
* @uses \phpDocumentor\Reflection\DocBlock\Tags\Source::<public> * @uses \phpDocumentor\Reflection\DocBlock\Tags\Source::<public>
* @uses \phpDocumentor\Reflection\TypeResolver * @uses \phpDocumentor\Reflection\TypeResolver
* @uses \phpDocumentor\Reflection\DocBlock\DescriptionFactory * @uses \phpDocumentor\Reflection\DocBlock\DescriptionFactory
*
* @covers ::create
*/ */
public function testFactoryMethodFailsIfEmptyBodyIsGiven(): void public function testFactoryMethodFailsIfEmptyBodyIsGiven() : void
{ {
$this->expectException('InvalidArgumentException'); $this->expectException('InvalidArgumentException');
$descriptionFactory = m::mock(DescriptionFactory::class); $descriptionFactory = m::mock(DescriptionFactory::class);
@@ -169,10 +176,11 @@ class SourceTest extends TestCase
} }
/** /**
* @covers ::create
* @uses \phpDocumentor\Reflection\TypeResolver * @uses \phpDocumentor\Reflection\TypeResolver
*
* @covers ::create
*/ */
public function testFactoryMethodFailsIfDescriptionFactoryIsNull(): void public function testFactoryMethodFailsIfDescriptionFactoryIsNull() : void
{ {
$this->expectException('InvalidArgumentException'); $this->expectException('InvalidArgumentException');
Source::create('1'); Source::create('1');
@@ -181,7 +189,7 @@ class SourceTest extends TestCase
/** /**
* @covers ::__construct * @covers ::__construct
*/ */
public function testExceptionIsThrownIfStartingLineIsNotInteger(): void public function testExceptionIsThrownIfStartingLineIsNotInteger() : void
{ {
$this->expectException('InvalidArgumentException'); $this->expectException('InvalidArgumentException');
new Source('blabla'); new Source('blabla');
@@ -190,7 +198,7 @@ class SourceTest extends TestCase
/** /**
* @covers ::__construct * @covers ::__construct
*/ */
public function testExceptionIsThrownIfLineCountIsNotIntegerOrNull(): void public function testExceptionIsThrownIfLineCountIsNotIntegerOrNull() : void
{ {
$this->expectException('InvalidArgumentException'); $this->expectException('InvalidArgumentException');
new Source('1', []); new Source('1', []);
+26 -20
View File
@@ -1,4 +1,6 @@
<?php declare(strict_types=1); <?php
declare(strict_types=1);
/** /**
* This file is part of phpDocumentor. * This file is part of phpDocumentor.
@@ -6,8 +8,6 @@
* For the full copyright and license information, please view the LICENSE * For the full copyright and license information, please view the LICENSE
* file that was distributed with this source code. * file that was distributed with this source code.
* *
* @copyright 2010-2018 Mike van Riel<[email protected]>
* @license http://www.opensource.org/licenses/mit-license.php MIT
* @link http://phpdoc.org * @link http://phpdoc.org
*/ */
@@ -30,7 +30,7 @@ class ThrowsTest extends TestCase
/** /**
* Call Mockery::close after each test. * Call Mockery::close after each test.
*/ */
public function tearDown(): void public function tearDown() : void
{ {
m::close(); m::close();
} }
@@ -38,9 +38,10 @@ class ThrowsTest extends TestCase
/** /**
* @uses \phpDocumentor\Reflection\DocBlock\Tags\Throws::__construct * @uses \phpDocumentor\Reflection\DocBlock\Tags\Throws::__construct
* @uses \phpDocumentor\Reflection\DocBlock\Description * @uses \phpDocumentor\Reflection\DocBlock\Description
*
* @covers \phpDocumentor\Reflection\DocBlock\Tags\BaseTag::getName * @covers \phpDocumentor\Reflection\DocBlock\Tags\BaseTag::getName
*/ */
public function testIfCorrectTagNameIsReturned(): void public function testIfCorrectTagNameIsReturned() : void
{ {
$fixture = new Throws(new String_(), new Description('Description')); $fixture = new Throws(new String_(), new Description('Description'));
@@ -52,10 +53,11 @@ class ThrowsTest extends TestCase
* @uses \phpDocumentor\Reflection\DocBlock\Tags\Throws::__toString * @uses \phpDocumentor\Reflection\DocBlock\Tags\Throws::__toString
* @uses \phpDocumentor\Reflection\DocBlock\Tags\Formatter\PassthroughFormatter * @uses \phpDocumentor\Reflection\DocBlock\Tags\Formatter\PassthroughFormatter
* @uses \phpDocumentor\Reflection\DocBlock\Description * @uses \phpDocumentor\Reflection\DocBlock\Description
*
* @covers \phpDocumentor\Reflection\DocBlock\Tags\BaseTag::render * @covers \phpDocumentor\Reflection\DocBlock\Tags\BaseTag::render
* @covers \phpDocumentor\Reflection\DocBlock\Tags\BaseTag::getName * @covers \phpDocumentor\Reflection\DocBlock\Tags\BaseTag::getName
*/ */
public function testIfTagCanBeRenderedUsingDefaultFormatter(): void public function testIfTagCanBeRenderedUsingDefaultFormatter() : void
{ {
$fixture = new Throws(new String_(), new Description('Description')); $fixture = new Throws(new String_(), new Description('Description'));
@@ -65,9 +67,10 @@ class ThrowsTest extends TestCase
/** /**
* @uses \phpDocumentor\Reflection\DocBlock\Tags\Throws::__construct * @uses \phpDocumentor\Reflection\DocBlock\Tags\Throws::__construct
* @uses \phpDocumentor\Reflection\DocBlock\Description * @uses \phpDocumentor\Reflection\DocBlock\Description
*
* @covers \phpDocumentor\Reflection\DocBlock\Tags\BaseTag::render * @covers \phpDocumentor\Reflection\DocBlock\Tags\BaseTag::render
*/ */
public function testIfTagCanBeRenderedUsingSpecificFormatter(): void public function testIfTagCanBeRenderedUsingSpecificFormatter() : void
{ {
$fixture = new Throws(new String_(), new Description('Description')); $fixture = new Throws(new String_(), new Description('Description'));
@@ -81,7 +84,7 @@ class ThrowsTest extends TestCase
* @covers ::__construct * @covers ::__construct
* @covers ::getType * @covers ::getType
*/ */
public function testHasType(): void public function testHasType() : void
{ {
$expected = new String_(); $expected = new String_();
@@ -91,11 +94,12 @@ class ThrowsTest extends TestCase
} }
/** /**
* @uses \phpDocumentor\Reflection\DocBlock\Description
*
* @covers ::__construct * @covers ::__construct
* @covers \phpDocumentor\Reflection\DocBlock\Tags\BaseTag::getDescription * @covers \phpDocumentor\Reflection\DocBlock\Tags\BaseTag::getDescription
* @uses \phpDocumentor\Reflection\DocBlock\Description
*/ */
public function testHasDescription(): void public function testHasDescription() : void
{ {
$expected = new Description('Description'); $expected = new Description('Description');
@@ -105,11 +109,12 @@ class ThrowsTest extends TestCase
} }
/** /**
* @uses \phpDocumentor\Reflection\DocBlock\Description
*
* @covers ::__construct * @covers ::__construct
* @covers ::__toString * @covers ::__toString
* @uses \phpDocumentor\Reflection\DocBlock\Description
*/ */
public function testStringRepresentationIsReturned(): void public function testStringRepresentationIsReturned() : void
{ {
$fixture = new Throws(new String_(), new Description('Description')); $fixture = new Throws(new String_(), new Description('Description'));
@@ -117,21 +122,22 @@ class ThrowsTest extends TestCase
} }
/** /**
* @covers ::create
* @uses \phpDocumentor\Reflection\DocBlock\Tags\Throws::<public> * @uses \phpDocumentor\Reflection\DocBlock\Tags\Throws::<public>
* @uses \phpDocumentor\Reflection\DocBlock\DescriptionFactory * @uses \phpDocumentor\Reflection\DocBlock\DescriptionFactory
* @uses \phpDocumentor\Reflection\TypeResolver * @uses \phpDocumentor\Reflection\TypeResolver
* @uses \phpDocumentor\Reflection\DocBlock\Description * @uses \phpDocumentor\Reflection\DocBlock\Description
* @uses \phpDocumentor\Reflection\Types\String_ * @uses \phpDocumentor\Reflection\Types\String_
* @uses \phpDocumentor\Reflection\Types\Context * @uses \phpDocumentor\Reflection\Types\Context
*
* @covers ::create
*/ */
public function testFactoryMethod(): void public function testFactoryMethod() : void
{ {
$descriptionFactory = m::mock(DescriptionFactory::class); $descriptionFactory = m::mock(DescriptionFactory::class);
$resolver = new TypeResolver(); $resolver = new TypeResolver();
$context = new Context(''); $context = new Context('');
$type = new String_(); $type = new String_();
$description = new Description('My Description'); $description = new Description('My Description');
$descriptionFactory->shouldReceive('create')->with('My Description', $context)->andReturn($description); $descriptionFactory->shouldReceive('create')->with('My Description', $context)->andReturn($description);
@@ -145,7 +151,7 @@ class ThrowsTest extends TestCase
/** /**
* @covers ::create * @covers ::create
*/ */
public function testFactoryMethodFailsIfBodyIsNotEmpty(): void public function testFactoryMethodFailsIfBodyIsNotEmpty() : void
{ {
$this->expectException('InvalidArgumentException'); $this->expectException('InvalidArgumentException');
$this->assertNull(Throws::create('')); $this->assertNull(Throws::create(''));
@@ -154,7 +160,7 @@ class ThrowsTest extends TestCase
/** /**
* @covers ::create * @covers ::create
*/ */
public function testFactoryMethodFailsIfResolverIsNull(): void public function testFactoryMethodFailsIfResolverIsNull() : void
{ {
$this->expectException('InvalidArgumentException'); $this->expectException('InvalidArgumentException');
Throws::create('body'); Throws::create('body');
@@ -163,7 +169,7 @@ class ThrowsTest extends TestCase
/** /**
* @covers ::create * @covers ::create
*/ */
public function testFactoryMethodFailsIfDescriptionFactoryIsNull(): void public function testFactoryMethodFailsIfDescriptionFactoryIsNull() : void
{ {
$this->expectException('InvalidArgumentException'); $this->expectException('InvalidArgumentException');
Throws::create('body', new TypeResolver()); Throws::create('body', new TypeResolver());
+26 -20
View File
@@ -1,4 +1,6 @@
<?php declare(strict_types=1); <?php
declare(strict_types=1);
/** /**
* This file is part of phpDocumentor. * This file is part of phpDocumentor.
@@ -6,8 +8,6 @@
* For the full copyright and license information, please view the LICENSE * For the full copyright and license information, please view the LICENSE
* file that was distributed with this source code. * file that was distributed with this source code.
* *
* @copyright 2010-2018 Mike van Riel<[email protected]>
* @license http://www.opensource.org/licenses/mit-license.php MIT
* @link http://phpdoc.org * @link http://phpdoc.org
*/ */
@@ -30,7 +30,7 @@ class UsesTest extends TestCase
/** /**
* Call Mockery::close after each test. * Call Mockery::close after each test.
*/ */
public function tearDown(): void public function tearDown() : void
{ {
m::close(); m::close();
} }
@@ -38,9 +38,10 @@ class UsesTest extends TestCase
/** /**
* @uses \phpDocumentor\Reflection\DocBlock\Tags\Uses::__construct * @uses \phpDocumentor\Reflection\DocBlock\Tags\Uses::__construct
* @uses \phpDocumentor\Reflection\DocBlock\Description * @uses \phpDocumentor\Reflection\DocBlock\Description
*
* @covers \phpDocumentor\Reflection\DocBlock\Tags\BaseTag::getName * @covers \phpDocumentor\Reflection\DocBlock\Tags\BaseTag::getName
*/ */
public function testIfCorrectTagNameIsReturned(): void public function testIfCorrectTagNameIsReturned() : void
{ {
$fixture = new Uses(new Fqsen('\DateTime'), new Description('Description')); $fixture = new Uses(new Fqsen('\DateTime'), new Description('Description'));
@@ -52,10 +53,11 @@ class UsesTest extends TestCase
* @uses \phpDocumentor\Reflection\DocBlock\Tags\Uses::__toString * @uses \phpDocumentor\Reflection\DocBlock\Tags\Uses::__toString
* @uses \phpDocumentor\Reflection\DocBlock\Tags\Formatter\PassthroughFormatter * @uses \phpDocumentor\Reflection\DocBlock\Tags\Formatter\PassthroughFormatter
* @uses \phpDocumentor\Reflection\DocBlock\Description * @uses \phpDocumentor\Reflection\DocBlock\Description
*
* @covers \phpDocumentor\Reflection\DocBlock\Tags\BaseTag::render * @covers \phpDocumentor\Reflection\DocBlock\Tags\BaseTag::render
* @covers \phpDocumentor\Reflection\DocBlock\Tags\BaseTag::getName * @covers \phpDocumentor\Reflection\DocBlock\Tags\BaseTag::getName
*/ */
public function testIfTagCanBeRenderedUsingDefaultFormatter(): void public function testIfTagCanBeRenderedUsingDefaultFormatter() : void
{ {
$fixture = new Uses(new Fqsen('\DateTime'), new Description('Description')); $fixture = new Uses(new Fqsen('\DateTime'), new Description('Description'));
@@ -65,9 +67,10 @@ class UsesTest extends TestCase
/** /**
* @uses \phpDocumentor\Reflection\DocBlock\Tags\Uses::__construct * @uses \phpDocumentor\Reflection\DocBlock\Tags\Uses::__construct
* @uses \phpDocumentor\Reflection\DocBlock\Description * @uses \phpDocumentor\Reflection\DocBlock\Description
*
* @covers \phpDocumentor\Reflection\DocBlock\Tags\BaseTag::render * @covers \phpDocumentor\Reflection\DocBlock\Tags\BaseTag::render
*/ */
public function testIfTagCanBeRenderedUsingSpecificFormatter(): void public function testIfTagCanBeRenderedUsingSpecificFormatter() : void
{ {
$fixture = new Uses(new Fqsen('\DateTime'), new Description('Description')); $fixture = new Uses(new Fqsen('\DateTime'), new Description('Description'));
@@ -81,7 +84,7 @@ class UsesTest extends TestCase
* @covers ::__construct * @covers ::__construct
* @covers ::getReference * @covers ::getReference
*/ */
public function testHasReferenceToFqsen(): void public function testHasReferenceToFqsen() : void
{ {
$expected = new Fqsen('\DateTime'); $expected = new Fqsen('\DateTime');
@@ -91,11 +94,12 @@ class UsesTest extends TestCase
} }
/** /**
* @uses \phpDocumentor\Reflection\DocBlock\Description
*
* @covers ::__construct * @covers ::__construct
* @covers \phpDocumentor\Reflection\DocBlock\Tags\BaseTag::getDescription * @covers \phpDocumentor\Reflection\DocBlock\Tags\BaseTag::getDescription
* @uses \phpDocumentor\Reflection\DocBlock\Description
*/ */
public function testHasDescription(): void public function testHasDescription() : void
{ {
$expected = new Description('Description'); $expected = new Description('Description');
@@ -105,11 +109,12 @@ class UsesTest extends TestCase
} }
/** /**
* @uses \phpDocumentor\Reflection\DocBlock\Description
*
* @covers ::__construct * @covers ::__construct
* @covers ::__toString * @covers ::__toString
* @uses \phpDocumentor\Reflection\DocBlock\Description
*/ */
public function testStringRepresentationIsReturned(): void public function testStringRepresentationIsReturned() : void
{ {
$fixture = new Uses(new Fqsen('\DateTime'), new Description('Description')); $fixture = new Uses(new Fqsen('\DateTime'), new Description('Description'));
@@ -117,21 +122,22 @@ class UsesTest extends TestCase
} }
/** /**
* @covers ::create
* @uses \phpDocumentor\Reflection\DocBlock\Tags\Uses::<public> * @uses \phpDocumentor\Reflection\DocBlock\Tags\Uses::<public>
* @uses \phpDocumentor\Reflection\DocBlock\DescriptionFactory * @uses \phpDocumentor\Reflection\DocBlock\DescriptionFactory
* @uses \phpDocumentor\Reflection\FqsenResolver * @uses \phpDocumentor\Reflection\FqsenResolver
* @uses \phpDocumentor\Reflection\DocBlock\Description * @uses \phpDocumentor\Reflection\DocBlock\Description
* @uses \phpDocumentor\Reflection\Fqsen * @uses \phpDocumentor\Reflection\Fqsen
* @uses \phpDocumentor\Reflection\Types\Context * @uses \phpDocumentor\Reflection\Types\Context
*
* @covers ::create
*/ */
public function testFactoryMethod(): void public function testFactoryMethod() : void
{ {
$descriptionFactory = m::mock(DescriptionFactory::class); $descriptionFactory = m::mock(DescriptionFactory::class);
$resolver = m::mock(FqsenResolver::class); $resolver = m::mock(FqsenResolver::class);
$context = new Context(''); $context = new Context('');
$fqsen = new Fqsen('\DateTime'); $fqsen = new Fqsen('\DateTime');
$description = new Description('My Description'); $description = new Description('My Description');
$descriptionFactory $descriptionFactory
@@ -148,7 +154,7 @@ class UsesTest extends TestCase
/** /**
* @covers ::create * @covers ::create
*/ */
public function testFactoryMethodFailsIfBodyIsNotEmpty(): void public function testFactoryMethodFailsIfBodyIsNotEmpty() : void
{ {
$this->expectException('InvalidArgumentException'); $this->expectException('InvalidArgumentException');
$this->assertNull(Uses::create('')); $this->assertNull(Uses::create(''));
@@ -157,7 +163,7 @@ class UsesTest extends TestCase
/** /**
* @covers ::create * @covers ::create
*/ */
public function testFactoryMethodFailsIfResolverIsNull(): void public function testFactoryMethodFailsIfResolverIsNull() : void
{ {
$this->expectException('InvalidArgumentException'); $this->expectException('InvalidArgumentException');
Uses::create('body'); Uses::create('body');
@@ -166,7 +172,7 @@ class UsesTest extends TestCase
/** /**
* @covers ::create * @covers ::create
*/ */
public function testFactoryMethodFailsIfDescriptionFactoryIsNull(): void public function testFactoryMethodFailsIfDescriptionFactoryIsNull() : void
{ {
$this->expectException('InvalidArgumentException'); $this->expectException('InvalidArgumentException');
Uses::create('body', new FqsenResolver()); Uses::create('body', new FqsenResolver());
+33 -24
View File
@@ -1,4 +1,6 @@
<?php declare(strict_types=1); <?php
declare(strict_types=1);
/** /**
* This file is part of phpDocumentor. * This file is part of phpDocumentor.
@@ -6,8 +8,6 @@
* For the full copyright and license information, please view the LICENSE * For the full copyright and license information, please view the LICENSE
* file that was distributed with this source code. * file that was distributed with this source code.
* *
* @copyright 2010-2018 Mike van Riel<[email protected]>
* @license http://www.opensource.org/licenses/mit-license.php MIT
* @link http://phpdoc.org * @link http://phpdoc.org
*/ */
@@ -30,7 +30,7 @@ class VarTest extends TestCase
/** /**
* Call Mockery::close after each test. * Call Mockery::close after each test.
*/ */
public function tearDown(): void public function tearDown() : void
{ {
m::close(); m::close();
} }
@@ -38,9 +38,10 @@ class VarTest extends TestCase
/** /**
* @uses \phpDocumentor\Reflection\DocBlock\Tags\Var_::__construct * @uses \phpDocumentor\Reflection\DocBlock\Tags\Var_::__construct
* @uses \phpDocumentor\Reflection\DocBlock\Description * @uses \phpDocumentor\Reflection\DocBlock\Description
*
* @covers \phpDocumentor\Reflection\DocBlock\Tags\BaseTag::getName * @covers \phpDocumentor\Reflection\DocBlock\Tags\BaseTag::getName
*/ */
public function testIfCorrectTagNameIsReturned(): void public function testIfCorrectTagNameIsReturned() : void
{ {
$fixture = new Var_('myVariable', null, new Description('Description')); $fixture = new Var_('myVariable', null, new Description('Description'));
@@ -49,9 +50,10 @@ class VarTest extends TestCase
/** /**
* @uses \phpDocumentor\Reflection\DocBlock\Tags\Var_::__construct * @uses \phpDocumentor\Reflection\DocBlock\Tags\Var_::__construct
*
* @covers \phpDocumentor\Reflection\DocBlock\Tags\BaseTag::render * @covers \phpDocumentor\Reflection\DocBlock\Tags\BaseTag::render
*/ */
public function testIfVariableNameIsOmmitedIfEmpty(): void public function testIfVariableNameIsOmmitedIfEmpty() : void
{ {
$fixture = new Var_('', null, null); $fixture = new Var_('', null, null);
@@ -63,10 +65,11 @@ class VarTest extends TestCase
* @uses \phpDocumentor\Reflection\DocBlock\Tags\Var_::__toString * @uses \phpDocumentor\Reflection\DocBlock\Tags\Var_::__toString
* @uses \phpDocumentor\Reflection\DocBlock\Tags\Formatter\PassthroughFormatter * @uses \phpDocumentor\Reflection\DocBlock\Tags\Formatter\PassthroughFormatter
* @uses \phpDocumentor\Reflection\DocBlock\Description * @uses \phpDocumentor\Reflection\DocBlock\Description
*
* @covers \phpDocumentor\Reflection\DocBlock\Tags\BaseTag::render * @covers \phpDocumentor\Reflection\DocBlock\Tags\BaseTag::render
* @covers \phpDocumentor\Reflection\DocBlock\Tags\BaseTag::getName * @covers \phpDocumentor\Reflection\DocBlock\Tags\BaseTag::getName
*/ */
public function testIfTagCanBeRenderedUsingDefaultFormatter(): void public function testIfTagCanBeRenderedUsingDefaultFormatter() : void
{ {
$fixture = new Var_('myVariable', new String_(), new Description('Description')); $fixture = new Var_('myVariable', new String_(), new Description('Description'));
$this->assertSame('@var string $myVariable Description', $fixture->render()); $this->assertSame('@var string $myVariable Description', $fixture->render());
@@ -80,9 +83,10 @@ class VarTest extends TestCase
/** /**
* @uses \phpDocumentor\Reflection\DocBlock\Tags\Var_::__construct * @uses \phpDocumentor\Reflection\DocBlock\Tags\Var_::__construct
*
* @covers \phpDocumentor\Reflection\DocBlock\Tags\BaseTag::render * @covers \phpDocumentor\Reflection\DocBlock\Tags\BaseTag::render
*/ */
public function testIfTagCanBeRenderedUsingSpecificFormatter(): void public function testIfTagCanBeRenderedUsingSpecificFormatter() : void
{ {
$fixture = new Var_('myVariable'); $fixture = new Var_('myVariable');
@@ -96,7 +100,7 @@ class VarTest extends TestCase
* @covers ::__construct * @covers ::__construct
* @covers ::getVariableName * @covers ::getVariableName
*/ */
public function testHasVariableName(): void public function testHasVariableName() : void
{ {
$expected = 'myVariable'; $expected = 'myVariable';
@@ -109,7 +113,7 @@ class VarTest extends TestCase
* @covers ::__construct * @covers ::__construct
* @covers ::getType * @covers ::getType
*/ */
public function testHasType(): void public function testHasType() : void
{ {
$expected = new String_(); $expected = new String_();
@@ -119,11 +123,12 @@ class VarTest extends TestCase
} }
/** /**
* @uses \phpDocumentor\Reflection\DocBlock\Description
*
* @covers ::__construct * @covers ::__construct
* @covers \phpDocumentor\Reflection\DocBlock\Tags\BaseTag::getDescription * @covers \phpDocumentor\Reflection\DocBlock\Tags\BaseTag::getDescription
* @uses \phpDocumentor\Reflection\DocBlock\Description
*/ */
public function testHasDescription(): void public function testHasDescription() : void
{ {
$expected = new Description('Description'); $expected = new Description('Description');
@@ -133,12 +138,13 @@ class VarTest extends TestCase
} }
/** /**
* @covers ::__construct
* @covers ::__toString
* @uses \phpDocumentor\Reflection\DocBlock\Description * @uses \phpDocumentor\Reflection\DocBlock\Description
* @uses \phpDocumentor\Reflection\Types\String_ * @uses \phpDocumentor\Reflection\Types\String_
*
* @covers ::__construct
* @covers ::__toString
*/ */
public function testStringRepresentationIsReturned(): void public function testStringRepresentationIsReturned() : void
{ {
$fixture = new Var_('myVariable', new String_(), new Description('Description')); $fixture = new Var_('myVariable', new String_(), new Description('Description'));
@@ -146,17 +152,18 @@ class VarTest extends TestCase
} }
/** /**
* @covers ::create
* @uses \phpDocumentor\Reflection\DocBlock\Tags\Var_::<public> * @uses \phpDocumentor\Reflection\DocBlock\Tags\Var_::<public>
* @uses \phpDocumentor\Reflection\DocBlock\DescriptionFactory * @uses \phpDocumentor\Reflection\DocBlock\DescriptionFactory
* @uses \phpDocumentor\Reflection\DocBlock\Description * @uses \phpDocumentor\Reflection\DocBlock\Description
* @uses \phpDocumentor\Reflection\Types\Context * @uses \phpDocumentor\Reflection\Types\Context
*
* @covers ::create
*/ */
public function testFactoryMethod(): void public function testFactoryMethod() : void
{ {
$typeResolver = new TypeResolver(); $typeResolver = new TypeResolver();
$descriptionFactory = m::mock(DescriptionFactory::class); $descriptionFactory = m::mock(DescriptionFactory::class);
$context = new Context(''); $context = new Context('');
$description = new Description('My Description'); $description = new Description('My Description');
$descriptionFactory->shouldReceive('create')->with('My Description', $context)->andReturn($description); $descriptionFactory->shouldReceive('create')->with('My Description', $context)->andReturn($description);
@@ -170,12 +177,13 @@ class VarTest extends TestCase
} }
/** /**
* @covers ::create
* @uses \phpDocumentor\Reflection\DocBlock\Tags\Var_::<public> * @uses \phpDocumentor\Reflection\DocBlock\Tags\Var_::<public>
* @uses \phpDocumentor\Reflection\TypeResolver * @uses \phpDocumentor\Reflection\TypeResolver
* @uses \phpDocumentor\Reflection\DocBlock\DescriptionFactory * @uses \phpDocumentor\Reflection\DocBlock\DescriptionFactory
*
* @covers ::create
*/ */
public function testFactoryMethodFailsIfEmptyBodyIsGiven(): void public function testFactoryMethodFailsIfEmptyBodyIsGiven() : void
{ {
$this->expectException('InvalidArgumentException'); $this->expectException('InvalidArgumentException');
$descriptionFactory = m::mock(DescriptionFactory::class); $descriptionFactory = m::mock(DescriptionFactory::class);
@@ -185,17 +193,18 @@ class VarTest extends TestCase
/** /**
* @covers ::create * @covers ::create
*/ */
public function testFactoryMethodFailsIfResolverIsNull(): void public function testFactoryMethodFailsIfResolverIsNull() : void
{ {
$this->expectException('InvalidArgumentException'); $this->expectException('InvalidArgumentException');
Var_::create('body'); Var_::create('body');
} }
/** /**
* @covers ::create
* @uses \phpDocumentor\Reflection\TypeResolver * @uses \phpDocumentor\Reflection\TypeResolver
*
* @covers ::create
*/ */
public function testFactoryMethodFailsIfDescriptionFactoryIsNull(): void public function testFactoryMethodFailsIfDescriptionFactoryIsNull() : void
{ {
$this->expectException('InvalidArgumentException'); $this->expectException('InvalidArgumentException');
Var_::create('body', new TypeResolver()); Var_::create('body', new TypeResolver());
+26 -19
View File
@@ -1,4 +1,6 @@
<?php declare(strict_types=1); <?php
declare(strict_types=1);
/** /**
* This file is part of phpDocumentor. * This file is part of phpDocumentor.
@@ -6,8 +8,6 @@
* For the full copyright and license information, please view the LICENSE * For the full copyright and license information, please view the LICENSE
* file that was distributed with this source code. * file that was distributed with this source code.
* *
* @copyright 2010-2018 Mike van Riel<[email protected]>
* @license http://www.opensource.org/licenses/mit-license.php MIT
* @link http://phpdoc.org * @link http://phpdoc.org
*/ */
@@ -28,7 +28,7 @@ class VersionTest extends TestCase
/** /**
* Call Mockery::close after each test. * Call Mockery::close after each test.
*/ */
public function tearDown(): void public function tearDown() : void
{ {
m::close(); m::close();
} }
@@ -36,9 +36,10 @@ class VersionTest extends TestCase
/** /**
* @uses \phpDocumentor\Reflection\DocBlock\Tags\Version::__construct * @uses \phpDocumentor\Reflection\DocBlock\Tags\Version::__construct
* @uses \phpDocumentor\Reflection\DocBlock\Description * @uses \phpDocumentor\Reflection\DocBlock\Description
*
* @covers \phpDocumentor\Reflection\DocBlock\Tags\BaseTag::getName * @covers \phpDocumentor\Reflection\DocBlock\Tags\BaseTag::getName
*/ */
public function testIfCorrectTagNameIsReturned(): void public function testIfCorrectTagNameIsReturned() : void
{ {
$fixture = new Version('1.0', new Description('Description')); $fixture = new Version('1.0', new Description('Description'));
@@ -50,10 +51,11 @@ class VersionTest extends TestCase
* @uses \phpDocumentor\Reflection\DocBlock\Tags\Version::__toString * @uses \phpDocumentor\Reflection\DocBlock\Tags\Version::__toString
* @uses \phpDocumentor\Reflection\DocBlock\Tags\Formatter\PassthroughFormatter * @uses \phpDocumentor\Reflection\DocBlock\Tags\Formatter\PassthroughFormatter
* @uses \phpDocumentor\Reflection\DocBlock\Description * @uses \phpDocumentor\Reflection\DocBlock\Description
*
* @covers \phpDocumentor\Reflection\DocBlock\Tags\BaseTag::render * @covers \phpDocumentor\Reflection\DocBlock\Tags\BaseTag::render
* @covers \phpDocumentor\Reflection\DocBlock\Tags\BaseTag::getName * @covers \phpDocumentor\Reflection\DocBlock\Tags\BaseTag::getName
*/ */
public function testIfTagCanBeRenderedUsingDefaultFormatter(): void public function testIfTagCanBeRenderedUsingDefaultFormatter() : void
{ {
$fixture = new Version('1.0', new Description('Description')); $fixture = new Version('1.0', new Description('Description'));
@@ -63,9 +65,10 @@ class VersionTest extends TestCase
/** /**
* @uses \phpDocumentor\Reflection\DocBlock\Tags\Version::__construct * @uses \phpDocumentor\Reflection\DocBlock\Tags\Version::__construct
* @uses \phpDocumentor\Reflection\DocBlock\Description * @uses \phpDocumentor\Reflection\DocBlock\Description
*
* @covers \phpDocumentor\Reflection\DocBlock\Tags\BaseTag::render * @covers \phpDocumentor\Reflection\DocBlock\Tags\BaseTag::render
*/ */
public function testIfTagCanBeRenderedUsingSpecificFormatter(): void public function testIfTagCanBeRenderedUsingSpecificFormatter() : void
{ {
$fixture = new Version('1.0', new Description('Description')); $fixture = new Version('1.0', new Description('Description'));
@@ -79,7 +82,7 @@ class VersionTest extends TestCase
* @covers ::__construct * @covers ::__construct
* @covers ::getVersion * @covers ::getVersion
*/ */
public function testHasVersionNumber(): void public function testHasVersionNumber() : void
{ {
$expected = '1.0'; $expected = '1.0';
@@ -89,11 +92,12 @@ class VersionTest extends TestCase
} }
/** /**
* @uses \phpDocumentor\Reflection\DocBlock\Description
*
* @covers ::__construct * @covers ::__construct
* @covers \phpDocumentor\Reflection\DocBlock\Tags\BaseTag::getDescription * @covers \phpDocumentor\Reflection\DocBlock\Tags\BaseTag::getDescription
* @uses \phpDocumentor\Reflection\DocBlock\Description
*/ */
public function testHasDescription(): void public function testHasDescription() : void
{ {
$expected = new Description('Description'); $expected = new Description('Description');
@@ -103,11 +107,12 @@ class VersionTest extends TestCase
} }
/** /**
* @uses \phpDocumentor\Reflection\DocBlock\Description
*
* @covers ::__construct * @covers ::__construct
* @covers ::__toString * @covers ::__toString
* @uses \phpDocumentor\Reflection\DocBlock\Description
*/ */
public function testStringRepresentationIsReturned(): void public function testStringRepresentationIsReturned() : void
{ {
$fixture = new Version('1.0', new Description('Description')); $fixture = new Version('1.0', new Description('Description'));
@@ -115,18 +120,19 @@ class VersionTest extends TestCase
} }
/** /**
* @covers ::create
* @uses \phpDocumentor\Reflection\DocBlock\Tags\Version::<public> * @uses \phpDocumentor\Reflection\DocBlock\Tags\Version::<public>
* @uses \phpDocumentor\Reflection\DocBlock\DescriptionFactory * @uses \phpDocumentor\Reflection\DocBlock\DescriptionFactory
* @uses \phpDocumentor\Reflection\DocBlock\Description * @uses \phpDocumentor\Reflection\DocBlock\Description
* @uses \phpDocumentor\Reflection\Types\Context * @uses \phpDocumentor\Reflection\Types\Context
*
* @covers ::create
*/ */
public function testFactoryMethod(): void public function testFactoryMethod() : void
{ {
$descriptionFactory = m::mock(DescriptionFactory::class); $descriptionFactory = m::mock(DescriptionFactory::class);
$context = new Context(''); $context = new Context('');
$version = '1.0'; $version = '1.0';
$description = new Description('My Description'); $description = new Description('My Description');
$descriptionFactory->shouldReceive('create')->with('My Description', $context)->andReturn($description); $descriptionFactory->shouldReceive('create')->with('My Description', $context)->andReturn($description);
@@ -139,13 +145,14 @@ class VersionTest extends TestCase
} }
/** /**
* @covers ::create
* @uses \phpDocumentor\Reflection\DocBlock\Tags\Version::<public> * @uses \phpDocumentor\Reflection\DocBlock\Tags\Version::<public>
* @uses \phpDocumentor\Reflection\DocBlock\DescriptionFactory * @uses \phpDocumentor\Reflection\DocBlock\DescriptionFactory
* @uses \phpDocumentor\Reflection\DocBlock\Description * @uses \phpDocumentor\Reflection\DocBlock\Description
* @uses \phpDocumentor\Reflection\Types\Context * @uses \phpDocumentor\Reflection\Types\Context
*
* @covers ::create
*/ */
public function testFactoryMethodCreatesEmptyVersionTag(): void public function testFactoryMethodCreatesEmptyVersionTag() : void
{ {
$descriptionFactory = m::mock(DescriptionFactory::class); $descriptionFactory = m::mock(DescriptionFactory::class);
$descriptionFactory->shouldReceive('create')->never(); $descriptionFactory->shouldReceive('create')->never();
@@ -160,7 +167,7 @@ class VersionTest extends TestCase
/** /**
* @covers ::create * @covers ::create
*/ */
public function testFactoryMethodReturnsNullIfBodyDoesNotMatchRegex(): void public function testFactoryMethodReturnsNullIfBodyDoesNotMatchRegex() : void
{ {
$this->assertNull(Version::create('dkhf<')); $this->assertNull(Version::create('dkhf<'));
} }
+60 -51
View File
@@ -1,4 +1,6 @@
<?php declare(strict_types=1); <?php
declare(strict_types=1);
/** /**
* This file is part of phpDocumentor. * This file is part of phpDocumentor.
@@ -6,8 +8,6 @@
* For the full copyright and license information, please view the LICENSE * For the full copyright and license information, please view the LICENSE
* file that was distributed with this source code. * file that was distributed with this source code.
* *
* @copyright 2010-2018 Mike van Riel<[email protected]>
* @license http://www.opensource.org/licenses/mit-license.php MIT
* @link http://phpdoc.org * @link http://phpdoc.org
*/ */
@@ -21,30 +21,33 @@ use phpDocumentor\Reflection\DocBlock\TagFactory;
use phpDocumentor\Reflection\DocBlock\Tags\Param; use phpDocumentor\Reflection\DocBlock\Tags\Param;
use phpDocumentor\Reflection\Types\Context; use phpDocumentor\Reflection\Types\Context;
use PHPUnit\Framework\TestCase; use PHPUnit\Framework\TestCase;
use ReflectionClass;
/** /**
* @coversDefaultClass phpDocumentor\Reflection\DocBlockFactory
* @covers ::<private>
* @uses \Webmozart\Assert\Assert * @uses \Webmozart\Assert\Assert
* @uses phpDocumentor\Reflection\DocBlock * @uses \phpDocumentor\Reflection\DocBlock
*
* @coversDefaultClass \phpDocumentor\Reflection\DocBlockFactory
* @covers ::<private>
*/ */
class DocBlockFactoryTest extends TestCase class DocBlockFactoryTest extends TestCase
{ {
/** /**
* Call Mockery::close after each test. * Call Mockery::close after each test.
*/ */
public function tearDown(): void public function tearDown() : void
{ {
m::close(); m::close();
} }
/** /**
* @covers ::__construct
* @covers ::createInstance
* @uses \phpDocumentor\Reflection\DocBlock\StandardTagFactory * @uses \phpDocumentor\Reflection\DocBlock\StandardTagFactory
* @uses \phpDocumentor\Reflection\DocBlock\DescriptionFactory * @uses \phpDocumentor\Reflection\DocBlock\DescriptionFactory
*
* @covers ::__construct
* @covers ::createInstance
*/ */
public function testCreateFactoryUsingFactoryMethod(): void public function testCreateFactoryUsingFactoryMethod() : void
{ {
$fixture = DocBlockFactory::createInstance(); $fixture = DocBlockFactory::createInstance();
@@ -52,16 +55,17 @@ class DocBlockFactoryTest extends TestCase
} }
/** /**
* @uses \phpDocumentor\Reflection\DocBlock\Description
*
* @covers ::__construct * @covers ::__construct
* @covers ::create * @covers ::create
* @uses phpDocumentor\Reflection\DocBlock\Description
*/ */
public function testCreateDocBlockFromReflection(): void public function testCreateDocBlockFromReflection() : void
{ {
$fixture = new DocBlockFactory(m::mock(DescriptionFactory::class), m::mock(TagFactory::class)); $fixture = new DocBlockFactory(m::mock(DescriptionFactory::class), m::mock(TagFactory::class));
$docBlock = '/** This is a DocBlock */'; $docBlock = '/** This is a DocBlock */';
$classReflector = m::mock(\ReflectionClass::class); $classReflector = m::mock(ReflectionClass::class);
$classReflector->shouldReceive('getDocComment')->andReturn($docBlock); $classReflector->shouldReceive('getDocComment')->andReturn($docBlock);
$docblock = $fixture->create($classReflector); $docblock = $fixture->create($classReflector);
@@ -74,11 +78,12 @@ class DocBlockFactoryTest extends TestCase
} }
/** /**
* @uses \phpDocumentor\Reflection\DocBlock\Description
*
* @covers ::__construct * @covers ::__construct
* @covers ::create * @covers ::create
* @uses phpDocumentor\Reflection\DocBlock\Description
*/ */
public function testCreateDocBlockFromStringWithDocComment(): void public function testCreateDocBlockFromStringWithDocComment() : void
{ {
$fixture = new DocBlockFactory(m::mock(DescriptionFactory::class), m::mock(TagFactory::class)); $fixture = new DocBlockFactory(m::mock(DescriptionFactory::class), m::mock(TagFactory::class));
@@ -93,11 +98,12 @@ class DocBlockFactoryTest extends TestCase
} }
/** /**
* @uses \phpDocumentor\Reflection\DocBlock\Description
*
* @covers ::create * @covers ::create
* @covers ::__construct * @covers ::__construct
* @uses phpDocumentor\Reflection\DocBlock\Description
*/ */
public function testCreateDocBlockFromStringWithoutDocComment(): void public function testCreateDocBlockFromStringWithoutDocComment() : void
{ {
$fixture = new DocBlockFactory(m::mock(DescriptionFactory::class), m::mock(TagFactory::class)); $fixture = new DocBlockFactory(m::mock(DescriptionFactory::class), m::mock(TagFactory::class));
@@ -112,16 +118,18 @@ class DocBlockFactoryTest extends TestCase
} }
/** /**
* @uses \phpDocumentor\Reflection\DocBlock\DescriptionFactory
* @uses \phpDocumentor\Reflection\DocBlock\Description
*
* @covers ::__construct * @covers ::__construct
* @covers ::create * @covers ::create
* @uses phpDocumentor\Reflection\DocBlock\DescriptionFactory *
* @uses phpDocumentor\Reflection\DocBlock\Description
* @dataProvider provideSummaryAndDescriptions * @dataProvider provideSummaryAndDescriptions
*/ */
public function testSummaryAndDescriptionAreSeparated($given, $summary, $description): void public function testSummaryAndDescriptionAreSeparated(string $given, string $summary, string $description) : void
{ {
$tagFactory = m::mock(TagFactory::class); $tagFactory = m::mock(TagFactory::class);
$fixture = new DocBlockFactory(new DescriptionFactory($tagFactory), $tagFactory); $fixture = new DocBlockFactory(new DescriptionFactory($tagFactory), $tagFactory);
$docblock = $fixture->create($given); $docblock = $fixture->create($given);
@@ -130,15 +138,16 @@ class DocBlockFactoryTest extends TestCase
} }
/** /**
* @uses \phpDocumentor\Reflection\DocBlock\DescriptionFactory
* @uses \phpDocumentor\Reflection\DocBlock\Description
*
* @covers ::__construct * @covers ::__construct
* @covers ::create * @covers ::create
* @uses phpDocumentor\Reflection\DocBlock\DescriptionFactory
* @uses phpDocumentor\Reflection\DocBlock\Description
*/ */
public function testDescriptionsRetainFormatting(): void public function testDescriptionsRetainFormatting() : void
{ {
$tagFactory = m::mock(TagFactory::class); $tagFactory = m::mock(TagFactory::class);
$fixture = new DocBlockFactory(new DescriptionFactory($tagFactory), $tagFactory); $fixture = new DocBlockFactory(new DescriptionFactory($tagFactory), $tagFactory);
$given = <<<DOCBLOCK $given = <<<DOCBLOCK
/** /**
@@ -163,19 +172,20 @@ DESCRIPTION;
} }
/** /**
* @uses \phpDocumentor\Reflection\DocBlock\DescriptionFactory
* @uses \phpDocumentor\Reflection\DocBlock\Description
*
* @covers ::__construct * @covers ::__construct
* @covers ::create * @covers ::create
* @uses phpDocumentor\Reflection\DocBlock\DescriptionFactory
* @uses phpDocumentor\Reflection\DocBlock\Description
*/ */
public function testTagsAreInterpretedUsingFactory(): void public function testTagsAreInterpretedUsingFactory() : void
{ {
$tagString = <<<TAG $tagString = <<<TAG
@author Mike van Riel <[email protected]> This is with @author Mike van Riel <[email protected]> This is with
multiline description. multiline description.
TAG; TAG;
$tag = m::mock(Tag::class); $tag = m::mock(Tag::class);
$tagFactory = m::mock(TagFactory::class); $tagFactory = m::mock(TagFactory::class);
$tagFactory->shouldReceive('create')->with($tagString, m::type(Context::class))->andReturn($tag); $tagFactory->shouldReceive('create')->with($tagString, m::type(Context::class))->andReturn($tag);
@@ -195,7 +205,10 @@ DOCBLOCK;
$this->assertEquals([$tag], $docblock->getTags()); $this->assertEquals([$tag], $docblock->getTags());
} }
public function provideSummaryAndDescriptions() /**
* @return string[]
*/
public function provideSummaryAndDescriptions() : array
{ {
return [ return [
['This is a DocBlock', 'This is a DocBlock', ''], ['This is a DocBlock', 'This is a DocBlock', ''],
@@ -208,8 +221,7 @@ DOCBLOCK;
<<<DOCBLOCK <<<DOCBLOCK
This is a DocBlock. This is a DocBlock.
This should be a Description. This should be a Description.
DOCBLOCK DOCBLOCK,
,
'This is a DocBlock.', 'This is a DocBlock.',
'This should be a Description.', 'This should be a Description.',
], ],
@@ -218,8 +230,7 @@ DOCBLOCK
This is a This is a
multiline Summary. multiline Summary.
This should be a Description. This should be a Description.
DOCBLOCK DOCBLOCK,
,
"This is a\nmultiline Summary.", "This is a\nmultiline Summary.",
'This should be a Description.', 'This should be a Description.',
], ],
@@ -228,8 +239,7 @@ DOCBLOCK
This is a Summary without dot but with a whiteline This is a Summary without dot but with a whiteline
This should be a Description. This should be a Description.
DOCBLOCK DOCBLOCK,
,
'This is a Summary without dot but with a whiteline', 'This is a Summary without dot but with a whiteline',
'This should be a Description.', 'This should be a Description.',
], ],
@@ -238,8 +248,7 @@ DOCBLOCK
This is a Summary with dot and with a whiteline. This is a Summary with dot and with a whiteline.
This should be a Description. This should be a Description.
DOCBLOCK DOCBLOCK,
,
'This is a Summary with dot and with a whiteline.', 'This is a Summary with dot and with a whiteline.',
'This should be a Description.', 'This should be a Description.',
], ],
@@ -247,19 +256,19 @@ DOCBLOCK
} }
/** /**
* @uses \phpDocumentor\Reflection\DocBlock\DescriptionFactory
* @uses \phpDocumentor\Reflection\DocBlock\Description
* @uses \phpDocumentor\Reflection\Types\Context
* @uses \phpDocumentor\Reflection\DocBlock\Tags\Param
*
* @covers ::__construct * @covers ::__construct
* @covers ::create * @covers ::create
*
* @uses phpDocumentor\Reflection\DocBlock\DescriptionFactory
* @uses phpDocumentor\Reflection\DocBlock\Description
* @uses phpDocumentor\Reflection\Types\Context
* @uses phpDocumentor\Reflection\DocBlock\Tags\Param
*/ */
public function testTagsWithContextNamespace(): void public function testTagsWithContextNamespace() : void
{ {
$tagFactoryMock = m::mock(TagFactory::class); $tagFactoryMock = m::mock(TagFactory::class);
$fixture = new DocBlockFactory(m::mock(DescriptionFactory::class), $tagFactoryMock); $fixture = new DocBlockFactory(m::mock(DescriptionFactory::class), $tagFactoryMock);
$context = new Context('MyNamespace'); $context = new Context('MyNamespace');
$tagFactoryMock->shouldReceive('create')->with(m::any(), $context)->andReturn(new Param('param')); $tagFactoryMock->shouldReceive('create')->with(m::any(), $context)->andReturn(new Param('param'));
$docblock = $fixture->create('/** @param MyType $param */', $context); $docblock = $fixture->create('/** @param MyType $param */', $context);
@@ -268,13 +277,13 @@ DOCBLOCK
} }
/** /**
* @uses \phpDocumentor\Reflection\DocBlock\DescriptionFactory
* @uses \phpDocumentor\Reflection\DocBlock\Description
*
* @covers ::__construct * @covers ::__construct
* @covers ::create * @covers ::create
*
* @uses phpDocumentor\Reflection\DocBlock\DescriptionFactory
* @uses phpDocumentor\Reflection\DocBlock\Description
*/ */
public function testTagsAreFilteredForNullValues(): void public function testTagsAreFilteredForNullValues() : void
{ {
$tagString = <<<TAG $tagString = <<<TAG
@author Mike van Riel <[email protected]> This is with @author Mike van Riel <[email protected]> This is with
+50 -50
View File
@@ -1,4 +1,6 @@
<?php declare(strict_types=1); <?php
declare(strict_types=1);
/** /**
* This file is part of phpDocumentor. * This file is part of phpDocumentor.
@@ -6,8 +8,6 @@
* For the full copyright and license information, please view the LICENSE * For the full copyright and license information, please view the LICENSE
* file that was distributed with this source code. * file that was distributed with this source code.
* *
* @copyright 2010-2018 Mike van Riel<[email protected]>
* @license http://www.opensource.org/licenses/mit-license.php MIT
* @link http://phpdoc.org * @link http://phpdoc.org
*/ */
@@ -19,27 +19,28 @@ use phpDocumentor\Reflection\Types\Context;
use PHPUnit\Framework\TestCase; use PHPUnit\Framework\TestCase;
/** /**
* @uses \Webmozart\Assert\Assert
*
* @coversDefaultClass phpDocumentor\Reflection\DocBlock * @coversDefaultClass phpDocumentor\Reflection\DocBlock
* @covers ::<private> * @covers ::<private>
* @uses \Webmozart\Assert\Assert
*/ */
class DocBlockTest extends TestCase class DocBlockTest extends TestCase
{ {
/** /**
* Call Mockery::close after each test. * Call Mockery::close after each test.
*/ */
public function tearDown(): void public function tearDown() : void
{ {
m::close(); m::close();
} }
/** /**
* @uses \phpDocumentor\Reflection\DocBlock\Description
*
* @covers ::__construct * @covers ::__construct
* @covers ::getSummary * @covers ::getSummary
*
* @uses \phpDocumentor\Reflection\DocBlock\Description
*/ */
public function testDocBlockCanHaveASummary(): void public function testDocBlockCanHaveASummary() : void
{ {
$summary = 'This is a summary'; $summary = 'This is a summary';
@@ -49,12 +50,12 @@ class DocBlockTest extends TestCase
} }
/** /**
* @uses \phpDocumentor\Reflection\DocBlock\Description
*
* @covers ::__construct * @covers ::__construct
* @covers ::getSummary * @covers ::getSummary
*
* @uses \phpDocumentor\Reflection\DocBlock\Description
*/ */
public function testDocBlockCanHaveEllipsisInSummary(): void public function testDocBlockCanHaveEllipsisInSummary() : void
{ {
$summary = 'This is a short (...) description.'; $summary = 'This is a short (...) description.';
@@ -64,12 +65,12 @@ class DocBlockTest extends TestCase
} }
/** /**
* @uses \phpDocumentor\Reflection\DocBlock\Description
*
* @covers ::__construct * @covers ::__construct
* @covers ::getDescription * @covers ::getDescription
*
* @uses \phpDocumentor\Reflection\DocBlock\Description
*/ */
public function testDocBlockCanHaveADescription(): void public function testDocBlockCanHaveADescription() : void
{ {
$description = new DocBlock\Description(''); $description = new DocBlock\Description('');
@@ -79,13 +80,13 @@ class DocBlockTest extends TestCase
} }
/** /**
* @covers ::__construct
* @covers ::getTags
*
* @uses \phpDocumentor\Reflection\DocBlock\Description * @uses \phpDocumentor\Reflection\DocBlock\Description
* @uses \phpDocumentor\Reflection\DocBlock\Tag * @uses \phpDocumentor\Reflection\DocBlock\Tag
*
* @covers ::__construct
* @covers ::getTags
*/ */
public function testDocBlockCanHaveTags(): void public function testDocBlockCanHaveTags() : void
{ {
$tags = [ $tags = [
m::mock(DocBlock\Tag::class), m::mock(DocBlock\Tag::class),
@@ -97,29 +98,28 @@ class DocBlockTest extends TestCase
} }
/** /**
* @covers ::__construct
* @covers ::getTags
* @uses \phpDocumentor\Reflection\DocBlock\Description * @uses \phpDocumentor\Reflection\DocBlock\Description
* @uses \phpDocumentor\Reflection\DocBlock\Tag * @uses \phpDocumentor\Reflection\DocBlock\Tag
*
* @covers ::__construct
* @covers ::getTags
*/ */
public function testDocBlockAllowsOnlyTags(): void public function testDocBlockAllowsOnlyTags() : void
{ {
$this->expectException('InvalidArgumentException'); $this->expectException('InvalidArgumentException');
$tags = [ $tags = [null];
null,
];
$fixture = new DocBlock('', null, $tags); $fixture = new DocBlock('', null, $tags);
} }
/** /**
* @covers ::__construct
* @covers ::getTagsByName
*
* @uses \phpDocumentor\Reflection\DocBlock::getTags * @uses \phpDocumentor\Reflection\DocBlock::getTags
* @uses \phpDocumentor\Reflection\DocBlock\Description * @uses \phpDocumentor\Reflection\DocBlock\Description
* @uses \phpDocumentor\Reflection\DocBlock\Tag * @uses \phpDocumentor\Reflection\DocBlock\Tag
*
* @covers ::__construct
* @covers ::getTagsByName
*/ */
public function testFindTagsInDocBlockByName(): void public function testFindTagsInDocBlockByName() : void
{ {
$tag1 = m::mock(DocBlock\Tag::class); $tag1 = m::mock(DocBlock\Tag::class);
$tag2 = m::mock(DocBlock\Tag::class); $tag2 = m::mock(DocBlock\Tag::class);
@@ -137,14 +137,14 @@ class DocBlockTest extends TestCase
} }
/** /**
* @covers ::__construct
* @covers ::hasTag
*
* @uses \phpDocumentor\Reflection\DocBlock::getTags * @uses \phpDocumentor\Reflection\DocBlock::getTags
* @uses \phpDocumentor\Reflection\DocBlock\Description * @uses \phpDocumentor\Reflection\DocBlock\Description
* @uses \phpDocumentor\Reflection\DocBlock\Tag * @uses \phpDocumentor\Reflection\DocBlock\Tag
*
* @covers ::__construct
* @covers ::hasTag
*/ */
public function testCheckIfThereAreTagsWithAGivenName(): void public function testCheckIfThereAreTagsWithAGivenName() : void
{ {
$tag1 = m::mock(DocBlock\Tag::class); $tag1 = m::mock(DocBlock\Tag::class);
$tag2 = m::mock(DocBlock\Tag::class); $tag2 = m::mock(DocBlock\Tag::class);
@@ -162,13 +162,13 @@ class DocBlockTest extends TestCase
} }
/** /**
* @covers ::__construct
* @covers ::getContext
*
* @uses \phpDocumentor\Reflection\DocBlock\Description * @uses \phpDocumentor\Reflection\DocBlock\Description
* @uses \phpDocumentor\Reflection\Types\Context * @uses \phpDocumentor\Reflection\Types\Context
*
* @covers ::__construct
* @covers ::getContext
*/ */
public function testDocBlockKnowsInWhichNamespaceItIsAndWhichAliasesThereAre(): void public function testDocBlockKnowsInWhichNamespaceItIsAndWhichAliasesThereAre() : void
{ {
$context = new Context(''); $context = new Context('');
@@ -178,13 +178,13 @@ class DocBlockTest extends TestCase
} }
/** /**
* @covers ::__construct
* @covers ::getLocation
*
* @uses \phpDocumentor\Reflection\DocBlock\Description * @uses \phpDocumentor\Reflection\DocBlock\Description
* @uses \phpDocumentor\Reflection\Location * @uses \phpDocumentor\Reflection\Location
*
* @covers ::__construct
* @covers ::getLocation
*/ */
public function testDocBlockKnowsAtWhichLineItIs(): void public function testDocBlockKnowsAtWhichLineItIs() : void
{ {
$location = new Location(10); $location = new Location(10);
@@ -194,12 +194,12 @@ class DocBlockTest extends TestCase
} }
/** /**
* @uses \phpDocumentor\Reflection\DocBlock\Description
*
* @covers ::__construct * @covers ::__construct
* @covers ::isTemplateStart * @covers ::isTemplateStart
*
* @uses \phpDocumentor\Reflection\DocBlock\Description
*/ */
public function testDocBlockKnowsIfItIsTheStartOfADocBlockTemplate(): void public function testDocBlockKnowsIfItIsTheStartOfADocBlockTemplate() : void
{ {
$fixture = new DocBlock('', null, [], null, null, true); $fixture = new DocBlock('', null, [], null, null, true);
@@ -207,12 +207,12 @@ class DocBlockTest extends TestCase
} }
/** /**
* @uses \phpDocumentor\Reflection\DocBlock\Description
*
* @covers ::__construct * @covers ::__construct
* @covers ::isTemplateEnd * @covers ::isTemplateEnd
*
* @uses \phpDocumentor\Reflection\DocBlock\Description
*/ */
public function testDocBlockKnowsIfItIsTheEndOfADocBlockTemplate(): void public function testDocBlockKnowsIfItIsTheEndOfADocBlockTemplate() : void
{ {
$fixture = new DocBlock('', null, [], null, null, false, true); $fixture = new DocBlock('', null, [], null, null, false, true);
@@ -220,14 +220,14 @@ class DocBlockTest extends TestCase
} }
/** /**
* @uses \phpDocumentor\Reflection\DocBlock\Tags\Deprecated
*
* @covers ::__construct * @covers ::__construct
* @covers ::removeTag * @covers ::removeTag
*
* @uses \phpDocumentor\Reflection\DocBlock\Tags\Deprecated
*/ */
public function testRemoveTag(): void public function testRemoveTag() : void
{ {
$someTag = new Deprecated(); $someTag = new Deprecated();
$anotherTag = new Deprecated(); $anotherTag = new Deprecated();
$fixture = new DocBlock('', null, [$someTag]); $fixture = new DocBlock('', null, [$someTag]);