/** * 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); }
/** * 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); } }
/** * 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()); }