class AnnotatedClassDiscoveryCachedTest in Drupal 9
Same name and namespace in other branches
- 8 core/tests/Drupal/Tests/Component/Annotation/AnnotatedClassDiscoveryCachedTest.php \Drupal\Tests\Component\Annotation\AnnotatedClassDiscoveryCachedTest
- 10 core/tests/Drupal/Tests/Component/Annotation/AnnotatedClassDiscoveryCachedTest.php \Drupal\Tests\Component\Annotation\AnnotatedClassDiscoveryCachedTest
@coversDefaultClass \Drupal\Component\Annotation\Plugin\Discovery\AnnotatedClassDiscovery @group Annotation @runTestsInSeparateProcesses
Hierarchy
- class \Drupal\Tests\Component\Annotation\AnnotatedClassDiscoveryCachedTest extends \PHPUnit\Framework\TestCase
Expanded class hierarchy of AnnotatedClassDiscoveryCachedTest
File
- core/tests/ Drupal/ Tests/ Component/ Annotation/ AnnotatedClassDiscoveryCachedTest.php, line 14 
Namespace
Drupal\Tests\Component\AnnotationView source
class AnnotatedClassDiscoveryCachedTest extends TestCase {
  /**
   * {@inheritdoc}
   */
  protected function setUp() : void {
    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');
  }
  /**
   * Tests 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 \Drupal\Component\FileCache\FileCacheInterface $file_cache */
    $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());
  }
}Members
| Name   | Modifiers | Type | Description | Overrides | 
|---|---|---|---|---|
| AnnotatedClassDiscoveryCachedTest:: | protected | function | ||
| AnnotatedClassDiscoveryCachedTest:: | public | function | Tests that getDefinitions() retrieves the file cache correctly. | 
