public function testAddRemoveInstaller() { $installer = $this->createInstallerMock(); $installer->expects($this->exactly(2))->method('supports')->will($this->returnCallback(function ($arg) { return $arg === 'vendor'; })); $installer2 = $this->createInstallerMock(); $installer2->expects($this->exactly(1))->method('supports')->will($this->returnCallback(function ($arg) { return $arg === 'vendor'; })); $manager = new InstallationManager(); $manager->addInstaller($installer); $this->assertSame($installer, $manager->getInstaller('vendor')); $manager->addInstaller($installer2); $this->assertSame($installer2, $manager->getInstaller('vendor')); $manager->removeInstaller($installer2); $this->assertSame($installer, $manager->getInstaller('vendor')); }