You are here

public function PluginTest::testGet in Drupal 9

Same name and namespace in other branches
  1. 8 core/tests/Drupal/Tests/Component/Annotation/PluginTest.php \Drupal\Tests\Component\Annotation\PluginTest::testGet()
  2. 10 core/tests/Drupal/Tests/Component/Annotation/PluginTest.php \Drupal\Tests\Component\Annotation\PluginTest::testGet()

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

File

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

Class

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

Namespace

Drupal\Tests\Component\Annotation

Code

public function testGet() {

  // 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' => 'testvalue',
    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());
}