protected function runCommand(array $args) { $argv = $this->parseSugaredArgv($args); $config = $this->getConfig($argv['namespace']); $ruleSetFactory = new RuleSetFactory(); $options = new CommandLineOptions($argv['args'], $ruleSetFactory->listAvailableRuleSets(), $config); $command = new Command(); return $command->run($options, $ruleSetFactory); }
/** * The main method that can be used by a calling shell script, the return * value can be used as exit code. * * @param array $args The raw command line arguments array. * * @return integer */ public static function main(array $args) { try { $ruleSetFactory = new RuleSetFactory(); $options = new CommandLineOptions($args, $ruleSetFactory->listAvailableRuleSets()); $command = new Command(); $exitCode = $command->run($options, $ruleSetFactory); } catch (\Exception $e) { fwrite(STDERR, $e->getMessage()); fwrite(STDERR, PHP_EOL); $exitCode = self::EXIT_EXCEPTION; } return $exitCode; }
/** * testReportContainsCouplingBetweenObjectsWarning * * @return void * @outputBuffering enabled */ public function testReportContainsCouplingBetweenObjectsWarning() { $file = self::createTempFileUri(); Command::main(array(__FILE__, $this->createCodeResourceUriForTest(), 'text', 'design', '--reportfile', $file)); self::assertContains('has a coupling between objects value of 14. ' . 'Consider to reduce the number of dependencies under 13.', file_get_contents($file)); }
/** * testReportContainsGotoStatementWarning * * @return void * @outputBuffering enabled */ public function testReportContainsGotoStatementWarning() { $file = self::createTempFileUri(); Command::main(array(__FILE__, $this->createCodeResourceUriForTest(), 'text', 'design', '--reportfile', $file)); self::assertContains('utilizes a goto statement.', file_get_contents($file)); }
/** * testMainReturnsViolationExitCodeForSourceWithNPathViolation * * @return void * @covers \PHPMD\TextUI\Command * @group phpmd * @group phpmd::textui * @group unittest */ public function testMainReturnsViolationExitCodeForSourceWithNPathViolation() { $exitCode = Command::main(array(__FILE__, self::createFileUri('source/source_with_npath_violation.php'), 'text', 'codesize', '--reportfile', self::createTempFileUri())); $this->assertEquals(Command::EXIT_VIOLATION, $exitCode); }
/** * Runs the PHPMD command line interface and returns the report content. * * @return string */ protected static function runCommandLine() { $inputfile = self::createResourceUriForTest('inputfile.txt'); $reportfile = self::createTempFileUri(); self::changeWorkingDirectory(dirname($inputfile)); Command::main(array(__FILE__, 'text', 'unusedcode', '--reportfile', $reportfile, '--inputfile', $inputfile)); return file_get_contents($reportfile); }