Файл: gapps/vendor/nikic/php-parser/test/PhpParser/Builder/PropertyTest.php
Строк: 80
<?php
namespace PhpParserBuilder;
use PhpParserNodeName;
use PhpParserNodeStmt;
use PhpParserNodeExpr;
use PhpParserNodeScalar;
use PhpParserComment;
class PropertyTest extends PHPUnit_Framework_TestCase
{
public function createPropertyBuilder($name) {
return new Property($name);
}
public function testModifiers() {
$node = $this->createPropertyBuilder('test')
->makePrivate()
->makeStatic()
->getNode()
;
$this->assertEquals(
new StmtProperty(
StmtClass_::MODIFIER_PRIVATE
| StmtClass_::MODIFIER_STATIC,
array(
new StmtPropertyProperty('test')
)
),
$node
);
$node = $this->createPropertyBuilder('test')
->makeProtected()
->getNode()
;
$this->assertEquals(
new StmtProperty(
StmtClass_::MODIFIER_PROTECTED,
array(
new StmtPropertyProperty('test')
)
),
$node
);
$node = $this->createPropertyBuilder('test')
->makePublic()
->getNode()
;
$this->assertEquals(
new StmtProperty(
StmtClass_::MODIFIER_PUBLIC,
array(
new StmtPropertyProperty('test')
)
),
$node
);
}
public function testDocComment() {
$node = $this->createPropertyBuilder('test')
->setDocComment('/** Test */')
->getNode();
$this->assertEquals(new StmtProperty(
StmtClass_::MODIFIER_PUBLIC,
array(
new StmtPropertyProperty('test')
),
array(
'comments' => array(new CommentDoc('/** Test */'))
)
), $node);
}
/**
* @dataProvider provideTestDefaultValues
*/
public function testDefaultValues($value, $expectedValueNode) {
$node = $this->createPropertyBuilder('test')
->setDefault($value)
->getNode()
;
$this->assertEquals($expectedValueNode, $node->props[0]->default);
}
public function provideTestDefaultValues() {
return array(
array(
null,
new ExprConstFetch(new Name('null'))
),
array(
true,
new ExprConstFetch(new Name('true'))
),
array(
false,
new ExprConstFetch(new Name('false'))
),
array(
31415,
new ScalarLNumber(31415)
),
array(
3.1415,
new ScalarDNumber(3.1415)
),
array(
'Hallo World',
new ScalarString_('Hallo World')
),
array(
array(1, 2, 3),
new ExprArray_(array(
new ExprArrayItem(new ScalarLNumber(1)),
new ExprArrayItem(new ScalarLNumber(2)),
new ExprArrayItem(new ScalarLNumber(3)),
))
),
array(
array('foo' => 'bar', 'bar' => 'foo'),
new ExprArray_(array(
new ExprArrayItem(
new ScalarString_('bar'),
new ScalarString_('foo')
),
new ExprArrayItem(
new ScalarString_('foo'),
new ScalarString_('bar')
),
))
),
array(
new ScalarMagicConstDir,
new ScalarMagicConstDir
)
);
}
}