Mercurial > hg > isophonics-drupal-site
view core/tests/Drupal/Tests/Component/Annotation/AnnotatedClassDiscoveryCachedTest.php @ 19:fa3358dc1485 tip
Add ndrum files
author | Chris Cannam |
---|---|
date | Wed, 28 Aug 2019 13:14:47 +0100 |
parents | 129ea1e6d783 |
children |
line wrap: on
line source
<?php namespace Drupal\Tests\Component\Annotation; 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 AnnotatedClassDiscoveryCachedTest extends TestCase { /** * {@inheritdoc} */ protected function setUp() { parent::setUp(); // Ensure FileCacheFactory::DISABLE_CACHE is *not* set, since we're testing // integration with the file cache. FileCacheFactory::setConfiguration([]); // Ensure that FileCacheFactory has a prefix. FileCacheFactory::setPrefix('prefix'); } /** * Test that getDefinitions() retrieves the file cache correctly. * * @covers ::getDefinitions */ public function testGetDefinitions() { // Path to the classes which we'll discover and parse annotation. $discovery_path = __DIR__ . '/Fixtures'; // File path that should be discovered within that directory. $file_path = $discovery_path . '/PluginNamespace/DiscoveryTest1.php'; $discovery = new AnnotatedClassDiscovery(['com\example' => [$discovery_path]]); $this->assertEquals([ 'discovery_test_1' => [ 'id' => 'discovery_test_1', 'class' => 'com\example\PluginNamespace\DiscoveryTest1', ], ], $discovery->getDefinitions()); // Gain access to the file cache so we can change it. $ref_file_cache = new \ReflectionProperty($discovery, 'fileCache'); $ref_file_cache->setAccessible(TRUE); /* @var $file_cache \Drupal\Component\FileCache\FileCacheInterface */ $file_cache = $ref_file_cache->getValue($discovery); // The file cache is keyed by the file path, and we'll add some known // content to test against. $file_cache->set($file_path, [ 'id' => 'wrong_id', 'content' => serialize(['an' => 'array']), ]); // Now perform the same query and check for the cached results. $this->assertEquals([ 'wrong_id' => [ 'an' => 'array', ], ], $discovery->getDefinitions()); } }