Chris@13: setPass(new ValidConstructorPass()); Chris@13: } Chris@13: Chris@13: /** Chris@13: * @dataProvider invalidStatements Chris@13: * @expectedException \Psy\Exception\FatalErrorException Chris@13: */ Chris@13: public function testProcessInvalidStatement($code) Chris@13: { Chris@13: $this->parseAndTraverse($code); Chris@13: } Chris@13: Chris@13: /** Chris@13: * @dataProvider invalidParserStatements Chris@13: * @expectedException \Psy\Exception\ParseErrorException Chris@13: */ Chris@13: public function testProcessInvalidStatementCatchedByParser($code) Chris@13: { Chris@13: $this->parseAndTraverse($code); Chris@13: } Chris@13: Chris@13: public function invalidStatements() Chris@13: { Chris@13: $data = [ Chris@13: ['class A { public static function A() {}}'], Chris@13: ['class A { public static function a() {}}'], Chris@13: ['class A { private static function A() {}}'], Chris@13: ['class A { private static function a() {}}'], Chris@13: ]; Chris@13: Chris@17: if (\version_compare(PHP_VERSION, '7.0', '>=')) { Chris@13: $data[] = ['class A { public function A(): ?array {}}']; Chris@13: $data[] = ['class A { public function a(): ?array {}}']; Chris@13: } Chris@13: Chris@13: return $data; Chris@13: } Chris@13: Chris@13: public function invalidParserStatements() Chris@13: { Chris@13: return [ Chris@13: ['class A { public static function __construct() {}}'], Chris@13: ['class A { private static function __construct() {}}'], Chris@13: ['class A { private static function __construct() {} public function A() {}}'], Chris@13: ['namespace B; class A { private static function __construct() {}}'], Chris@13: ]; Chris@13: } Chris@13: Chris@13: /** Chris@13: * @dataProvider validStatements Chris@13: */ Chris@13: public function testProcessValidStatement($code) Chris@13: { Chris@13: $this->parseAndTraverse($code); Chris@13: $this->assertTrue(true); Chris@13: } Chris@13: Chris@13: public function validStatements() Chris@13: { Chris@13: $data = [ Chris@13: ['class A { public static function A() {} public function __construct() {}}'], Chris@13: ['class A { private function __construct() {} public static function A() {}}'], Chris@13: ['namespace B; class A { private static function A() {}}'], Chris@13: ]; Chris@13: Chris@17: if (\version_compare(PHP_VERSION, '7.0', '>=')) { Chris@13: $data[] = ['class A { public static function A() {} public function __construct() {}}']; Chris@13: $data[] = ['class A { private function __construct() {} public static function A(): ?array {}}']; Chris@13: $data[] = ['namespace B; class A { private static function A(): ?array {}}']; Chris@13: } Chris@13: Chris@13: return $data; Chris@13: } Chris@13: }