public function testLanguage()
 {
     $feature = new FeatureNode();
     $this->assertEquals('en', $feature->getLanguage());
     $feature->setLanguage('ru');
     $this->assertEquals('ru', $feature->getLanguage());
 }
 /**
  * Dumps feature.
  *
  * @param FeatureNode $feature Feature instance
  *
  * @return string
  */
 public function dumpFeature(FeatureNode $feature)
 {
     $language = $feature->getLanguage();
     $this->keywords->setLanguage($language);
     $content = '' . $this->dumpLanguage($language) . ($feature->getTags() ? PHP_EOL . $this->dumpTags($feature->getTags(), 0) : '') . PHP_EOL . $this->dumpKeyword($this->keywords->getFeatureKeywords(), $feature->getTitle(), 0) . PHP_EOL . $this->dumpText($feature->getDescription(), 1);
     if ($feature->getBackground()) {
         $content .= $this->dumpBackground($feature->getBackground());
     }
     $scenarios = $feature->getScenarios();
     foreach ($scenarios as $scenario) {
         $content .= PHP_EOL . $this->dumpScenario($scenario);
     }
     return $content;
 }
 /**
  * {@inheritdoc}
  *
  * @throws AmbiguousMatchException
  */
 public function searchDefinition(Environment $environment, FeatureNode $feature, StepNode $step)
 {
     $suite = $environment->getSuite();
     $language = $feature->getLanguage();
     $stepText = $step->getText();
     $multi = $step->getArguments();
     $definitions = array();
     $result = null;
     foreach ($this->repository->getEnvironmentDefinitions($environment) as $definition) {
         $definition = $this->translator->translateDefinition($suite, $definition, $language);
         if (!($newResult = $this->match($definition, $stepText, $multi))) {
             continue;
         }
         $result = $newResult;
         $definitions[] = $newResult->getMatchedDefinition();
     }
     if (count($definitions) > 1) {
         throw new AmbiguousMatchException($result->getMatchedText(), $definitions);
     }
     return $result;
 }
Esempio n. 4
0
 /**
  * Filters feature according to the filter.
  *
  * @param FeatureNode $feature
  *
  * @return FeatureNode
  */
 public function filterFeature(FeatureNode $feature)
 {
     $scenarios = array();
     foreach ($feature->getScenarios() as $scenario) {
         if (!$this->isScenarioMatch($scenario)) {
             continue;
         }
         if ($scenario instanceof OutlineNode && $scenario->hasExamples()) {
             $table = $scenario->getExampleTable()->getTable();
             $lines = array_keys($table);
             $filteredTable = array($lines[0] => $table[$lines[0]]);
             unset($table[$lines[0]]);
             foreach ($table as $line => $row) {
                 if ($this->filterMinLine <= $line && $this->filterMaxLine >= $line) {
                     $filteredTable[$line] = $row;
                 }
             }
             $scenario = new OutlineNode($scenario->getTitle(), $scenario->getTags(), $scenario->getSteps(), new ExampleTableNode($filteredTable, $scenario->getExampleTable()->getKeyword()), $scenario->getKeyword(), $scenario->getLine());
         }
         $scenarios[] = $scenario;
     }
     return new FeatureNode($feature->getTitle(), $feature->getDescription(), $feature->getTags(), $feature->getBackground(), $scenarios, $feature->getKeyword(), $feature->getLanguage(), $feature->getFile(), $feature->getLine());
 }
Esempio n. 5
0
 public function getLanguage()
 {
     return $this->featureNode->getLanguage();
 }