Welcome to mirror list, hosted at ThFree Co, Russian Federation.

github.com/nextcloud/php-static-scanner-instrumentalization.git - Unnamed repository; edit this file 'description' to name the repository.
summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
Diffstat (limited to 'vendor/nikic/php-parser/test/PhpParser/Builder/PropertyTest.php')
-rw-r--r--vendor/nikic/php-parser/test/PhpParser/Builder/PropertyTest.php147
1 files changed, 147 insertions, 0 deletions
diff --git a/vendor/nikic/php-parser/test/PhpParser/Builder/PropertyTest.php b/vendor/nikic/php-parser/test/PhpParser/Builder/PropertyTest.php
new file mode 100644
index 0000000..de8f4ce
--- /dev/null
+++ b/vendor/nikic/php-parser/test/PhpParser/Builder/PropertyTest.php
@@ -0,0 +1,147 @@
+<?php
+
+namespace PhpParser\Builder;
+
+use PhpParser\Comment;
+use PhpParser\Node\Expr;
+use PhpParser\Node\Name;
+use PhpParser\Node\Scalar;
+use PhpParser\Node\Stmt;
+
+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 Stmt\Property(
+ Stmt\Class_::MODIFIER_PRIVATE
+ | Stmt\Class_::MODIFIER_STATIC,
+ array(
+ new Stmt\PropertyProperty('test')
+ )
+ ),
+ $node
+ );
+
+ $node = $this->createPropertyBuilder('test')
+ ->makeProtected()
+ ->getNode()
+ ;
+
+ $this->assertEquals(
+ new Stmt\Property(
+ Stmt\Class_::MODIFIER_PROTECTED,
+ array(
+ new Stmt\PropertyProperty('test')
+ )
+ ),
+ $node
+ );
+
+ $node = $this->createPropertyBuilder('test')
+ ->makePublic()
+ ->getNode()
+ ;
+
+ $this->assertEquals(
+ new Stmt\Property(
+ Stmt\Class_::MODIFIER_PUBLIC,
+ array(
+ new Stmt\PropertyProperty('test')
+ )
+ ),
+ $node
+ );
+ }
+
+ public function testDocComment() {
+ $node = $this->createPropertyBuilder('test')
+ ->setDocComment('/** Test */')
+ ->getNode();
+
+ $this->assertEquals(new Stmt\Property(
+ Stmt\Class_::MODIFIER_PUBLIC,
+ array(
+ new Stmt\PropertyProperty('test')
+ ),
+ array(
+ 'comments' => array(new Comment\Doc('/** 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 Expr\ConstFetch(new Name('null'))
+ ),
+ array(
+ true,
+ new Expr\ConstFetch(new Name('true'))
+ ),
+ array(
+ false,
+ new Expr\ConstFetch(new 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(
+ 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(
+ new Expr\ArrayItem(
+ new Scalar\String_('bar'),
+ new Scalar\String_('foo')
+ ),
+ new Expr\ArrayItem(
+ new Scalar\String_('foo'),
+ new Scalar\String_('bar')
+ ),
+ ))
+ ),
+ array(
+ new Scalar\MagicConst\Dir,
+ new Scalar\MagicConst\Dir
+ )
+ );
+ }
+}