Ejemplo n.º 1
0
 private function provideModuleManager(Module $module, $hasModule)
 {
     $moduleManager = $this->getMockBuilder('Samurai\\Module\\ModuleManager')->disableOriginalConstructor()->getMock();
     $moduleManager->expects($this->any())->method('getAll')->will($this->returnValue(new Modules(['other' => $module])));
     $moduleManager->expects($this->once())->method('has')->with($module->getName())->will($this->returnValue($hasModule));
     if ($hasModule) {
         $moduleManager->expects($this->once())->method('get')->with($module->getName())->will($this->returnValue($module));
         $moduleManager->expects($this->once())->method('modify')->with($module->getName(), $module);
     } else {
         $moduleManager->expects($this->never())->method('get');
     }
     return $moduleManager;
 }
Ejemplo n.º 2
0
 public function testRemove()
 {
     $moduleManager = $this->getMockBuilder('Samurai\\Module\\ModuleManager')->disableOriginalConstructor()->getMock();
     $composer = $this->getMockBuilder('Samurai\\Project\\Composer\\Composer')->disableOriginalConstructor()->getMock();
     $balloonFactory = new BalloonFactory(new DummyFileReaderFactory(new DummyFileReader()));
     $modulesSorter = $this->getMockBuilder('Samurai\\Module\\ModulesSorter')->disableOriginalConstructor()->getMock();
     $modules = new Modules();
     $module = new Module();
     $module->setPackage('none/none');
     $module->setName('a');
     $composer->expects($this->once())->method('removePackage')->with('none/none', true)->will($this->returnValue(0));
     $moduleManager->expects($this->once())->method('remove')->with($this->identicalTo($module->getName()));
     $moduleManager->expects($this->any())->method('getAll')->will($this->returnValue($modules));
     $modulesSorter->expects($this->once())->method('sort')->with($this->identicalTo($modules))->will($this->returnValue($modules));
     $output = new BufferedOutput();
     $moduleProcedure = new ModuleProcedure($moduleManager, $composer, $balloonFactory, $modulesSorter);
     $moduleProcedure->setOutput($output);
     $this->assertTrue($moduleProcedure->remove($module));
     $this->assertSame("Removing none/none\nSorting modules\n", $output->fetch());
 }
Ejemplo n.º 3
0
 /**
  * @param Module $module
  * @return \Samurai\Module\ModuleManager
  */
 private function provideModuleManagerForNotExisting(Module $module)
 {
     $aliasManager = $this->getMockBuilder('Samurai\\Module\\ModuleManager')->disableOriginalConstructor()->getMock();
     $aliasManager->expects($this->once())->method('has')->with('my-module')->will($this->returnValue(false));
     $aliasManager->expects($this->never())->method('get');
     $aliasManager->expects($this->atLeastOnce())->method('getAll')->will($this->returnValue(new Modules([$module->getName() => $module])));
     return $aliasManager;
 }
Ejemplo n.º 4
0
 /**
  * @param Module $newModule
  * @param $hasModule
  * @return \PHPUnit_Framework_MockObject_MockObject
  */
 private function provideModuleManager(Module $newModule, $hasModule)
 {
     $oldModule = clone $newModule;
     $oldModule->setDescription($newModule->getDescription() . '_old');
     $oldModule->setPackage($newModule->getPackage() . '_old');
     $oldModule->setVersion($newModule->getVersion() . '_old');
     $moduleManager = $this->getMockBuilder('Balloon\\Balloon')->disableOriginalConstructor()->getMock();
     $moduleManager->expects($this->once())->method('has')->with($newModule->getName())->will($this->returnValue($hasModule));
     $moduleManager->expects($this->any())->method('get')->with($newModule->getName())->will($this->returnValue($oldModule));
     return $moduleManager;
 }
Ejemplo n.º 5
0
 /**
  * @param Module $module
  * @param $hasModule
  * @param $willBeRemoved
  * @return \PHPUnit_Framework_MockObject_MockObject
  */
 private function provideModuleManager(Module $module, $hasModule, $willBeRemoved)
 {
     $moduleManager = $this->getMockBuilder('Samurai\\Module\\ModuleManager')->disableOriginalConstructor()->getMock();
     $moduleManager->expects($this->once())->method('has')->with($module->getName())->will($this->returnValue($hasModule));
     if ($hasModule) {
         $moduleManager->expects($this->once())->method('get')->will($this->returnValue($module));
     } else {
         $moduleManager->expects($this->never())->method('get');
     }
     return $moduleManager;
 }
Ejemplo n.º 6
0
 /**
  * @return string
  */
 public function getName()
 {
     return $this->module->getName();
 }
Ejemplo n.º 7
0
 /**
  * @param Module $newModule
  * @return Module
  */
 private function getInitialModule(Module $newModule)
 {
     return $this->getService('module_manager')->get($newModule->getName());
 }
Ejemplo n.º 8
0
 /**
  * @param InputInterface $input
  * @param OutputInterface $output
  * @param Module $module
  * @return int|null
  */
 private function runModule(InputInterface $input, OutputInterface $output, Module $module)
 {
     $output->writeln('<info>Running the module "' . $module->getName() . '"</info>');
     $planner = new PlannerAdapter(new ModulePlannerBuilder($this->getServices(), $module), $this->getService('helper_set')->get('question'));
     return $planner->execute($input, $output);
 }
Ejemplo n.º 9
0
 /**
  * @param Module $module
  * @param bool $mustSortModules
  * @return bool
  */
 public function remove(Module $module, $mustSortModules = true)
 {
     $this->log(sprintf('<info>Removing %s</info>', $module->getPackage()));
     $dependents = $module->retrieveDependents($this->moduleManager->getAll());
     if ($dependents->count()) {
         $this->log(sprintf('<info>The module "%s" cant not be removed because is a dependency of "%s". First remove "%s".</info>', $module->getName(), implode(', ', array_keys($dependents->getArrayCopy())), implode(', ', array_keys($dependents->getArrayCopy()))));
         return false;
     }
     if (!$this->removeModule($module)) {
         $this->log(sprintf('<error>An error occurred during the remove of %s</error>', $module->getPackage()));
         return false;
     }
     $this->moduleManager->remove($module->getName());
     if ($mustSortModules) {
         $this->sort();
     }
     return true;
 }