Chris@13: setPass(new CalledClassPass()); Chris@13: } Chris@13: Chris@13: /** Chris@13: * @dataProvider invalidStatements Chris@13: * @expectedException \Psy\Exception\ErrorException Chris@13: */ Chris@13: public function testProcessStatementFails($code) Chris@13: { Chris@13: $this->parseAndTraverse($code); Chris@13: } Chris@13: Chris@13: public function invalidStatements() Chris@13: { Chris@13: return [ Chris@13: ['get_class()'], Chris@13: ['get_class(null)'], Chris@13: ['get_called_class()'], Chris@13: ['get_called_class(null)'], Chris@13: ['function foo() { return get_class(); }'], Chris@13: ['function foo() { return get_class(null); }'], Chris@13: ['function foo() { return get_called_class(); }'], Chris@13: ['function foo() { return get_called_class(null); }'], Chris@13: ]; Chris@13: } Chris@13: Chris@13: /** Chris@13: * @dataProvider validStatements Chris@13: */ Chris@13: public function testProcessStatementPasses($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: return [ Chris@13: ['get_class($foo)'], Chris@13: ['get_class(bar())'], Chris@13: ['get_called_class($foo)'], Chris@13: ['get_called_class(bar())'], Chris@13: ['function foo($bar) { return get_class($bar); }'], Chris@13: ['function foo($bar) { return get_called_class($bar); }'], Chris@13: ['class Foo { function bar() { return get_class(); } }'], Chris@13: ['class Foo { function bar() { return get_class(null); } }'], Chris@13: ['class Foo { function bar() { return get_called_class(); } }'], Chris@13: ['class Foo { function bar() { return get_called_class(null); } }'], Chris@13: ['$foo = function () {}; $foo()'], Chris@13: ]; Chris@13: } Chris@13: Chris@13: /** Chris@13: * @dataProvider validTraitStatements Chris@13: */ Chris@13: public function testProcessTraitStatementPasses($code) Chris@13: { Chris@13: $this->parseAndTraverse($code); Chris@13: $this->assertTrue(true); Chris@13: } Chris@13: Chris@13: public function validTraitStatements() Chris@13: { Chris@13: return [ Chris@13: ['trait Foo { function bar() { return get_class(); } }'], Chris@13: ['trait Foo { function bar() { return get_class(null); } }'], Chris@13: ['trait Foo { function bar() { return get_called_class(); } }'], Chris@13: ['trait Foo { function bar() { return get_called_class(null); } }'], Chris@13: ]; Chris@13: } Chris@13: }