www.gusucode.com > KPPW众包威客PHP开源建站系统 v3.0源码程序 > KPPW/vendor/phpdocumentor/reflection-docblock/tests/unit/DocBlock/Tags/ThrowsTest.php
<?php /** * This file is part of phpDocumentor. * * For the full copyright and license information, please view the LICENSE * file that was distributed with this source code. * * @copyright 2010-2015 Mike van Riel<mike@phpdoc.org> * @license http://www.opensource.org/licenses/mit-license.php MIT * @link http://phpdoc.org */ namespace phpDocumentor\Reflection\DocBlock\Tags; use Mockery as m; use phpDocumentor\Reflection\DocBlock\Description; use phpDocumentor\Reflection\DocBlock\DescriptionFactory; use phpDocumentor\Reflection\TypeResolver; use phpDocumentor\Reflection\Types\Context; use phpDocumentor\Reflection\Types\String_; /** * @coversDefaultClass \phpDocumentor\Reflection\DocBlock\Tags\Throws * @covers ::<private> */ class ThrowsTest extends \PHPUnit_Framework_TestCase { /** * @uses \phpDocumentor\Reflection\DocBlock\Tags\Throws::__construct * @uses \phpDocumentor\Reflection\DocBlock\Description * @covers \phpDocumentor\Reflection\DocBlock\Tags\BaseTag::getName */ public function testIfCorrectTagNameIsReturned() { $fixture = new Throws(new String_(), new Description('Description')); $this->assertSame('throws', $fixture->getName()); } /** * @uses \phpDocumentor\Reflection\DocBlock\Tags\Throws::__construct * @uses \phpDocumentor\Reflection\DocBlock\Tags\Throws::__toString * @uses \phpDocumentor\Reflection\DocBlock\Tags\Formatter\PassthroughFormatter * @uses \phpDocumentor\Reflection\DocBlock\Description * @covers \phpDocumentor\Reflection\DocBlock\Tags\BaseTag::render * @covers \phpDocumentor\Reflection\DocBlock\Tags\BaseTag::getName */ public function testIfTagCanBeRenderedUsingDefaultFormatter() { $fixture = new Throws(new String_(), new Description('Description')); $this->assertSame('@throws string Description', $fixture->render()); } /** * @uses \phpDocumentor\Reflection\DocBlock\Tags\Throws::__construct * @uses \phpDocumentor\Reflection\DocBlock\Description * @covers \phpDocumentor\Reflection\DocBlock\Tags\BaseTag::render */ public function testIfTagCanBeRenderedUsingSpecificFormatter() { $fixture = new Throws(new String_(), new Description('Description')); $formatter = m::mock(Formatter::class); $formatter->shouldReceive('format')->with($fixture)->andReturn('Rendered output'); $this->assertSame('Rendered output', $fixture->render($formatter)); } /** * @covers ::__construct * @covers ::getType */ public function testHasType() { $expected = new String_(); $fixture = new Throws($expected); $this->assertSame($expected, $fixture->getType()); } /** * @covers ::__construct * @covers \phpDocumentor\Reflection\DocBlock\Tags\BaseTag::getDescription * @uses \phpDocumentor\Reflection\DocBlock\Description */ public function testHasDescription() { $expected = new Description('Description'); $fixture = new Throws(new String_(), $expected); $this->assertSame($expected, $fixture->getDescription()); } /** * @covers ::__construct * @covers ::__toString * @uses \phpDocumentor\Reflection\DocBlock\Description */ public function testStringRepresentationIsReturned() { $fixture = new Throws(new String_(), new Description('Description')); $this->assertSame('string Description', (string)$fixture); } /** * @covers ::create * @uses \phpDocumentor\Reflection\DocBlock\Tags\Throws::<public> * @uses \phpDocumentor\Reflection\DocBlock\DescriptionFactory * @uses \phpDocumentor\Reflection\TypeResolver * @uses \phpDocumentor\Reflection\DocBlock\Description * @uses \phpDocumentor\Reflection\Types\String_ * @uses \phpDocumentor\Reflection\Types\Context */ public function testFactoryMethod() { $descriptionFactory = m::mock(DescriptionFactory::class); $resolver = new TypeResolver(); $context = new Context(''); $type = new String_(); $description = new Description('My Description'); $descriptionFactory->shouldReceive('create')->with('My Description', $context)->andReturn($description); $fixture = Throws::create('string My Description', $resolver, $descriptionFactory, $context); $this->assertSame('string My Description', (string)$fixture); $this->assertEquals($type, $fixture->getType()); $this->assertSame($description, $fixture->getDescription()); } /** * @covers ::create * @expectedException \InvalidArgumentException */ public function testFactoryMethodFailsIfBodyIsNotString() { $this->assertNull(Throws::create([])); } /** * @covers ::create * @expectedException \InvalidArgumentException */ public function testFactoryMethodFailsIfBodyIsNotEmpty() { $this->assertNull(Throws::create('')); } /** * @covers ::create * @expectedException \InvalidArgumentException */ public function testFactoryMethodFailsIfResolverIsNull() { Throws::create('body'); } /** * @covers ::create * @expectedException \InvalidArgumentException */ public function testFactoryMethodFailsIfDescriptionFactoryIsNull() { Throws::create('body', new TypeResolver()); } }