/vendor/phpdocumentor/reflection-docblock/tests/phpDocumentor/Reflection/DocBlock/TagTest.php
https://gitlab.com/techniconline/kmc · PHP · 314 lines · 209 code · 29 blank · 76 comment · 2 complexity · 3be4bb6befb92cc74615384614e7b92c MD5 · raw file
- <?php
- /**
- * phpDocumentor Var Tag Test
- *
- * PHP version 5.3
- *
- * @author Daniel O'Connor <daniel.oconnor@gmail.com>
- * @copyright 2010-2011 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;
- use phpDocumentor\Reflection\DocBlock;
- use phpDocumentor\Reflection\DocBlock\Context;
- /**
- * Test class for \phpDocumentor\Reflection\DocBlock\Tag\VarTag
- *
- * @author Daniel O'Connor <daniel.oconnor@gmail.com>
- * @copyright 2010-2011 Mike van Riel / Naenius. (http://www.naenius.com)
- * @license http://www.opensource.org/licenses/mit-license.php MIT
- * @link http://phpdoc.org
- */
- class TagTest extends \PHPUnit_Framework_TestCase
- {
- /**
- * @expectedException \InvalidArgumentException
- *
- * @return void
- */
- public function testInvalidTagLine()
- {
- Tag::createInstance('Invalid tag line');
- }
- /**
- * @covers \phpDocumentor\Reflection\DocBlock\Tag::registerTagHandler
- *
- * @return void
- */
- public function testTagHandlerUnregistration()
- {
- $currentHandler = __NAMESPACE__ . '\Tag\VarTag';
- $tagPreUnreg = Tag::createInstance('@var mixed');
- $this->assertInstanceOf(
- $currentHandler,
- $tagPreUnreg
- );
- $this->assertInstanceOf(
- __NAMESPACE__ . '\Tag',
- $tagPreUnreg
- );
- Tag::registerTagHandler('var', null);
- $tagPostUnreg = Tag::createInstance('@var mixed');
- $this->assertNotInstanceOf(
- $currentHandler,
- $tagPostUnreg
- );
- $this->assertInstanceOf(
- __NAMESPACE__ . '\Tag',
- $tagPostUnreg
- );
- Tag::registerTagHandler('var', $currentHandler);
- }
- /**
- * @covers \phpDocumentor\Reflection\DocBlock\Tag::registerTagHandler
- *
- * @return void
- */
- public function testTagHandlerCorrectRegistration()
- {
- if (0 == ini_get('allow_url_include')) {
- $this->markTestSkipped('"data" URIs for includes are required.');
- }
- $currentHandler = __NAMESPACE__ . '\Tag\VarTag';
- $tagPreReg = Tag::createInstance('@var mixed');
- $this->assertInstanceOf(
- $currentHandler,
- $tagPreReg
- );
- $this->assertInstanceOf(
- __NAMESPACE__ . '\Tag',
- $tagPreReg
- );
- include 'data:text/plain;base64,' . base64_encode(
- <<<TAG_HANDLER
- <?php
- class MyTagHandler extends \phpDocumentor\Reflection\DocBlock\Tag {}
- TAG_HANDLER
- );
- $this->assertTrue(Tag::registerTagHandler('var', '\MyTagHandler'));
- $tagPostReg = Tag::createInstance('@var mixed');
- $this->assertNotInstanceOf(
- $currentHandler,
- $tagPostReg
- );
- $this->assertInstanceOf(
- __NAMESPACE__ . '\Tag',
- $tagPostReg
- );
- $this->assertInstanceOf(
- '\MyTagHandler',
- $tagPostReg
- );
- $this->assertTrue(Tag::registerTagHandler('var', $currentHandler));
- }
- /**
- * @depends testTagHandlerCorrectRegistration
- * @covers \phpDocumentor\Reflection\DocBlock\Tag::registerTagHandler
- * @covers \phpDocumentor\Reflection\DocBlock\Tag::createInstance
- *
- * @return void
- */
- public function testNamespacedTagHandlerCorrectRegistration()
- {
- $tagPreReg = Tag::createInstance('@T something');
- $this->assertInstanceOf(
- __NAMESPACE__ . '\Tag',
- $tagPreReg
- );
- $this->assertNotInstanceOf(
- '\MyTagHandler',
- $tagPreReg
- );
- $this->assertTrue(
- Tag::registerTagHandler('\MyNamespace\MyTag', '\MyTagHandler')
- );
- $tagPostReg = Tag::createInstance(
- '@T something',
- new DocBlock(
- '',
- new Context('', array('T' => '\MyNamespace\MyTag'))
- )
- );
- $this->assertInstanceOf(
- __NAMESPACE__ . '\Tag',
- $tagPostReg
- );
- $this->assertInstanceOf(
- '\MyTagHandler',
- $tagPostReg
- );
- $this->assertTrue(
- Tag::registerTagHandler('\MyNamespace\MyTag', null)
- );
- }
- /**
- * @depends testTagHandlerCorrectRegistration
- * @covers \phpDocumentor\Reflection\DocBlock\Tag::registerTagHandler
- * @covers \phpDocumentor\Reflection\DocBlock\Tag::createInstance
- *
- * @return void
- */
- public function testNamespacedTagHandlerIncorrectRegistration()
- {
- $tagPreReg = Tag::createInstance('@T something');
- $this->assertInstanceOf(
- __NAMESPACE__ . '\Tag',
- $tagPreReg
- );
- $this->assertNotInstanceOf(
- '\MyTagHandler',
- $tagPreReg
- );
- $this->assertFalse(
- Tag::registerTagHandler('MyNamespace\MyTag', '\MyTagHandler')
- );
- $tagPostReg = Tag::createInstance(
- '@T something',
- new DocBlock(
- '',
- new Context('', array('T' => '\MyNamespace\MyTag'))
- )
- );
- $this->assertInstanceOf(
- __NAMESPACE__ . '\Tag',
- $tagPostReg
- );
- $this->assertNotInstanceOf(
- '\MyTagHandler',
- $tagPostReg
- );
- }
- /**
- * @covers \phpDocumentor\Reflection\DocBlock\Tag::registerTagHandler
- *
- * @return void
- */
- public function testNonExistentTagHandlerRegistration()
- {
- $currentHandler = __NAMESPACE__ . '\Tag\VarTag';
- $tagPreReg = Tag::createInstance('@var mixed');
- $this->assertInstanceOf(
- $currentHandler,
- $tagPreReg
- );
- $this->assertInstanceOf(
- __NAMESPACE__ . '\Tag',
- $tagPreReg
- );
- $this->assertFalse(Tag::registerTagHandler('var', 'Non existent'));
- $tagPostReg = Tag::createInstance('@var mixed');
- $this->assertInstanceOf(
- $currentHandler,
- $tagPostReg
- );
- $this->assertInstanceOf(
- __NAMESPACE__ . '\Tag',
- $tagPostReg
- );
- }
- /**
- * @covers \phpDocumentor\Reflection\DocBlock\Tag::registerTagHandler
- *
- * @return void
- */
- public function testIncompatibleTagHandlerRegistration()
- {
- $currentHandler = __NAMESPACE__ . '\Tag\VarTag';
- $tagPreReg = Tag::createInstance('@var mixed');
- $this->assertInstanceOf(
- $currentHandler,
- $tagPreReg
- );
- $this->assertInstanceOf(
- __NAMESPACE__ . '\Tag',
- $tagPreReg
- );
- $this->assertFalse(
- Tag::registerTagHandler('var', __NAMESPACE__ . '\TagTest')
- );
- $tagPostReg = Tag::createInstance('@var mixed');
- $this->assertInstanceOf(
- $currentHandler,
- $tagPostReg
- );
- $this->assertInstanceOf(
- __NAMESPACE__ . '\Tag',
- $tagPostReg
- );
- }
- /**
- * Test that the \phpDocumentor\Reflection\DocBlock\Tag\VarTag can
- * understand the @var doc block.
- *
- * @param string $type
- * @param string $content
- * @param string $exDescription
- *
- * @covers \phpDocumentor\Reflection\DocBlock\Tag
- * @dataProvider provideDataForConstuctor
- *
- * @return void
- */
- public function testConstructorParesInputsIntoCorrectFields(
- $type,
- $content,
- $exDescription
- )
- {
- $tag = new Tag($type, $content);
- $this->assertEquals($type, $tag->getName());
- $this->assertEquals($content, $tag->getContent());
- $this->assertEquals($exDescription, $tag->getDescription());
- }
- /**
- * Data provider for testConstructorParesInputsIntoCorrectFields
- *
- * @return array
- */
- public function provideDataForConstuctor()
- {
- // $type, $content, $exDescription
- return array(
- array(
- 'unknown',
- 'some content',
- 'some content',
- ),
- array(
- 'unknown',
- '',
- '',
- )
- );
- }
- }