public function testUpdateWithDeletion()
 {
     TestConfigCleaner::removeExtFile();
     copy(__DIR__ . '/../../data/more-extensions.php', __DIR__ . '/../../testapp/config/extensions.php');
     ExtensionFileWriter::updateConfig();
     $a = $this->checkFile();
     $this->assertEquals(4, count($a));
 }
 /**
  * Updates config.
  * Calculates differences between @vengor/composer/installed.json and ExtensionsManager::$extensionsStorage
  * and writes new ExtensionsManager::$extensionsStorage
  *
  */
 public function actionUpdateConfig()
 {
     $result = (int) (ExtensionFileWriter::updateConfig() !== true);
     if ($result === 0) {
         $this->stdout('Update OK' . PHP_EOL, Console::FG_GREEN);
     } else {
         $this->stderr('Error updating extensions storage: ', Console::FG_RED);
         $this->stderr(ExtensionsManager::module()->extensionsStorage . PHP_EOL);
     }
     return $result;
 }
 /**
  * @param DeferredQueueCompleteEvent $event
  */
 public static function handleEvent($event)
 {
     //else we have unfinished task
     if ($event->queue->exit_code != 0) {
         return;
     }
     /** @var DeferredGroup $group */
     if (null === ($group = DeferredGroup::loadModel($event->queue->deferred_group_id))) {
         return;
     }
     switch ($group->name) {
         case ExtensionsManager::COMPOSER_INSTALL_DEFERRED_GROUP:
         case ExtensionsManager::COMPOSER_UNINSTALL_DEFERRED_GROUP:
             ExtensionFileWriter::updateConfig();
             break;
         default:
             return;
     }
 }