Esempio n. 1
0
 /**
  * Validate score
  *
  * @param $key
  * @param $value
  * @return string
  */
 public function validate($key, $value)
 {
     $rule = $this->ruleSet->getRule($key);
     if (!is_array($rule) || !is_numeric($value)) {
         return self::UNKNOWN;
     }
     // according order
     if ($rule[0] < $rule[2]) {
         // critical < warn < good
         switch (true) {
             case $value < $rule[1]:
                 return self::CRITICAL;
             case $value >= $rule[1] && $value < $rule[2]:
                 return self::WARNING;
             default:
                 return self::GOOD;
         }
     }
     // critical > warn > good
     switch (true) {
         case $value > $rule[1]:
             return self::CRITICAL;
         case $value < $rule[2]:
             return self::GOOD;
         default:
             return self::WARNING;
     }
 }
Esempio n. 2
0
 public function testSetupRecursively()
 {
     $handler = $this->getMock('\\PHPVS\\RuleSet');
     $handler->expects($this->atLeastOnce())->method('handle');
     RuleSet::filter(['array' => ['age' => -1, 'email' => 'not an email']], ['array' => RuleSet::setup(['age' => Validator::int()->prepare(), 'email' => Validator::email()->prepare()], $required = true)], "", $handler);
     // test not required
     $handler2 = $this->getMock('\\PHPVS\\RuleSet');
     $handler2->expects($this->never())->method('handle');
     RuleSet::filter(['array' => ['age' => "", 'email' => ""]], ['array' => RuleSet::setup(['age' => Validator::int()->required(false)->prepare(), 'email' => Validator::email()->required(false)->prepare()], $required = true)], "", $handler2);
 }
Esempio n. 3
0
 /**
  * @param $filter
  * @param array $options
  * @param null $flag
  * @return $this
  */
 public function setup($filter, $options = array(), $flag = null)
 {
     parent::setup($filter, $options, $flag);
     $this->required = null;
     $this->default = null;
     $this->attr = array();
     if (RuleSet::getParsers() instanceof \SplObjectStorage) {
         foreach (RuleSet::getParsers() as $parser) {
             call_user_func(array($parser, 'parse'), $this);
         }
     }
     return $this;
 }
Esempio n. 4
0
 /**
  * This method parses a single rule that was included from a different
  * rule-set.
  *
  * @param \PHPMD\RuleSet $ruleSet
  * @param \SimpleXMLElement $ruleNode
  * @return void
  */
 private function parseRuleReferenceNode(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 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);
         } elseif ($node->getName() === 'example') {
             $rule->addExample((string) $node);
         } elseif ($node->getName() === 'priority') {
             $rule->setPriority((int) $node);
         } elseif ($node->getName() === 'properties') {
             $this->parsePropertiesNode($rule, $node);
         }
     }
     if ($rule->getPriority() <= $this->minimumPriority) {
         $ruleSet->addRule($rule);
     }
 }
Esempio n. 5
0
 /**
  * @param mixed $data
  * @param string $key
  * @param string $message
  */
 public function handle($data, $key = null, $message = '')
 {
     if (RuleSet::getHandlers() === null) {
         RuleSet::attachHandler(new Handler\Exception());
         // attach a default handler
     }
     foreach (RuleSet::getHandlers() as $handler) {
         call_user_func(array($handler, 'handle'), Rule::instance(), $data, $key, $message);
     }
 }