* @license MIT * * @covers \ProxyManager\Signature\SignatureChecker * @group Coverage */ class SignatureCheckerTest extends PHPUnit_Framework_TestCase { /** * @var string */ protected $signatureExample = 'valid-signature'; /** * @var SignatureChecker */ private $signatureChecker; /** * @var \ProxyManager\Signature\SignatureGeneratorInterface|\PHPUnit_Framework_MockObject_MockObject */ private $signatureGenerator; /** * {@inheritDoc} */ protected function setUp() { $this->signatureGenerator = $this->getMock('ProxyManager\Signature\SignatureGeneratorInterface'); $this->signatureChecker = new SignatureChecker($this->signatureGenerator); } public function testCheckSignatureWithValidKey() { $this ->signatureGenerator ->expects($this->atLeastOnce()) ->method('generateSignatureKey') ->with(array('foo' => 'bar')) ->will($this->returnValue('Example')); $this ->signatureGenerator ->expects($this->atLeastOnce()) ->method('generateSignature') ->with(array('foo' => 'bar')) ->will($this->returnValue('valid-signature')); $this->signatureChecker->checkSignature(new ReflectionClass($this), array('foo' => 'bar')); } public function testCheckSignatureWithInvalidKey() { $this ->signatureGenerator ->expects($this->any()) ->method('generateSignatureKey') ->with(array('foo' => 'bar')) ->will($this->returnValue('InvalidKey')); $this ->signatureGenerator ->expects($this->any()) ->method('generateSignature') ->with(array('foo' => 'bar')) ->will($this->returnValue('valid-signature')); $this->setExpectedException('ProxyManager\Signature\Exception\MissingSignatureException'); $this->signatureChecker->checkSignature(new ReflectionClass($this), array('foo' => 'bar')); } public function testCheckSignatureWithInvalidValue() { $this ->signatureGenerator ->expects($this->any()) ->method('generateSignatureKey') ->with(array('foo' => 'bar')) ->will($this->returnValue('Example')); $this ->signatureGenerator ->expects($this->any()) ->method('generateSignature') ->with(array('foo' => 'bar')) ->will($this->returnValue('invalid-signature')); $this->setExpectedException('ProxyManager\Signature\Exception\InvalidSignatureException'); $this->signatureChecker->checkSignature(new ReflectionClass($this), array('foo' => 'bar')); } }