/** * @requires PHP 5.4.0 */ public function testGetSelfMethods_with_trait() { // fixture $trait = 'trait' . __FUNCTION__ . md5(uniqid()); $class = __FUNCTION__ . md5(uniqid()); eval("trait {$trait} {\n\t\t\tprotected function foo(){}\n\t\t\tprotected function bar(){}\n\t\t}"); eval("class {$class} {\n\t\t\tuse {$trait};\n\t\t\tprotected function bar(){} // override\n\t\t\tprotected function baz(){}\n\t\t}"); // expectation $expected = array(new \ReflectionMethod($class, 'bar'), new \ReflectionMethod($class, 'baz')); $reflectionClass = new ReflectionClass($class); $actual = $reflectionClass->getSelfMethods(); $this->assertEquals($expected, $actual); }