setPass(new StaticConstructorPass()); } /** * @dataProvider invalidStatements * @expectedException \Psy\Exception\FatalErrorException */ public function testProcessInvalidStatement($code) { $stmts = $this->parse($code); $this->traverser->traverse($stmts); } /** * @dataProvider invalidParserStatements * @expectedException \Psy\Exception\ParseErrorException */ public function testProcessInvalidStatementCatchedByParser($code) { $stmts = $this->parse($code); $this->traverser->traverse($stmts); } public function invalidStatements() { $statements = array( array('class A { public static function A() {}}'), array('class A { private static function A() {}}'), ); if (version_compare(PHP_VERSION, '5.3.3', '<')) { $statements[] = array('namespace B; class A { private static function A() {}}'); } return $statements; } public function invalidParserStatements() { $statements = array( array('class A { public static function __construct() {}}'), array('class A { private static function __construct() {}}'), array('class A { private static function __construct() {} public function A() {}}'), array('namespace B; class A { private static function __construct() {}}'), ); return $statements; } /** * @dataProvider validStatements */ public function testProcessValidStatement($code) { $stmts = $this->parse($code); $this->traverser->traverse($stmts); } public function validStatements() { $statements = array( array('class A { public static function A() {} public function __construct() {}}'), array('class A { private function __construct() {} public static function A() {}}'), ); if (version_compare(PHP_VERSION, '5.3.3', '>=')) { $statements[] = array('namespace B; class A { private static function A() {}}'); } return $statements; } }