/**
  * Factory method for easy instantiation.
  *
  * @param string[] $additionalTags
  *
  * @return DocBlockFactory
  */
 public static function createInstance(array $additionalTags = [])
 {
     $fqsenResolver = new FqsenResolver();
     $tagFactory = new StandardTagFactory($fqsenResolver);
     $descriptionFactory = new DescriptionFactory($tagFactory);
     $tagFactory->addService($descriptionFactory);
     $tagFactory->addService(new TypeResolver($fqsenResolver));
     foreach ($additionalTags as $tagName => $tagClassName) {
         $tagFactory->registerTagHandler($tagName, $tagClassName);
     }
     return new self($descriptionFactory, $tagFactory);
 }
 /**
  * @covers ::registerTagHandler
  * @uses phpDocumentor\Reflection\DocBlock\StandardTagFactory::__construct
  * @uses phpDocumentor\Reflection\DocBlock\StandardTagFactory::addService
  * @expectedException \InvalidArgumentException
  */
 public function testHandlerRegistrationFailsIfProvidedHandlerDoesNotImplementTheTagInterface()
 {
     $resolver = m::mock(FqsenResolver::class);
     $tagFactory = new StandardTagFactory($resolver);
     $tagFactory->registerTagHandler('my-tag', 'stdClass');
 }