public function testGetConsoleUsage()
 {
     $usage = InitParamListener::getConsoleUsage();
     // usage statement should be an array and have a blank line followed by a line containing the parameter
     $this->assertArrayHasKey(0, $usage);
     $this->assertGreaterThanOrEqual(2, count($usage));
     // First element should be a blank line
     $this->assertEquals('', $usage[0]);
     // Parameter definition is added to the usage statement
     $this->assertContains(InitParamListener::BOOTSTRAP_PARAM, implode($usage[1]));
 }
 /**
  * Shows necessary information for installing Magento
  *
  * @return string
  * @throws \InvalidArgumentException
  */
 public function helpAction()
 {
     $type = $this->getRequest()->getParam('type');
     if ($type === false) {
         $usageInfo = $this->formatConsoleFullUsageInfo(array_merge(self::getConsoleUsage(), InitParamListener::getConsoleUsage()));
         return $usageInfo;
     }
     switch ($type) {
         case UserConfig::KEY_LANGUAGE:
             return $this->arrayToString($this->options->getLocaleList());
         case UserConfig::KEY_CURRENCY:
             return $this->arrayToString($this->options->getCurrencyList());
         case UserConfig::KEY_TIMEZONE:
             return $this->arrayToString($this->options->getTimezoneList());
         case self::HELP_LIST_OF_MODULES:
             return $this->getModuleListMsg();
         default:
             $usages = self::getCommandUsage();
             if (isset($usages[$type])) {
                 if ($usages[$type]) {
                     $formatted = $this->formatCliUsage($usages[$type]);
                     return "\nAvailable parameters:\n{$formatted}\n";
                 }
                 return "\nThis command has no parameters.\n";
             }
             throw new \InvalidArgumentException("Unknown type: {$type}");
     }
 }