public function testSetParameters() { $type = new BindingType(Foo::clazz, array($param1 = new BindingParameter('param1'), $param2 = new BindingParameter('param2'))); $this->assertSame(array('param1' => $param1, 'param2' => $param2), $type->getParameters()); $this->assertTrue($type->hasParameter('param1')); $this->assertFalse($type->hasParameter('foo')); $this->assertSame($param1, $type->getParameter('param1')); $this->assertTrue($type->hasParameters()); }
/** * Returns the description for a parameter. * * @param string $parameterName The parameter name. * * @return string The description of the parameter. * * @throws NoSuchParameterException If the parameter does not exist. * @throws OutOfBoundsException If the parameter has no description. */ public function getParameterDescription($parameterName) { if (!$this->type->hasParameter($parameterName)) { throw new NoSuchParameterException(sprintf('The parameter "%s" does not exist.', $parameterName)); } if (!isset($this->parameterDescriptions[$parameterName])) { throw new OutOfBoundsException(sprintf('No description exists for parameter "%s".', $parameterName)); } return $this->parameterDescriptions[$parameterName]; }
private function assertParameterValuesValid(array $parameterValues, BindingType $type) { foreach ($parameterValues as $name => $value) { if (!$type->hasParameter($name)) { throw NoSuchParameterException::forParameterName($name, $type->getName()); } } foreach ($type->getParameters() as $parameter) { if (!isset($parameterValues[$parameter->getName()])) { if ($parameter->isRequired()) { throw MissingParameterException::forParameterName($parameter->getName(), $type->getName()); } } } }