123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100 |
- <?php
- namespace Drupal\Tests\Component\Annotation;
- use Drupal\Component\Annotation\Plugin;
- use PHPUnit\Framework\TestCase;
- /**
- * @coversDefaultClass \Drupal\Component\Annotation\Plugin
- * @group Annotation
- */
- class PluginTest extends TestCase {
- /**
- * @covers ::__construct
- * @covers ::parse
- * @covers ::get
- */
- 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());
- }
- /**
- * @covers ::getProvider
- */
- public function testGetProvider() {
- $plugin = new Plugin(['provider' => 'example']);
- $this->assertEquals('example', $plugin->getProvider());
- }
- /**
- * @covers ::setProvider
- */
- public function testSetProvider() {
- $plugin = new Plugin([]);
- $plugin->setProvider('example');
- $this->assertEquals('example', $plugin->getProvider());
- }
- /**
- * @covers ::getId
- */
- public function testGetId() {
- $plugin = new Plugin(['id' => 'example']);
- $this->assertEquals('example', $plugin->getId());
- }
- /**
- * @covers ::getClass
- */
- public function testGetClass() {
- $plugin = new Plugin(['class' => 'example']);
- $this->assertEquals('example', $plugin->getClass());
- }
- /**
- * @covers ::setClass
- */
- public function testSetClass() {
- $plugin = new Plugin([]);
- $plugin->setClass('example');
- $this->assertEquals('example', $plugin->getClass());
- }
- }
- /**
- * {@inheritdoc}
- */
- class PluginStub extends Plugin {
- protected $defaultProperty = 'testvalue';
- }
|