-<?php
+<?php declare(strict_types=1);
namespace PhpParser\Builder;
use PhpParser\Node;
use PhpParser\Node\Expr;
use PhpParser\Node\Scalar;
+use PHPUnit\Framework\TestCase;
-class ParamTest extends \PHPUnit_Framework_TestCase
+class ParamTest extends TestCase
{
public function createParamBuilder($name) {
return new Param($name);
}
public function provideTestDefaultValues() {
- return array(
- array(
+ return [
+ [
null,
new Expr\ConstFetch(new Node\Name('null'))
- ),
- array(
+ ],
+ [
true,
new Expr\ConstFetch(new Node\Name('true'))
- ),
- array(
+ ],
+ [
false,
new Expr\ConstFetch(new Node\Name('false'))
- ),
- array(
+ ],
+ [
31415,
new Scalar\LNumber(31415)
- ),
- array(
+ ],
+ [
3.1415,
new Scalar\DNumber(3.1415)
- ),
- array(
+ ],
+ [
'Hallo World',
new Scalar\String_('Hallo World')
- ),
- array(
- array(1, 2, 3),
- new Expr\Array_(array(
+ ],
+ [
+ [1, 2, 3],
+ new Expr\Array_([
new Expr\ArrayItem(new Scalar\LNumber(1)),
new Expr\ArrayItem(new Scalar\LNumber(2)),
new Expr\ArrayItem(new Scalar\LNumber(3)),
- ))
- ),
- array(
- array('foo' => 'bar', 'bar' => 'foo'),
- new Expr\Array_(array(
+ ])
+ ],
+ [
+ ['foo' => 'bar', 'bar' => 'foo'],
+ new Expr\Array_([
new Expr\ArrayItem(
new Scalar\String_('bar'),
new Scalar\String_('foo')
new Scalar\String_('foo'),
new Scalar\String_('bar')
),
- ))
- ),
- array(
+ ])
+ ],
+ [
new Scalar\MagicConst\Dir,
new Scalar\MagicConst\Dir
- )
- );
+ ]
+ ];
}
/**
$type = $type->type;
}
- if ($expectedType instanceof Node\Name) {
- $this->assertInstanceOf(get_class($expectedType), $type);
- $this->assertEquals($expectedType, $type);
- } else {
- $this->assertSame($expectedType, $type);
- }
+ $this->assertInstanceOf(get_class($expectedType), $type);
+ $this->assertEquals($expectedType, $type);
}
public function provideTestTypeHints() {
- return array(
- array('array', 'array'),
- array('callable', 'callable'),
- array('bool', 'bool'),
- array('int', 'int'),
- array('float', 'float'),
- array('string', 'string'),
- array('iterable', 'iterable'),
- array('object', 'object'),
- array('Array', 'array'),
- array('CALLABLE', 'callable'),
- array('Some\Class', new Node\Name('Some\Class')),
- array('\Foo', new Node\Name\FullyQualified('Foo')),
- array('self', new Node\Name('self')),
- array('?array', new Node\NullableType('array')),
- array('?Some\Class', new Node\NullableType(new Node\Name('Some\Class'))),
- array(new Node\Name('Some\Class'), new Node\Name('Some\Class')),
- array(new Node\NullableType('int'), new Node\NullableType('int')),
- array(
+ return [
+ ['array', new Node\Identifier('array')],
+ ['callable', new Node\Identifier('callable')],
+ ['bool', new Node\Identifier('bool')],
+ ['int', new Node\Identifier('int')],
+ ['float', new Node\Identifier('float')],
+ ['string', new Node\Identifier('string')],
+ ['iterable', new Node\Identifier('iterable')],
+ ['object', new Node\Identifier('object')],
+ ['Array', new Node\Identifier('array')],
+ ['CALLABLE', new Node\Identifier('callable')],
+ ['Some\Class', new Node\Name('Some\Class')],
+ ['\Foo', new Node\Name\FullyQualified('Foo')],
+ ['self', new Node\Name('self')],
+ ['?array', new Node\NullableType(new Node\Identifier('array'))],
+ ['?Some\Class', new Node\NullableType(new Node\Name('Some\Class'))],
+ [new Node\Name('Some\Class'), new Node\Name('Some\Class')],
+ [
+ new Node\NullableType(new Node\Identifier('int')),
+ new Node\NullableType(new Node\Identifier('int'))
+ ],
+ [
new Node\NullableType(new Node\Name('Some\Class')),
new Node\NullableType(new Node\Name('Some\Class'))
- ),
- );
+ ],
+ ];
}
/**
/**
* @expectedException \LogicException
- * @expectedExceptionMessage Type must be a string, or an instance of Name or NullableType
+ * @expectedExceptionMessage Type must be a string, or an instance of Name, Identifier or NullableType
*/
public function testInvalidTypeError() {
$this->createParamBuilder('test')->setTypeHint(new \stdClass);
;
$this->assertEquals(
- new Node\Param('test', null, null, true),
+ new Node\Param(new Expr\Variable('test'), null, null, true),
$node
);
}
;
$this->assertEquals(
- new Node\Param('test', null, null, false, true),
+ new Node\Param(new Expr\Variable('test'), null, null, false, true),
$node
);
}