/** * Adds an argument to the dependency definition. * @param \Brickoo\Component\IoC\Definition\ArgumentDefinition $argument * @throws \Brickoo\Component\IoC\Definition\Container\Exception\DuplicateParameterDefinitionException * @return \Brickoo\Component\IoC\Definition\Container\ArgumentDefinitionContainer */ public function addArgument(ArgumentDefinition $argument) { if (($hasName = $argument->hasName()) && $this->contains($argument->getName())) { throw new DuplicateParameterDefinitionException($argument->getName()); } $argumentKey = $hasName ? $argument->getName() : uniqid("arg:"); $this->add($argumentKey, $argument); return $this; }
/** * @covers Brickoo\Component\IoC\Definition\ArgumentDefinition::__construct * @covers Brickoo\Component\IoC\Definition\ArgumentDefinition::getName * @covers Brickoo\Component\IoC\Definition\ArgumentDefinition::getValue */ public function testDefinitionGetter() { $name = "MyAnnotation"; $value = "some value"; $annotationDefinition = new ArgumentDefinition($value, $name); $this->assertEquals($name, $annotationDefinition->getName()); $this->assertEquals($value, $annotationDefinition->getValue()); }
/** * Returns the argument index. * @param \Brickoo\Component\IoC\Definition\ArgumentDefinition $argument * @param integer $currentIndex * @return string|integer the argument index */ private function getArgumentIndex(ArgumentDefinition $argument, $currentIndex) { return $argument->hasName() ? $argument->getName() : $currentIndex; }