public function testDelegatorFromCallback() { $realService = $this->getMock('stdClass', array(), array(), 'RealService'); $delegator = $this->getMock('stdClass', array(), array(), 'Delegator'); $delegatorFactoryCallback = function ($serviceManager, $cName, $rName, $callback) use($delegator) { $delegator->real = call_user_func($callback); return $delegator; }; $this->serviceManager->setFactory('foo-service', function () use($realService) { return $realService; }); $this->serviceManager->addDelegator('foo-service', $delegatorFactoryCallback); $service = $this->serviceManager->create('foo-service'); $this->assertSame($delegator, $service); $this->assertSame($realService, $service->real); }