public function addExtension(extension $extension, extension\configuration $configuration = null) { if ($this->extensions->contains($extension) === false) { $this->extensions->detach($extension); $this->removeObserver($extension); } $this->extensions->attach($extension, $configuration); $extension->setTest($this); $this->addObserver($extension); return $this; }