* @license MIT * * @covers \ProxyManager\Signature\ClassSignatureGenerator * @group Coverage */ class ClassSignatureGeneratorTest extends PHPUnit_Framework_TestCase { /** * @var \ProxyManager\Signature\SignatureGeneratorInterface|\PHPUnit_Framework_MockObject_MockObject */ private $signatureGenerator; /** * @var ClassSignatureGenerator */ private $classSignatureGenerator; /** * {@inheritDoc} */ protected function setUp() { $this->signatureGenerator = $this->getMock('ProxyManager\\Signature\\SignatureGeneratorInterface'); $this->classSignatureGenerator = new ClassSignatureGenerator($this->signatureGenerator); } public function testAddSignature() { /* @var $classGenerator \PHPUnit_Framework_MockObject_MockObject|\Zend\Code\Generator\ClassGenerator */ $classGenerator = $this->getMock('Zend\\Code\\Generator\\ClassGenerator'); $classGenerator ->expects($this->once()) ->method('addPropertyFromGenerator') ->with($this->callback(function (PropertyGenerator $property) { return $property->getName() === 'signaturePropertyName' && $property->isStatic() && $property->getVisibility() === 'private' && $property->getDefaultValue()->getValue() === 'valid-signature'; })); $this ->signatureGenerator ->expects($this->any()) ->method('generateSignature') ->with(array('foo' => 'bar')) ->will($this->returnValue('valid-signature')); $this ->signatureGenerator ->expects($this->any()) ->method('generateSignatureKey') ->with(array('foo' => 'bar')) ->will($this->returnValue('PropertyName')); $this->classSignatureGenerator->addSignature($classGenerator, array('foo' => 'bar')); } }