function AttributeBridgeDecoratorTest::testGetDefinitions

Same name and namespace in other branches
  1. 10 core/tests/Drupal/Tests/Component/Plugin/Discovery/AttributeBridgeDecoratorTest.php \Drupal\Tests\Component\Plugin\Discovery\AttributeBridgeDecoratorTest::testGetDefinitions()

@covers ::getDefinitions

File

core/tests/Drupal/Tests/Component/Plugin/Discovery/AttributeBridgeDecoratorTest.php, line 22

Class

AttributeBridgeDecoratorTest
@coversDefaultClass <a href="/api/drupal/core%21lib%21Drupal%21Component%21Annotation%21Plugin%21Discovery%21AnnotationBridgeDecorator.php/class/AnnotationBridgeDecorator/11.x" title="Ensures that all definitions are run through the annotation process." class="local">\Drupal\Component\Annotation\Plugin\Discovery\AnnotationBridgeDecorator</a> @group Plugin

Namespace

Drupal\Tests\Component\Plugin\Discovery

Code

public function testGetDefinitions() : void {
    // Normally the attribute classes would be autoloaded.
    include_once __DIR__ . '/../Attribute/Fixtures/CustomPlugin.php';
    include_once __DIR__ . '/../Attribute/Fixtures/Plugins/PluginNamespace/AttributeDiscoveryTest1.php';
    $definitions = [];
    $definitions['object'] = new ObjectDefinition([
        'id' => 'foo',
    ]);
    $definitions['array'] = [
        'id' => 'bar',
        'class' => 'com\\example\\PluginNamespace\\AttributeDiscoveryTest1',
    ];
    $discovery = $this->createMock(DiscoveryInterface::class);
    $discovery->expects($this->any())
        ->method('getDefinitions')
        ->willReturn($definitions);
    $decorator = new AttributeBridgeDecorator($discovery, TestAttribute::class);
    $expected = [
        'object' => new ObjectDefinition([
            'id' => 'foo',
        ]),
        'array' => (new ObjectDefinition([
            'id' => 'bar',
        ]))->setClass('com\\example\\PluginNamespace\\AttributeDiscoveryTest1'),
    ];
    $this->assertEquals($expected, $decorator->getDefinitions());
}

Buggy or inaccurate documentation? Please file an issue. Need support? Need help programming? Connect with the Drupal community.