annotate vendor/nikic/php-parser/test/PhpParser/Node/Stmt/ClassMethodTest.php @ 0:4c8ae668cc8c
Initial import (non-working)
author |
Chris Cannam |
date |
Wed, 29 Nov 2017 16:09:58 +0000 |
parents |
|
children |
5fb285c0d0e3 |
rev |
line source |
Chris@0
|
1 <?php
|
Chris@0
|
2
|
Chris@0
|
3 namespace PhpParser\Node\Stmt;
|
Chris@0
|
4
|
Chris@0
|
5 class ClassMethodTest extends \PHPUnit_Framework_TestCase
|
Chris@0
|
6 {
|
Chris@0
|
7 /**
|
Chris@0
|
8 * @dataProvider provideModifiers
|
Chris@0
|
9 */
|
Chris@0
|
10 public function testModifiers($modifier) {
|
Chris@0
|
11 $node = new ClassMethod('foo', array(
|
Chris@0
|
12 'type' => constant('PhpParser\Node\Stmt\Class_::MODIFIER_' . strtoupper($modifier))
|
Chris@0
|
13 ));
|
Chris@0
|
14
|
Chris@0
|
15 $this->assertTrue($node->{'is' . $modifier}());
|
Chris@0
|
16 }
|
Chris@0
|
17
|
Chris@0
|
18 public function testNoModifiers() {
|
Chris@0
|
19 $node = new ClassMethod('foo', array('type' => 0));
|
Chris@0
|
20
|
Chris@0
|
21 $this->assertTrue($node->isPublic());
|
Chris@0
|
22 $this->assertFalse($node->isProtected());
|
Chris@0
|
23 $this->assertFalse($node->isPrivate());
|
Chris@0
|
24 $this->assertFalse($node->isAbstract());
|
Chris@0
|
25 $this->assertFalse($node->isFinal());
|
Chris@0
|
26 $this->assertFalse($node->isStatic());
|
Chris@0
|
27 }
|
Chris@0
|
28
|
Chris@0
|
29 public function provideModifiers() {
|
Chris@0
|
30 return array(
|
Chris@0
|
31 array('public'),
|
Chris@0
|
32 array('protected'),
|
Chris@0
|
33 array('private'),
|
Chris@0
|
34 array('abstract'),
|
Chris@0
|
35 array('final'),
|
Chris@0
|
36 array('static'),
|
Chris@0
|
37 );
|
Chris@0
|
38 }
|
Chris@0
|
39
|
Chris@0
|
40 /**
|
Chris@0
|
41 * Checks that implicit public modifier detection for method is working
|
Chris@0
|
42 *
|
Chris@0
|
43 * @dataProvider implicitPublicModifiers
|
Chris@0
|
44 *
|
Chris@0
|
45 * @param integer $modifier Node type modifier
|
Chris@0
|
46 */
|
Chris@0
|
47 public function testImplicitPublic($modifier)
|
Chris@0
|
48 {
|
Chris@0
|
49 $node = new ClassMethod('foo', array(
|
Chris@0
|
50 'type' => constant('PhpParser\Node\Stmt\Class_::MODIFIER_' . strtoupper($modifier))
|
Chris@0
|
51 ));
|
Chris@0
|
52
|
Chris@0
|
53 $this->assertTrue($node->isPublic(), 'Node should be implicitly public');
|
Chris@0
|
54 }
|
Chris@0
|
55
|
Chris@0
|
56 public function implicitPublicModifiers() {
|
Chris@0
|
57 return array(
|
Chris@0
|
58 array('abstract'),
|
Chris@0
|
59 array('final'),
|
Chris@0
|
60 array('static'),
|
Chris@0
|
61 );
|
Chris@0
|
62 }
|
Chris@0
|
63 }
|