* @license MIT * * @group Coverage */ class CallInitializerTest extends PHPUnit_Framework_TestCase { /** * @covers \ProxyManager\ProxyGenerator\LazyLoadingGhost\MethodGenerator\CallInitializer::__construct */ public function testBodyStructure() { $initializer = $this->getMock('Zend\\Code\\Generator\\PropertyGenerator'); $propertiesDefaults = $this->getMock('Zend\\Code\\Generator\\PropertyGenerator'); $initializationTracker = $this->getMock('Zend\\Code\\Generator\\PropertyGenerator'); $initializer->expects($this->any())->method('getName')->will($this->returnValue('init')); $propertiesDefaults->expects($this->any())->method('getName')->will($this->returnValue('props')); $initializationTracker->expects($this->any())->method('getName')->will($this->returnValue('track')); $callInitializer = new CallInitializer($initializer, $propertiesDefaults, $initializationTracker); $this->assertStringMatchesFormat( '%Aif ($this->track || ! $this->init) {%areturn;%a}%a' . '$this->track = true;%a' . 'foreach (self::$props as $key => $default) {%a' . '$this->$key = $default;%a' . '$this->init->__invoke(%a);%a' . '$this->track = false;', $callInitializer->getBody() ); } }