Mercurial > hg > isophonics-drupal-site
view core/tests/Drupal/Tests/Component/Annotation/AnnotatedClassDiscoveryTest.php @ 19:fa3358dc1485 tip
Add ndrum files
author | Chris Cannam |
---|---|
date | Wed, 28 Aug 2019 13:14:47 +0100 |
parents | 1fec387a4317 |
children |
line wrap: on
line source
<?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 {}