/** * @covers phpDocumentor\Descriptor\ClassDescriptor::getMagicMethods */ public function testGetMagicMethods() { $methodName = 'methodName'; $description = 'description'; $response = array('string'); $arguments = array('name' => 'argument'); $this->assertEquals(0, $this->fixture->getMagicMethods()->count()); $methodMock = m::mock('phpDocumentor\\Descriptor\\Tag\\MethodDescriptor'); $methodMock->shouldReceive('getMethodName')->andReturn($methodName); $methodMock->shouldReceive('getDescription')->andReturn($description); $methodMock->shouldReceive('getResponse')->andReturn($response); $methodMock->shouldReceive('getArguments')->andReturn($arguments); $this->fixture->getTags()->get('method', new Collection())->add($methodMock); $magicMethods = $this->fixture->getMagicMethods(); $this->assertCount(1, $magicMethods); /** @var MethodDescriptor $magicMethod */ $magicMethod = current($magicMethods->getAll()); $this->assertEquals($methodName, $magicMethod->getName()); $this->assertEquals($description, $magicMethod->getDescription()); $this->assertEquals($response, $magicMethod->getResponse()); $mock = m::mock('phpDocumentor\\Descriptor\\ClassDescriptor'); $mock->shouldReceive('getMagicMethods')->andReturn(new Collection(array('magicMethods'))); $this->fixture->setParent($mock); $magicMethods = $this->fixture->getMagicMethods(); $this->assertCount(2, $magicMethods); }
/** * @param ClassDescriptor $class * * @return MethodDescriptor[] */ public function getPublicMethods($class) { if (!$class instanceof ClassDescriptor) { return []; } $methods = $class->getMagicMethods()->merge($class->getInheritedMethods())->merge($class->getMethods()); return array_filter($methods->getAll(), function (MethodDescriptor $method) { return $method->getVisibility() == 'public'; }); }