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