/**
  * @covers phpDocumentor\Descriptor\ClassDescriptor::setMethods
  * @covers phpDocumentor\Descriptor\ClassDescriptor::getMethods
  */
 public function testSettingAndGettingMethods()
 {
     $this->assertInstanceOf('phpDocumentor\\Descriptor\\Collection', $this->fixture->getMethods());
     $mock = m::mock('phpDocumentor\\Descriptor\\Collection');
     $this->fixture->setMethods($mock);
     $this->assertSame($mock, $this->fixture->getMethods());
 }
 /**
  * @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';
     });
 }
 /**
  * @param string $name The name of the current method.
  *
  * @return MethodDescriptor
  */
 protected function whenFixtureHasMethodInParentClassWithSameName($name)
 {
     $result = new MethodDescriptor();
     $result->setName($name);
     $parent = new ClassDescriptor();
     $parent->getMethods()->set($name, $result);
     $class = new ClassDescriptor();
     $class->setParent($parent);
     $this->fixture->setParent($class);
     return $result;
 }