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