/** * {@inheritDoc} */ public function checkSignature(ReflectionClass $class, array $parameters) { $propertyName = 'signature' . $this->signatureGenerator->generateSignatureKey($parameters); $signature = $this->signatureGenerator->generateSignature($parameters); $defaultProperties = $class->getDefaultProperties(); if (!isset($defaultProperties[$propertyName])) { throw MissingSignatureException::fromMissingSignature($class, $parameters, $signature); } if ($defaultProperties[$propertyName] !== $signature) { throw InvalidSignatureException::fromInvalidSignature($class, $parameters, $defaultProperties[$propertyName], $signature); } }
public function testFromMissingSignature() { $exception = MissingSignatureException::fromMissingSignature(new ReflectionClass(__CLASS__), array('foo' => 'bar', 'baz' => 'tab'), 'expected-signature'); $this->assertInstanceOf('ProxyManager\\Signature\\Exception\\MissingSignatureException', $exception); $this->assertSame('No signature found for class "' . __CLASS__ . '", expected signature "expected-signature" for 2 parameters', $exception->getMessage()); }