/** * {@inheritdoc} */ public function getParameterValue($parameterName) { if (!array_key_exists($parameterName, $this->parameterValues)) { throw NoSuchParameterException::forParameterName($parameterName, $this->type->getName()); } return $this->parameterValues[$parameterName]; }
/** * {@inheritdoc} */ public function validate(array $parameterValues, BindingType $type) { $violations = array(); foreach ($parameterValues as $name => $value) { if (!$type->hasParameter($name)) { $violations[] = new ConstraintViolation(ConstraintViolation::NO_SUCH_PARAMETER, $value, $type->getName(), $name); } } foreach ($type->getParameters() as $parameter) { if (!isset($parameterValues[$parameter->getName()])) { if ($parameter->isRequired()) { $violations[] = new ConstraintViolation(ConstraintViolation::MISSING_PARAMETER, $parameterValues, $type->getName(), $parameter->getName()); } } } return $violations; }
/** * @expectedException \Puli\Discovery\Api\Binding\NoSuchParameterException */ public function testGetParameterValueFailsIfNotSet() { $type = new BindingType('name'); $type->getParameterValue('foo'); }