Example #1
0
 /**
  * Checks that node matches condition.
  *
  * @param   Behat\Gherkin\Node\Node\AbstractNode $node  node to check
  */
 protected function matchesCondition(AbstractNode $node)
 {
     $satisfies = true;
     foreach (explode('&&', $this->filterString) as $andTags) {
         $satisfiesComma = false;
         foreach (explode(',', $andTags) as $tag) {
             $tag = str_replace('@', '', trim($tag));
             if ('~' === $tag[0]) {
                 $tag = mb_substr($tag, 1);
                 $satisfiesComma = !$node->hasTag($tag) || $satisfiesComma;
             } else {
                 $satisfiesComma = $node->hasTag($tag) || $satisfiesComma;
             }
         }
         $satisfies = false !== $satisfiesComma && $satisfies && $satisfiesComma || false;
     }
     return $satisfies;
 }