public function testRemoveByName() { $arg1 = new Argument(); $arg1->setName('arg1'); $arg2 = clone $arg1; $arg2->setName('arg2'); $arg3 = clone $arg1; $arg3->setName('arg3'); $arg4 = clone $arg1; $arg4->setName('arg4'); $collection = new ArgumentCollection(array($arg1, $arg2, $arg3, $arg4)); $this->assertCount(4, $collection); $removed = $collection->removeByName('arg2'); $this->assertCount(1, $removed); $this->assertCount(3, $collection); $removed = $collection->removeByName($arg1); $this->assertCount(1, $removed); $this->assertCount(2, $collection); $removed = $collection->removeByName('test'); $this->assertCount(0, $removed); $this->assertCount(2, $collection); }
/** * Creates a method from Reflection Method. * * @param \ReflectionMethod $reflected * * @return Method */ public static function createFromReflection(\ReflectionMethod $reflected) { $method = new self(); $method->setName($reflected->getName()); foreach ($reflected->getParameters() as $parameterReflected) { $argument = new Argument(); $argument->setName($parameterReflected->getName()); $method->addArgument($argument); } return $method; }