/**
  * @covers phpDocumentor\Descriptor\Filter\Filter::filter
  */
 public function testFilter()
 {
     $filterableMock = m::mock('phpDocumentor\\Descriptor\\Filter\\Filterable');
     $this->filterChainMock->shouldReceive('filter')->with($filterableMock)->andReturn($filterableMock);
     $this->classFactoryMock->shouldReceive('getChainFor')->with(get_class($filterableMock))->andReturn($this->filterChainMock);
     $this->assertSame($filterableMock, $this->fixture->filter($filterableMock));
 }
 /**
  * Attaches the filter responsible for the conversion to all structural elements.
  *
  * @param ProjectDescriptorBuilder $builder
  * @param Filter                   $filterManager
  *
  * @return void
  */
 private function addNamespaceFilter(ProjectDescriptorBuilder $builder, Filter $filterManager)
 {
     $filter = new LegacyNamespaceFilter($builder);
     // parse parameters
     foreach ($this->plugin->getParameters() as $param) {
         if ($param->getKey() == 'NamespacePrefix') {
             $filter->setNamespacePrefix($param->getValue());
         }
     }
     $filterManager->attach('phpDocumentor\\Descriptor\\ConstantDescriptor', $filter);
     $filterManager->attach('phpDocumentor\\Descriptor\\FunctionDescriptor', $filter);
     $filterManager->attach('phpDocumentor\\Descriptor\\InterfaceDescriptor', $filter);
     $filterManager->attach('phpDocumentor\\Descriptor\\TraitDescriptor', $filter);
     $filterManager->attach('phpDocumentor\\Descriptor\\PropertyDescriptor', $filter);
     $filterManager->attach('phpDocumentor\\Descriptor\\FileDescriptor', $filter);
     $filterManager->attach('phpDocumentor\\Descriptor\\ClassDescriptor', $filter);
 }
 /**
  * Attaches filters to the manager.
  *
  * @param Filter $filterManager
  * @param Application $app
  *
  * @return Filter
  */
 public function attachFiltersToManager(Filter $filterManager, Application $app)
 {
     $stripOnVisibility = new StripOnVisibility($app['descriptor.builder']);
     $filtersOnAllDescriptors = array(new StripInternal($app['descriptor.builder']), new StripIgnore($app['descriptor.builder']));
     foreach ($filtersOnAllDescriptors as $filter) {
         $filterManager->attach('phpDocumentor\\Descriptor\\ConstantDescriptor', $filter);
         $filterManager->attach('phpDocumentor\\Descriptor\\FunctionDescriptor', $filter);
         $filterManager->attach('phpDocumentor\\Descriptor\\InterfaceDescriptor', $filter);
         $filterManager->attach('phpDocumentor\\Descriptor\\TraitDescriptor', $filter);
         $filterManager->attach('phpDocumentor\\Descriptor\\PropertyDescriptor', $filter);
         $filterManager->attach('phpDocumentor\\Descriptor\\MethodDescriptor', $filter);
     }
     $filterManager->attach('phpDocumentor\\Descriptor\\PropertyDescriptor', $stripOnVisibility);
     $filterManager->attach('phpDocumentor\\Descriptor\\MethodDescriptor', $stripOnVisibility);
     return $filterManager;
 }
 /**
  * Analyzes a Descriptor and alters its state based on its state or even removes the descriptor.
  *
  * @param Filterable $descriptor
  *
  * @return Filterable
  */
 public function filter(Filterable $descriptor)
 {
     return $this->filter->filter($descriptor);
 }