Chris@0: 'bar', Chris@0: 'biz' => [ Chris@0: 'baz' => 'boom', Chris@0: ], Chris@0: 'nestedAnnotation' => new Plugin([ Chris@0: 'foo' => 'bar', Chris@0: ]), Chris@0: ]); Chris@0: $this->assertEquals([ Chris@0: // This property wasn't in our definition but is defined as a property on Chris@0: // our plugin class. Chris@0: 'defaultProperty' => 'testvalue', Chris@0: 'foo' => 'bar', Chris@0: 'biz' => [ Chris@0: 'baz' => 'boom', Chris@0: ], Chris@0: 'nestedAnnotation' => [ Chris@0: 'foo' => 'bar', Chris@0: ], Chris@0: ], $plugin->get()); Chris@0: Chris@0: // Without default properties, we get a completely empty plugin definition. Chris@0: $plugin = new Plugin([]); Chris@0: $this->assertEquals([], $plugin->get()); Chris@0: } Chris@0: Chris@0: /** Chris@0: * @covers ::getProvider Chris@0: */ Chris@0: public function testGetProvider() { Chris@0: $plugin = new Plugin(['provider' => 'example']); Chris@0: $this->assertEquals('example', $plugin->getProvider()); Chris@0: } Chris@0: Chris@0: /** Chris@0: * @covers ::setProvider Chris@0: */ Chris@0: public function testSetProvider() { Chris@0: $plugin = new Plugin([]); Chris@0: $plugin->setProvider('example'); Chris@0: $this->assertEquals('example', $plugin->getProvider()); Chris@0: } Chris@0: Chris@0: /** Chris@0: * @covers ::getId Chris@0: */ Chris@0: public function testGetId() { Chris@0: $plugin = new Plugin(['id' => 'example']); Chris@0: $this->assertEquals('example', $plugin->getId()); Chris@0: } Chris@0: Chris@0: /** Chris@0: * @covers ::getClass Chris@0: */ Chris@0: public function testGetClass() { Chris@0: $plugin = new Plugin(['class' => 'example']); Chris@0: $this->assertEquals('example', $plugin->getClass()); Chris@0: } Chris@0: Chris@0: /** Chris@0: * @covers ::setClass Chris@0: */ Chris@0: public function testSetClass() { Chris@0: $plugin = new Plugin([]); Chris@0: $plugin->setClass('example'); Chris@0: $this->assertEquals('example', $plugin->getClass()); Chris@0: } Chris@0: Chris@0: } Chris@0: /** Chris@0: * {@inheritdoc} Chris@0: */ Chris@0: class PluginStub extends Plugin { Chris@0: protected $defaultProperty = 'testvalue'; Chris@0: Chris@0: }