+++ /dev/null
-<?php
-
-/*
- * This file is part of the Behat.
- * (c) Konstantin Kudryashov <ever.zet@gmail.com>
- *
- * For the full copyright and license information, please view the LICENSE
- * file that was distributed with this source code.
- */
-
-namespace Behat\Behat\Output\Node\Printer\JUnit;
-
-use Behat\Behat\Output\Node\EventListener\JUnit\JUnitOutlineStoreListener;
-use Behat\Behat\Output\Node\Printer\Helper\ResultToStringConverter;
-use Behat\Gherkin\Node\ExampleNode;
-use Behat\Gherkin\Node\FeatureNode;
-use Behat\Gherkin\Node\OutlineNode;
-use Behat\Gherkin\Node\ScenarioLikeInterface;
-use Behat\Testwork\Output\Formatter;
-use Behat\Testwork\Output\Printer\JUnitOutputPrinter;
-use Behat\Testwork\Tester\Result\TestResult;
-
-/**
- * Prints the <testcase> element.
- *
- * @author Wouter J <wouter@wouterj.nl>
- */
-final class JUnitScenarioPrinter
-{
- /**
- * @var ResultToStringConverter
- */
- private $resultConverter;
-
- /**
- * @var JUnitOutlineStoreListener
- */
- private $outlineStoreListener;
-
- /**
- * @var OutlineNode
- */
- private $lastOutline;
-
- /**
- * @var int
- */
- private $outlineStepCount;
-
- public function __construct(ResultToStringConverter $resultConverter, JUnitOutlineStoreListener $outlineListener)
- {
- $this->resultConverter = $resultConverter;
- $this->outlineStoreListener = $outlineListener;
- }
-
- /**
- * {@inheritDoc}
- */
- public function printOpenTag(Formatter $formatter, FeatureNode $feature, ScenarioLikeInterface $scenario, TestResult $result)
- {
- $name = implode(' ', array_map(function ($l) {
- return trim($l);
- }, explode("\n", $scenario->getTitle())));
-
- if ($scenario instanceof ExampleNode) {
- $name = $this->buildExampleName($scenario);
- }
-
- /** @var JUnitOutputPrinter $outputPrinter */
- $outputPrinter = $formatter->getOutputPrinter();
-
- $outputPrinter->addTestcase(array(
- 'name' => $name,
- 'status' => $this->resultConverter->convertResultToString($result)
- ));
- }
-
- /**
- * @param ExampleNode $scenario
- * @return string
- */
- private function buildExampleName(ExampleNode $scenario)
- {
- $currentOutline = $this->outlineStoreListener->getCurrentOutline($scenario);
- if ($currentOutline === $this->lastOutline) {
- $this->outlineStepCount++;
- } else {
- $this->lastOutline = $currentOutline;
- $this->outlineStepCount = 1;
- }
-
- $name = $currentOutline->getTitle() . ' #' . $this->outlineStepCount;
- return $name;
- }
-}