* @license MIT * * @group Coverage */ class MagicSetTest extends PHPUnit_Framework_TestCase { /** * @covers \ProxyManager\ProxyGenerator\LazyLoadingValueHolder\MethodGenerator\MagicSet::__construct */ public function testBodyStructure() { $reflection = new ReflectionClass('ProxyManagerTestAsset\\EmptyClass'); $initializer = $this->getMock('Zend\\Code\\Generator\\PropertyGenerator'); $valueHolder = $this->getMock('Zend\\Code\\Generator\\PropertyGenerator'); $publicProperties = $this ->getMockBuilder('ProxyManager\\ProxyGenerator\\PropertyGenerator\\PublicPropertiesMap') ->disableOriginalConstructor() ->getMock(); $initializer->expects($this->any())->method('getName')->will($this->returnValue('foo')); $valueHolder->expects($this->any())->method('getName')->will($this->returnValue('bar')); $publicProperties->expects($this->any())->method('isEmpty')->will($this->returnValue(false)); $publicProperties->expects($this->any())->method('getName')->will($this->returnValue('bar')); $magicSet = new MagicSet($reflection, $initializer, $valueHolder, $publicProperties); $this->assertSame('__set', $magicSet->getName()); $this->assertCount(2, $magicSet->getParameters()); $this->assertStringMatchesFormat( "\$this->foo && \$this->foo->__invoke(\$this->bar, \$this, " . "'__set', array('name' => \$name, 'value' => \$value), \$this->foo);\n\n" . "if (isset(self::\$bar[\$name])) {\n return (\$this->bar->\$name = \$value);\n}" . "%areturn %s;", $magicSet->getBody() ); } }