More updates to stop using dev or alpha or beta versions.
[yaffs-website] / vendor / psy / psysh / test / CodeCleaner / InstanceOfPassTest.php
1 <?php
2
3 /*
4  * This file is part of Psy Shell.
5  *
6  * (c) 2012-2018 Justin Hileman
7  *
8  * For the full copyright and license information, please view the LICENSE
9  * file that was distributed with this source code.
10  */
11
12 namespace Psy\Test\CodeCleaner;
13
14 use Psy\CodeCleaner\InstanceOfPass;
15
16 class InstanceOfPassTest extends CodeCleanerTestCase
17 {
18     protected function setUp()
19     {
20         $this->setPass(new InstanceOfPass());
21     }
22
23     /**
24      * @dataProvider invalidStatements
25      * @expectedException \Psy\Exception\FatalErrorException
26      */
27     public function testProcessInvalidStatement($code)
28     {
29         $this->parseAndTraverse($code);
30     }
31
32     public function invalidStatements()
33     {
34         return [
35             ['null instanceof stdClass'],
36             ['true instanceof stdClass'],
37             ['9 instanceof stdClass'],
38             ['1.0 instanceof stdClass'],
39             ['"foo" instanceof stdClass'],
40             ['__DIR__ instanceof stdClass'],
41             ['PHP_SAPI instanceof stdClass'],
42             ['1+1 instanceof stdClass'],
43             ['true && false instanceof stdClass'],
44             ['"a"."b" instanceof stdClass'],
45             ['!5 instanceof stdClass'],
46         ];
47     }
48
49     /**
50      * @dataProvider validStatements
51      */
52     public function testProcessValidStatement($code)
53     {
54         $this->parseAndTraverse($code);
55         $this->assertTrue(true);
56     }
57
58     public function validStatements()
59     {
60         $data = [
61             ['$a instanceof stdClass'],
62             ['strtolower("foo") instanceof stdClass'],
63             ['array(1) instanceof stdClass'],
64             ['(string) "foo" instanceof stdClass'],
65             ['(1+1) instanceof stdClass'],
66             ['"foo ${foo} $bar" instanceof stdClass'],
67             ['DateTime::ISO8601 instanceof stdClass'],
68         ];
69
70         return $data;
71     }
72 }