/**
  * testRuleDoesNotApplyToPrivateMethodWithSuppressWarningsAnnotation
  *
  * @return void
  * @covers stdClass
  * @group phpmd
  * @group regression
  */
 public function testRuleDoesNotApplyToPrivateMethodWithSuppressWarningsAnnotation()
 {
     $ruleSet = new PHP_PMD_RuleSet();
     $ruleSet->addRule(new PHP_PMD_Rule_UnusedPrivateMethod());
     $ruleSet->setReport($this->getReportMock(0));
     $ruleSet->apply($this->getClass());
 }
 /**
  * testRuleSetInvokesRuleForClassInstance
  *
  * @return void
  */
 public function testRuleSetInvokesRuleForClassInstance()
 {
     $rule = new PHP_PMD_Rule_ExcessivePublicCount();
     $rule->addProperty('minimum', 3);
     $class = $this->getClass();
     $class->setMetrics(array('cis' => 4));
     $ruleSet = new PHP_PMD_RuleSet();
     $ruleSet->addRule($rule);
     $ruleSet->setReport($this->getReportMock(1));
     $ruleSet->apply($class);
 }
Example #3
0
 /**
  * Creates a rule set instance with a variable amount of appended rule
  * objects.
  *
  * @param string $name Variable number of rule identifiers.
  *
  * @return PHP_PMD_AbstractRule
  */
 private function _createRuleSetFixture($name = null)
 {
     $ruleSet = new PHP_PMD_RuleSet();
     for ($i = 0; $i < func_num_args(); ++$i) {
         $rule = new rules_TestRule();
         $rule->setName(func_get_arg($i));
         $ruleSet->addRule($rule);
     }
     return $ruleSet;
 }
 /**
  * This method parses a single rule that was included from a different
  * rule-set.
  *
  * @param PHP_PMD_RuleSet  $ruleSet  The parent rule-set instance.
  * @param SimpleXMLElement $ruleNode The unparsed rule xml node.
  *
  * @return void
  */
 private function parseRuleReferenceNode(PHP_PMD_RuleSet $ruleSet, SimpleXMLElement $ruleNode)
 {
     $ref = (string) $ruleNode['ref'];
     $fileName = substr($ref, 0, strpos($ref, '.xml/') + 4);
     $fileName = $this->createRuleSetFileName($fileName);
     $ruleName = substr($ref, strpos($ref, '.xml/') + 5);
     $ruleSetFactory = new PHP_PMD_RuleSetFactory();
     $ruleSetRef = $ruleSetFactory->createSingleRuleSet($fileName);
     $rule = $ruleSetRef->getRuleByName($ruleName);
     if (trim($ruleNode['name']) !== '') {
         $rule->setName((string) $ruleNode['name']);
     }
     if (trim($ruleNode['message']) !== '') {
         $rule->setMessage((string) $ruleNode['message']);
     }
     if (trim($ruleNode['externalInfoUrl']) !== '') {
         $rule->setExternalInfoUrl((string) $ruleNode['externalInfoUrl']);
     }
     foreach ($ruleNode->children() as $node) {
         if ($node->getName() === 'description') {
             $rule->setDescription((string) $node);
         } else {
             if ($node->getName() === 'example') {
                 $rule->addExample((string) $node);
             } else {
                 if ($node->getName() === 'priority') {
                     $rule->setPriority((int) $node);
                 } else {
                     if ($node->getName() === 'properties') {
                         $this->parsePropertiesNode($rule, $node);
                     }
                 }
             }
         }
     }
     if ($rule->getPriority() <= $this->minimumPriority) {
         $ruleSet->addRule($rule);
     }
 }
Example #5
0
 /**
  * This method parses a single rule that was included from a different
  * rule-set.
  *
  * @param PHP_PMD_RuleSet  $ruleSet  The parent rule-set instance.
  * @param SimpleXMLElement $ruleNode The unparsed rule xml node.
  *
  * @return void
  */
 private function parseRuleReferenceNode(PHP_PMD_RuleSet $ruleSet, SimpleXMLElement $ruleNode)
 {
     $ref = (string) $ruleNode['ref'];
     $fileName = substr($ref, 0, strpos($ref, '.xml/') + 4);
     $fileName = $this->createRuleSetFileName($fileName);
     $ruleName = substr($ref, strpos($ref, '.xml/') + 5);
     $ruleSetFactory = new PHP_PMD_RuleSetFactory();
     $ruleSetRef = $ruleSetFactory->createSingleRuleSet($fileName);
     $rule = $ruleSetRef->getRuleByName($ruleName);
     if (!$rule instanceof PHP_PMD_Rule) {
         $availableRules = array_map(function (PHP_PMD_Rule $rule) {
             return $rule->getName();
         }, iterator_to_array($ruleSetRef->getRules()));
         throw new \RuntimeException(sprintf('Could not find any rule named "%s", available rules: %s', $ruleName, implode(', ', $availableRules)));
     }
     if (trim($ruleNode['name']) !== '') {
         $rule->setName((string) $ruleNode['name']);
     }
     if (trim($ruleNode['message']) !== '') {
         $rule->setMessage((string) $ruleNode['message']);
     }
     if (trim($ruleNode['externalInfoUrl']) !== '') {
         $rule->setExternalInfoUrl((string) $ruleNode['externalInfoUrl']);
     }
     foreach ($ruleNode->children() as $node) {
         if ($node->getName() === 'description') {
             $rule->setDescription((string) $node);
         } else {
             if ($node->getName() === 'example') {
                 $rule->addExample((string) $node);
             } else {
                 if ($node->getName() === 'priority') {
                     $rule->setPriority((int) $node);
                 } else {
                     if ($node->getName() === 'properties') {
                         $this->parsePropertiesNode($rule, $node);
                     }
                 }
             }
         }
     }
     if ($rule->getPriority() <= $this->minimumPriority) {
         $ruleSet->addRule($rule);
     }
 }
 /**
  * testRuleDoesNotApplyToMethodParameterNamedArgv
  *
  * @return void
  */
 public function testRuleDoesNotApplyToMethodParameterNamedArgv()
 {
     $ruleSet = new PHP_PMD_RuleSet();
     $ruleSet->addRule(new PHP_PMD_Rule_UnusedFormalParameter());
     $ruleSet->setReport($this->getReportMock(0));
     $ruleSet->apply($this->getMethod());
 }