public function testEmulatedProvider() { /** @var \PHPUnit_Framework_MockObject_MockObject|MetadataProviderInterface $provider */ $provider = $this->getMock('Oro\\Bundle\\SecurityBundle\\Owner\\Metadata\\MetadataProviderInterface'); $provider->expects($this->any())->method('supports')->willReturn(true); /** @var \PHPUnit_Framework_MockObject_MockObject|MetadataProviderInterface $emulated */ $emulated = $this->getMock('Oro\\Bundle\\SecurityBundle\\Owner\\Metadata\\MetadataProviderInterface'); $chain = new ChainMetadataProvider(); $chain->addProvider('alias', $provider); $chain->addProvider('emulated', $emulated); $chain->startProviderEmulation('emulated'); $provider->expects($this->never())->method('getBasicLevelClass'); $emulated->expects($this->once())->method('getBasicLevelClass')->willReturn('\\stdClass'); $this->assertEquals('\\stdClass', $chain->getBasicLevelClass()); $chain->stopProviderEmulation(); $emulated->expects($this->never())->method('getSystemLevelClass'); $provider->expects($this->once())->method('getSystemLevelClass')->willReturn('\\stdClass'); $this->assertEquals('\\stdClass', $chain->getSystemLevelClass()); }