TRUE]); // Ensure that FileCacheFactory has a prefix. FileCacheFactory::setPrefix('prefix'); } /** * @covers ::__construct * @covers ::getPluginNamespaces */ public function testGetPluginNamespaces() { $discovery = new AnnotatedClassDiscovery(['com/example' => [__DIR__]]); $reflection = new \ReflectionMethod($discovery, 'getPluginNamespaces'); $reflection->setAccessible(TRUE); $result = $reflection->invoke($discovery); $this->assertEquals(['com/example' => [__DIR__]], $result); } /** * @covers ::getDefinitions * @covers ::prepareAnnotationDefinition * @covers ::getAnnotationReader */ public function testGetDefinitions() { $discovery = new AnnotatedClassDiscovery(['com\example' => [__DIR__ . '/Fixtures']]); $this->assertEquals([ 'discovery_test_1' => [ 'id' => 'discovery_test_1', 'class' => 'com\example\PluginNamespace\DiscoveryTest1', ], ], $discovery->getDefinitions()); $custom_annotation_discovery = new AnnotatedClassDiscovery(['com\example' => [__DIR__ . '/Fixtures']], CustomPlugin::class, ['Drupal\Tests\Component\Annotation']); $this->assertEquals([ 'discovery_test_1' => [ 'id' => 'discovery_test_1', 'class' => 'com\example\PluginNamespace\DiscoveryTest1', 'title' => 'Discovery test plugin', ], ], $custom_annotation_discovery->getDefinitions()); $empty_discovery = new AnnotatedClassDiscovery(['com\example' => [__DIR__ . '/Fixtures']], CustomPlugin2::class, ['Drupal\Tests\Component\Annotation']); $this->assertEquals([], $empty_discovery->getDefinitions()); } } /** * Custom plugin annotation. * * @Annotation */ class CustomPlugin extends Plugin { /** * The plugin ID. * * @var string */ public $id; /** * The plugin title. * * @var string * * @ingroup plugin_translatable */ public $title = ''; } /** * Custom plugin annotation. * * @Annotation */ class CustomPlugin2 extends Plugin {}