Author: Manuel Pichler (mapi@phpmd.org)
Exemplo n.º 1
0
 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);
 }
Exemplo n.º 2
0
 /**
  * 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));
 }
Exemplo n.º 5
0
 /**
  * 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);
 }