annotate vendor/psy/psysh/test/Reflection/ReflectionLanguageConstructTest.php @ 19:fa3358dc1485 tip

Add ndrum files
author Chris Cannam
date Wed, 28 Aug 2019 13:14:47 +0100
parents c2387f117808
children
rev   line source
Chris@16 1 <?php
Chris@16 2
Chris@16 3 /*
Chris@16 4 * This file is part of Psy Shell.
Chris@16 5 *
Chris@16 6 * (c) 2012-2018 Justin Hileman
Chris@16 7 *
Chris@16 8 * For the full copyright and license information, please view the LICENSE
Chris@16 9 * file that was distributed with this source code.
Chris@16 10 */
Chris@16 11
Chris@16 12 namespace Psy\Test\Reflection;
Chris@16 13
Chris@16 14 use Psy\Reflection\ReflectionLanguageConstruct;
Chris@16 15
Chris@16 16 class ReflectionLanguageConstructTest extends \PHPUnit\Framework\TestCase
Chris@16 17 {
Chris@16 18 /**
Chris@16 19 * @dataProvider languageConstructs
Chris@16 20 */
Chris@16 21 public function testConstruction($keyword)
Chris@16 22 {
Chris@16 23 $refl = new ReflectionLanguageConstruct($keyword);
Chris@16 24 $this->assertEquals($keyword, $refl->getName());
Chris@16 25 $this->assertEquals($keyword, (string) $refl);
Chris@16 26 }
Chris@16 27
Chris@16 28 /**
Chris@16 29 * @dataProvider languageConstructs
Chris@16 30 */
Chris@16 31 public function testKnownLanguageConstructs($keyword)
Chris@16 32 {
Chris@16 33 $this->assertTrue(ReflectionLanguageConstruct::isLanguageConstruct($keyword));
Chris@16 34 }
Chris@16 35
Chris@16 36 /**
Chris@16 37 * @dataProvider languageConstructs
Chris@16 38 */
Chris@16 39 public function testFileName($keyword)
Chris@16 40 {
Chris@16 41 $refl = new ReflectionLanguageConstruct($keyword);
Chris@16 42 $this->assertFalse($refl->getFileName());
Chris@16 43 }
Chris@16 44
Chris@16 45 /**
Chris@16 46 * @dataProvider languageConstructs
Chris@16 47 */
Chris@16 48 public function testReturnsReference($keyword)
Chris@16 49 {
Chris@16 50 $refl = new ReflectionLanguageConstruct($keyword);
Chris@16 51 $this->assertFalse($refl->returnsReference());
Chris@16 52 }
Chris@16 53
Chris@16 54 /**
Chris@16 55 * @dataProvider languageConstructs
Chris@16 56 */
Chris@16 57 public function testGetParameters($keyword)
Chris@16 58 {
Chris@16 59 $refl = new ReflectionLanguageConstruct($keyword);
Chris@16 60 $this->assertNotEmpty($refl->getParameters());
Chris@16 61 }
Chris@16 62
Chris@16 63 /**
Chris@16 64 * @dataProvider languageConstructs
Chris@16 65 * @expectedException \RuntimeException
Chris@16 66 */
Chris@16 67 public function testExportThrows($keyword)
Chris@16 68 {
Chris@16 69 ReflectionLanguageConstruct::export($keyword);
Chris@16 70 }
Chris@16 71
Chris@16 72 public function languageConstructs()
Chris@16 73 {
Chris@16 74 return [
Chris@16 75 ['isset'],
Chris@16 76 ['unset'],
Chris@16 77 ['empty'],
Chris@16 78 ['echo'],
Chris@16 79 ['print'],
Chris@16 80 ['die'],
Chris@16 81 ['exit'],
Chris@16 82 ];
Chris@16 83 }
Chris@16 84
Chris@16 85 /**
Chris@16 86 * @dataProvider unknownLanguageConstructs
Chris@16 87 * @expectedException \InvalidArgumentException
Chris@16 88 */
Chris@16 89 public function testUnknownLanguageConstructsThrowExceptions($keyword)
Chris@16 90 {
Chris@16 91 new ReflectionLanguageConstruct($keyword);
Chris@16 92 }
Chris@16 93
Chris@16 94 public function unknownLanguageConstructs()
Chris@16 95 {
Chris@16 96 return [
Chris@16 97 ['async'],
Chris@16 98 ['await'],
Chris@16 99 ['comefrom'],
Chris@16 100 ];
Chris@16 101 }
Chris@16 102 }