annotate core/tests/Drupal/Tests/Component/Annotation/PluginTest.php @ 4:a9cd425dd02b

Update, including to Drupal core 8.6.10
author Chris Cannam
date Thu, 28 Feb 2019 13:11:55 +0000
parents c75dbcec494b
children
rev   line source
Chris@0 1 <?php
Chris@0 2
Chris@0 3 namespace Drupal\Tests\Component\Annotation;
Chris@0 4
Chris@0 5 use Drupal\Component\Annotation\Plugin;
Chris@0 6 use PHPUnit\Framework\TestCase;
Chris@0 7
Chris@0 8 /**
Chris@0 9 * @coversDefaultClass \Drupal\Component\Annotation\Plugin
Chris@0 10 * @group Annotation
Chris@0 11 */
Chris@0 12 class PluginTest extends TestCase {
Chris@0 13
Chris@0 14 /**
Chris@0 15 * @covers ::__construct
Chris@0 16 * @covers ::parse
Chris@0 17 * @covers ::get
Chris@0 18 */
Chris@0 19 public function testGet() {
Chris@0 20 // Assert all values are accepted through constructor and default value is
Chris@0 21 // used for non existent but defined property.
Chris@0 22 $plugin = new PluginStub([
Chris@0 23 'foo' => 'bar',
Chris@0 24 'biz' => [
Chris@0 25 'baz' => 'boom',
Chris@0 26 ],
Chris@0 27 'nestedAnnotation' => new Plugin([
Chris@0 28 'foo' => 'bar',
Chris@0 29 ]),
Chris@0 30 ]);
Chris@0 31 $this->assertEquals([
Chris@0 32 // This property wasn't in our definition but is defined as a property on
Chris@0 33 // our plugin class.
Chris@0 34 'defaultProperty' => 'testvalue',
Chris@0 35 'foo' => 'bar',
Chris@0 36 'biz' => [
Chris@0 37 'baz' => 'boom',
Chris@0 38 ],
Chris@0 39 'nestedAnnotation' => [
Chris@0 40 'foo' => 'bar',
Chris@0 41 ],
Chris@0 42 ], $plugin->get());
Chris@0 43
Chris@0 44 // Without default properties, we get a completely empty plugin definition.
Chris@0 45 $plugin = new Plugin([]);
Chris@0 46 $this->assertEquals([], $plugin->get());
Chris@0 47 }
Chris@0 48
Chris@0 49 /**
Chris@0 50 * @covers ::getProvider
Chris@0 51 */
Chris@0 52 public function testGetProvider() {
Chris@0 53 $plugin = new Plugin(['provider' => 'example']);
Chris@0 54 $this->assertEquals('example', $plugin->getProvider());
Chris@0 55 }
Chris@0 56
Chris@0 57 /**
Chris@0 58 * @covers ::setProvider
Chris@0 59 */
Chris@0 60 public function testSetProvider() {
Chris@0 61 $plugin = new Plugin([]);
Chris@0 62 $plugin->setProvider('example');
Chris@0 63 $this->assertEquals('example', $plugin->getProvider());
Chris@0 64 }
Chris@0 65
Chris@0 66 /**
Chris@0 67 * @covers ::getId
Chris@0 68 */
Chris@0 69 public function testGetId() {
Chris@0 70 $plugin = new Plugin(['id' => 'example']);
Chris@0 71 $this->assertEquals('example', $plugin->getId());
Chris@0 72 }
Chris@0 73
Chris@0 74 /**
Chris@0 75 * @covers ::getClass
Chris@0 76 */
Chris@0 77 public function testGetClass() {
Chris@0 78 $plugin = new Plugin(['class' => 'example']);
Chris@0 79 $this->assertEquals('example', $plugin->getClass());
Chris@0 80 }
Chris@0 81
Chris@0 82 /**
Chris@0 83 * @covers ::setClass
Chris@0 84 */
Chris@0 85 public function testSetClass() {
Chris@0 86 $plugin = new Plugin([]);
Chris@0 87 $plugin->setClass('example');
Chris@0 88 $this->assertEquals('example', $plugin->getClass());
Chris@0 89 }
Chris@0 90
Chris@0 91 }
Chris@0 92 /**
Chris@0 93 * {@inheritdoc}
Chris@0 94 */
Chris@0 95 class PluginStub extends Plugin {
Chris@0 96 protected $defaultProperty = 'testvalue';
Chris@0 97
Chris@0 98 }