/** * Checks if scenario or outline matches specified filter. * * @param ScenarioInterface $scenario Scenario or Outline node instance * * @return Boolean */ public function isScenarioMatch(ScenarioInterface $scenario) { if ($this->filterLine === $scenario->getLine()) { return true; } if ($scenario instanceof OutlineNode && $scenario->hasExamples()) { return $this->filterLine === $scenario->getLine() || in_array($this->filterLine, $scenario->getExampleTable()->getLines()); } return false; }
/** * Checks if scenario or outline matches specified filter. * * @param ScenarioInterface $scenario Scenario or Outline node instance * * @return Boolean */ public function isScenarioMatch(ScenarioInterface $scenario) { if ($this->filterMinLine <= $scenario->getLine() && $this->filterMaxLine >= $scenario->getLine()) { return true; } if ($scenario instanceof OutlineNode && $scenario->hasExamples()) { foreach ($scenario->getExampleTable()->getLines() as $line) { if ($this->filterMinLine <= $line && $this->filterMaxLine >= $line) { return true; } } } return false; }
/** * @param FeatureNode $featureNode * @param ScenarioInterface $scenarioNode * * @return string */ public function generateFileName(FeatureNode $featureNode, ScenarioInterface $scenarioNode) { $feature = $this->relativizePaths($featureNode->getFile()); $line = $scenarioNode->getLine(); $fileName = join('_', [$feature, $line]); return preg_replace('/[^A-Za-z0-9\\-]/', '_', mb_strtolower($fileName)) . '.png'; }
/** * update scenario results based on step tests results * @param FeatureNode $feature object * @param ScenarioInterface $scenario object * @param TestResult $testResult object * @return null */ public function updateScenarioStatus(FeatureNode $feature, ScenarioInterface $scenario, TestResult $testResult) { $featurePath = $feature->getFile(); $scenarioLine = $scenario->getLine(); $resultCode = $testResult->getResultCode(); if ($resultCode > $this->testResults[$featurePath]["scenarios"][$scenarioLine]["testResultCode"]) { $this->testResults[$featurePath]["scenarios"][$scenarioLine]["testResultCode"] = $resultCode; $this->testResults[$featurePath]["scenarios"][$scenarioLine]["testResult"] = self::RESULT_CODES_MAPPING[$resultCode]; } }
function it_should_return_a_nice_filename(FeatureNode $featureNode, ScenarioInterface $scenarioNode) { $featureNode->getFile()->willReturn('base-path/example.feature'); $scenarioNode->getLine()->willReturn(42); $this->generateFileName($featureNode, $scenarioNode)->shouldReturn('example_feature_42.png'); }