public validate ( ReflectionParameter $parameter, $argument ) | ||
$parameter | ReflectionParameter |
public function validate(\ReflectionParameter $parameter, $argument)
{
if ($parameter->isArray()) {
if ($parameter->allowsNull() && is_null($argument)) {
return;
}
$this->validateArrayArgument($argument);
} elseif ($parameter->getClass()) {
$this->validateObjectArgument($parameter->getClass()->getName(), $argument, $parameter->allowsNull());
}
// other arguments don't need to be or can't be validated
}
public function testFailsIfExpressionCouldNotBeEvaluated() { $this->skipTestIfExpressionsAreNotAvailable(); $class = 'Matthias\\SymfonyServiceDefinitionValidator\\Tests\\Fixtures\\ClassWithTypeHintedConstructorArgument'; $parameter = new \ReflectionParameter(array($class, '__construct'), 'expected'); $argument = new Expression('service("invalid service")'); $validator = new ArgumentValidator(new ContainerBuilder(), $this->createMockResultingClassResolver(), true); $this->setExpectedException('Matthias\\SymfonyServiceDefinitionValidator\\Exception\\InvalidExpressionException'); $validator->validate($parameter, $argument); }