function PluginTest::testGet

Same name in this branch
  1. 11.x core/tests/Drupal/Tests/Component/Plugin/Attribute/PluginTest.php \Drupal\Tests\Component\Plugin\Attribute\PluginTest::testGet()
Same name in other branches
  1. 9 core/tests/Drupal/Tests/Component/Annotation/PluginTest.php \Drupal\Tests\Component\Annotation\PluginTest::testGet()
  2. 8.9.x core/tests/Drupal/Tests/Component/Annotation/PluginTest.php \Drupal\Tests\Component\Annotation\PluginTest::testGet()
  3. 10 core/tests/Drupal/Tests/Component/Annotation/PluginTest.php \Drupal\Tests\Component\Annotation\PluginTest::testGet()
  4. 10 core/tests/Drupal/Tests/Component/Plugin/Attribute/PluginTest.php \Drupal\Tests\Component\Plugin\Attribute\PluginTest::testGet()

@covers ::__construct @covers ::parse @covers ::get

File

core/tests/Drupal/Tests/Component/Annotation/PluginTest.php, line 21

Class

PluginTest
@coversDefaultClass \Drupal\Component\Annotation\Plugin @group Annotation

Namespace

Drupal\Tests\Component\Annotation

Code

public function testGet() : void {
    // Assert all values are accepted through constructor and default value is
    // used for non existent but defined property.
    $plugin = new PluginStub([
        1 => 'oak',
        'foo' => 'bar',
        'biz' => [
            'baz' => 'boom',
        ],
        'nestedAnnotation' => new Plugin([
            'foo' => 'bar',
        ]),
    ]);
    $this->assertEquals([
        // This property wasn't in our definition but is defined as a property on
        // our plugin class.
'defaultProperty' => 'test_value',
        1 => 'oak',
        'foo' => 'bar',
        'biz' => [
            'baz' => 'boom',
        ],
        'nestedAnnotation' => [
            'foo' => 'bar',
        ],
    ], $plugin->get());
    // Without default properties, we get a completely empty plugin definition.
    $plugin = new Plugin([]);
    $this->assertEquals([], $plugin->get());
}

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