assertEquals($keyword, $refl->getName()); $this->assertEquals($keyword, (string) $refl); } /** * @dataProvider languageConstructs */ public function testKnownLanguageConstructs($keyword) { $this->assertTrue(ReflectionLanguageConstruct::isLanguageConstruct($keyword)); } /** * @dataProvider languageConstructs */ public function testFileName($keyword) { $refl = new ReflectionLanguageConstruct($keyword); $this->assertFalse($refl->getFileName()); } /** * @dataProvider languageConstructs */ public function testReturnsReference($keyword) { $refl = new ReflectionLanguageConstruct($keyword); $this->assertFalse($refl->returnsReference()); } /** * @dataProvider languageConstructs */ public function testGetParameters($keyword) { $refl = new ReflectionLanguageConstruct($keyword); $this->assertNotEmpty($refl->getParameters()); } /** * @dataProvider languageConstructs * @expectedException \RuntimeException */ public function testExportThrows($keyword) { ReflectionLanguageConstruct::export($keyword); } public function languageConstructs() { return [ ['isset'], ['unset'], ['empty'], ['echo'], ['print'], ['die'], ['exit'], ]; } /** * @dataProvider unknownLanguageConstructs * @expectedException \InvalidArgumentException */ public function testUnknownLanguageConstructsThrowExceptions($keyword) { new ReflectionLanguageConstruct($keyword); } public function unknownLanguageConstructs() { return [ ['async'], ['await'], ['comefrom'], ]; } }