Add support for rest argument notation

This commit is contained in:
Jordi Boggiano
2016-09-28 18:42:19 +02:00
parent 9270140b94
commit 019848728e
2 changed files with 38 additions and 1 deletions
+27
View File
@@ -139,6 +139,33 @@ class MethodTest extends \PHPUnit_Framework_TestCase
$this->assertEquals($expected, $fixture->getArguments());
}
/**
* @covers ::create
*/
public function testRestArgumentIsParsedAsRegularArg()
{
$expected = [
[ 'name' => 'arg1', 'type' => new Void_() ],
[ 'name' => 'rest', 'type' => new Void_() ],
[ 'name' => 'rest2', 'type' => new Array_() ],
];
$descriptionFactory = m::mock(DescriptionFactory::class);
$resolver = new TypeResolver();
$context = new Context('');
$description = new Description('');
$descriptionFactory->shouldReceive('create')->with('', $context)->andReturn($description);
$fixture = Method::create(
'void myMethod($arg1, ...$rest, array ... $rest2)',
$resolver,
$descriptionFactory,
$context
);
$this->assertEquals($expected, $fixture->getArguments());
}
/**
* @covers ::__construct
* @covers ::getReturnType