public function testDelegateReturnsNullAndExtensionsAddRelations() { $reflectionClass = new \ReflectionClass(get_class($this)); $extensionProphecy = $this->prophesize('Hateoas\\Configuration\\Metadata\\ConfigurationExtensionInterface'); $extensionProphecy->decorate(Argument::type('Hateoas\\Configuration\\Metadata\\ClassMetadataInterface'))->will(function ($args) { $args[0]->addRelation(new Relation('foo', 'bar')); })->shouldBeCalledTimes(1); $delegateDriverProphecy = $this->prophesize('Metadata\\Driver\\DriverInterface'); $delegateDriverProphecy->loadMetadataForClass($reflectionClass)->willReturn(null); $extensionDriver = new ExtensionDriver($delegateDriverProphecy->reveal(), array($extensionProphecy->reveal())); $this->assertInstanceOf('Hateoas\\Configuration\\Metadata\\ClassMetadataInterface', $extensionDriver->loadMetadataForClass($reflectionClass)); }