123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100 |
- <?php
- namespace Drupal\Tests\Component\Annotation;
- use Drupal\Component\Annotation\Plugin;
- use Drupal\Component\Annotation\Plugin\Discovery\AnnotatedClassDiscovery;
- use Drupal\Component\FileCache\FileCacheFactory;
- use PHPUnit\Framework\TestCase;
- /**
- * @coversDefaultClass \Drupal\Component\Annotation\Plugin\Discovery\AnnotatedClassDiscovery
- * @group Annotation
- */
- class AnnotatedClassDiscoveryTest extends TestCase {
- /**
- * {@inheritdoc}
- */
- protected function setUp() {
- parent::setUp();
- // Ensure the file cache is disabled.
- FileCacheFactory::setConfiguration([FileCacheFactory::DISABLE_CACHE => 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 {}
|