hasViolations() public method

This method will return true when the processed source code contains violations.
Since: 0.2.5
public hasViolations ( ) : boolean
return boolean
Esempio n. 1
0
 /**
  * This method creates a PHPMD instance and configures this object based
  * on the user's input, then it starts the source analysis.
  *
  * The return value of this method can be used as an exit code. A value
  * equal to <b>EXIT_SUCCESS</b> means that no violations or errors were
  * found in the analyzed code. Otherwise this method will return a value
  * equal to <b>EXIT_VIOLATION</b>.
  *
  * @param \PHPMD\TextUI\CommandLineOptions $opts
  * @param \PHPMD\RuleSetFactory $ruleSetFactory
  * @return integer
  */
 public function run(CommandLineOptions $opts, RuleSetFactory $ruleSetFactory)
 {
     if ($opts->hasVersion()) {
         fwrite(STDOUT, sprintf('PHPMD %s', $this->getVersion()) . PHP_EOL);
         return self::EXIT_SUCCESS;
     }
     // Create a report stream
     if ($opts->getReportFile() === null) {
         $stream = STDOUT;
     } else {
         $stream = fopen($opts->getReportFile(), 'wb');
     }
     // Create renderer and configure output
     $renderer = $opts->createRenderer();
     $renderer->setWriter(new StreamWriter($stream));
     $renderers = array($renderer);
     foreach ($opts->getReportFiles() as $reportFormat => $reportFile) {
         $reportRenderer = $opts->createRenderer($reportFormat);
         $reportRenderer->setWriter(new StreamWriter(fopen($reportFile, 'wb')));
         $renderers[] = $reportRenderer;
     }
     // Configure a rule set factory
     $ruleSetFactory->setMinimumPriority($opts->getMinimumPriority());
     if ($opts->hasStrict()) {
         $ruleSetFactory->setStrict();
     }
     $phpmd = new PHPMD();
     $phpmd->setOptions(array_filter(array('coverage' => $opts->getCoverageReport())));
     $extensions = $opts->getExtensions();
     if ($extensions !== null) {
         $phpmd->setFileExtensions(explode(',', $extensions));
     }
     $ignore = $opts->getIgnore();
     if ($ignore !== null) {
         $phpmd->setIgnorePattern(explode(',', $ignore));
     }
     $phpmd->processFiles($opts->getInputPath(), $opts->getRuleSets(), $renderers, $ruleSetFactory);
     if ($phpmd->hasViolations()) {
         return self::EXIT_VIOLATION;
     }
     return self::EXIT_SUCCESS;
 }
Esempio n. 2
0
 /**
  * testHasViolationsReturnsTrueForSourceWithViolation
  *
  * @return void
  */
 public function testHasViolationsReturnsTrueForSourceWithViolation()
 {
     self::changeWorkingDirectory();
     $renderer = new XMLRenderer();
     $renderer->setWriter(new WriterStub());
     $phpmd = new PHPMD();
     $phpmd->processFiles(self::createFileUri('source/source_with_npath_violation.php'), 'pmd-refset1', array($renderer), new RuleSetFactory());
     $this->assertTrue($phpmd->hasViolations());
 }