4 * This file is part of Psy Shell.
6 * (c) 2012-2018 Justin Hileman
8 * For the full copyright and license information, please view the LICENSE
9 * file that was distributed with this source code.
12 namespace Psy\Test\Reflection;
14 use Psy\Reflection\ReflectionLanguageConstruct;
16 class ReflectionLanguageConstructTest extends \PHPUnit\Framework\TestCase
19 * @dataProvider languageConstructs
21 public function testConstruction($keyword)
23 $refl = new ReflectionLanguageConstruct($keyword);
24 $this->assertEquals($keyword, $refl->getName());
25 $this->assertEquals($keyword, (string) $refl);
29 * @dataProvider languageConstructs
31 public function testKnownLanguageConstructs($keyword)
33 $this->assertTrue(ReflectionLanguageConstruct::isLanguageConstruct($keyword));
37 * @dataProvider languageConstructs
39 public function testFileName($keyword)
41 $refl = new ReflectionLanguageConstruct($keyword);
42 $this->assertFalse($refl->getFileName());
46 * @dataProvider languageConstructs
48 public function testReturnsReference($keyword)
50 $refl = new ReflectionLanguageConstruct($keyword);
51 $this->assertFalse($refl->returnsReference());
55 * @dataProvider languageConstructs
57 public function testGetParameters($keyword)
59 $refl = new ReflectionLanguageConstruct($keyword);
60 $this->assertNotEmpty($refl->getParameters());
64 * @dataProvider languageConstructs
65 * @expectedException \RuntimeException
67 public function testExportThrows($keyword)
69 ReflectionLanguageConstruct::export($keyword);
72 public function languageConstructs()
86 * @dataProvider unknownLanguageConstructs
87 * @expectedException \InvalidArgumentException
89 public function testUnknownLanguageConstructsThrowExceptions($keyword)
91 new ReflectionLanguageConstruct($keyword);
94 public function unknownLanguageConstructs()