Example #1
0
 /**
  * Run the task.
  *
  * @param array &$options Additional options.
  *
  * @return integer Number of errors.
  */
 public function run(&$options)
 {
     $lib = realpath($this->_config->getPath() . '/lib');
     $renderer = new PHP_PMD_Renderer_TextRenderer();
     $renderer->setWriter(new PHP_PMD_Writer_Stream(STDOUT));
     $ruleSetFactory = new PHP_PMD_RuleSetFactory();
     $ruleSetFactory->setMinimumPriority(PHP_PMD_AbstractRule::LOWEST_PRIORITY);
     $phpmd = new PHP_PMD();
     $phpmd->processFiles($lib, Components_Constants::getDataDirectory() . '/qc_standards/phpmd.xml', array($renderer), $ruleSetFactory);
     return $phpmd->hasViolations();
 }
 /**
  * testLocalVariableUsedInDoubleQuoteStringGetsNotReported
  *
  * @return void
  * @outputBuffering enabled
  */
 public function testLocalVariableUsedInDoubleQuoteStringGetsNotReported()
 {
     $renderer = new PHP_PMD_Renderer_TextRenderer();
     $renderer->setWriter(new PHP_PMD_Writer_Stream(self::createTempFileUri()));
     $inputs = self::createCodeResourceUriForTest();
     $rules = 'unusedcode';
     $renderes = array($renderer);
     $factory = new PHP_PMD_RuleSetFactory();
     $phpmd = new PHP_PMD();
     $phpmd->processFiles($inputs, $rules, $renderes, $factory);
 }
 /**
  * Creates a report renderer instance based on the formatter type.
  *
  * @return PHP_PMD_AbstractRenderer
  * @throws BuildException When the specified renderer does not exist.
  */
 public function getRenderer()
 {
     switch ($this->type) {
         case 'xml':
             $renderer = new PHP_PMD_Renderer_XMLRenderer();
             break;
         case 'html':
             $renderer = new PHP_PMD_Renderer_HTMLRenderer();
             break;
         case 'text':
             $renderer = new PHP_PMD_Renderer_TextRenderer();
             break;
         default:
             throw new BuildException('PHP_MD renderer "' . $this->type . '" not implemented');
     }
     // Create a report stream
     if ($this->getUseFile() === false || $this->getOutfile() === null) {
         $stream = STDOUT;
     } else {
         $stream = fopen($this->getOutfile()->getAbsoluteFile(), 'wb');
     }
     require_once 'PHP/PMD/Writer/Stream.php';
     $renderer->setWriter(new PHP_PMD_Writer_Stream($stream));
     return $renderer;
 }
Example #4
0
 /**
  * testRendererCreatesExpectedNumberOfTextEntries
  *
  * @return void
  * @covers PHP_PMD_Renderer_TextRenderer
  * @group phpmd
  * @group phpmd::renderer
  * @group unittest
  */
 public function testRendererCreatesExpectedNumberOfTextEntries()
 {
     // Create a writer instance.
     $writer = new PHP_PMD_Stubs_WriterStub();
     $violations = array($this->getRuleViolationMock('/bar.php', 1), $this->getRuleViolationMock('/foo.php', 2), $this->getRuleViolationMock('/foo.php', 3));
     $report = $this->getReportMock(0);
     $report->expects($this->once())->method('getRuleViolations')->will($this->returnValue(new ArrayIterator($violations)));
     $renderer = new PHP_PMD_Renderer_TextRenderer();
     $renderer->setWriter($writer);
     $renderer->start();
     $renderer->renderReport($report);
     $renderer->end();
     $this->assertEquals(PHP_EOL . "/bar.php:1\tTest description" . PHP_EOL . "/foo.php:2\tTest description" . PHP_EOL . "/foo.php:3\tTest description" . PHP_EOL, $writer->getData());
 }
 /**
  * testRendererAddsProcessingErrorsToTextReport
  *
  * @return void
  */
 public function testRendererAddsProcessingErrorsToTextReport()
 {
     // Create a writer instance.
     $writer = new PHP_PMD_Stubs_WriterStub();
     $errors = array(new PHP_PMD_ProcessingError('Failed for file "/tmp/foo.php".'), new PHP_PMD_ProcessingError('Failed for file "/tmp/bar.php".'), new PHP_PMD_ProcessingError('Failed for file "/tmp/baz.php".'));
     $report = $this->getReportMock(0);
     $report->expects($this->once())->method('getRuleViolations')->will($this->returnValue(new ArrayIterator(array())));
     $report->expects($this->once())->method('getErrors')->will($this->returnValue(new ArrayIterator($errors)));
     $renderer = new PHP_PMD_Renderer_TextRenderer();
     $renderer->setWriter($writer);
     $renderer->start();
     $renderer->renderReport($report);
     $renderer->end();
     $this->assertEquals(PHP_EOL . "/tmp/foo.php\t-\tFailed for file \"/tmp/foo.php\"." . PHP_EOL . "/tmp/bar.php\t-\tFailed for file \"/tmp/bar.php\"." . PHP_EOL . "/tmp/baz.php\t-\tFailed for file \"/tmp/baz.php\"." . PHP_EOL, $writer->getData());
 }