/** * Returns whether the given parameter values are valid. * * @param array $parameterValues The parameter values to * validate. * @param InstallerDescriptor $descriptor The installer descriptor to * validate the values for. * * @return ConstraintViolation[] The found violations. If no violations were * found, an empty array is returned. */ public function validate(array $parameterValues, InstallerDescriptor $descriptor) { $violations = array(); foreach ($parameterValues as $name => $value) { if (!$descriptor->hasParameter($name)) { $violations[] = new ConstraintViolation(ConstraintViolation::NO_SUCH_PARAMETER, $value, $descriptor->getName(), $name); } } foreach ($descriptor->getParameters() as $parameter) { if (!isset($parameterValues[$parameter->getName()])) { if ($parameter->isRequired()) { $violations[] = new ConstraintViolation(ConstraintViolation::MISSING_PARAMETER, $parameterValues, $descriptor->getName(), $parameter->getName()); } } } return $violations; }
public function testHasParameter() { $descriptor = new InstallerDescriptor('symlink', self::SYMLINK_CLASS, null, array(new InstallerParameter('param'))); $this->assertTrue($descriptor->hasParameter('param')); $this->assertFalse($descriptor->hasParameter('foobar')); }