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()); }
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()); } } } }