annotate core/tests/Drupal/Tests/Component/Annotation/PluginTest.php @ 19:fa3358dc1485 tip

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