/** * Adds an injection to the dependency definition. * @param \Brickoo\Component\IoC\Definition\InjectionDefinition $injection * @throws \Brickoo\Component\IoC\Definition\Container\Exception\DuplicateInjectionDefinitionException * @return \Brickoo\Component\IoC\Definition\Container\InjectionDefinitionContainer */ public function addInjection(InjectionDefinition $injection) { if ($this->contains($targetName = $injection->getTargetName())) { throw new DuplicateInjectionDefinitionException($targetName); } $this->add($targetName, $injection); return $this; }
/** * @covers Brickoo\Component\IoC\Definition\InjectionDefinition::__construct * @covers Brickoo\Component\IoC\Definition\InjectionDefinition::getTarget * @covers Brickoo\Component\IoC\Definition\InjectionDefinition::isTarget * @covers Brickoo\Component\IoC\Definition\InjectionDefinition::getTargetName * @covers Brickoo\Component\IoC\Definition\InjectionDefinition::getArgumentsContainer */ public function testDefinitionImplementation() { $target = InjectionDefinition::TARGET_METHOD; $targetName = "\\SomeClass::targetMethodName"; $container = $this->getMock("\\Brickoo\\Component\\IoC\\Definition\\Container\\ArgumentDefinitionContainer"); $injectionDefinition = new InjectionDefinition($target, $targetName, $container); $this->assertEquals($target, $injectionDefinition->getTarget()); $this->assertEquals($targetName, $injectionDefinition->getTargetName()); $this->assertSame($container, $injectionDefinition->getArgumentsContainer()); $this->assertFalse($injectionDefinition->isTarget(InjectionDefinition::TARGET_CONSTRUCTOR)); $this->assertTrue($injectionDefinition->isTarget(InjectionDefinition::TARGET_METHOD)); }