+++ /dev/null
-<?php
-namespace Behat\Behat\Output\Node\Printer\JUnit;
-
-use Behat\Behat\Hook\Scope\StepScope;
-use Behat\Behat\Output\Node\Printer\SetupPrinter;
-use Behat\Testwork\Call\CallResult;
-use Behat\Testwork\Call\CallResults;
-use Behat\Testwork\Exception\ExceptionPresenter;
-use Behat\Testwork\Hook\Call\HookCall;
-use Behat\Testwork\Hook\Tester\Setup\HookedSetup;
-use Behat\Testwork\Hook\Tester\Setup\HookedTeardown;
-use Behat\Testwork\Output\Formatter;
-use Behat\Testwork\Output\Printer\JUnitOutputPrinter;
-use Behat\Testwork\Tester\Setup\Setup;
-use Behat\Testwork\Tester\Setup\Teardown;
-
-/**
- * @author: Jakob Erdmann <jakob.erdmann@rocket-internet.com>
- */
-class JUnitSetupPrinter implements SetupPrinter
-{
-
- /** @var ExceptionPresenter */
- private $exceptionPresenter;
-
- public function __construct(ExceptionPresenter $exceptionPresenter)
- {
- $this->exceptionPresenter = $exceptionPresenter;
- }
-
- /**
- * {@inheritdoc}
- */
- public function printSetup(Formatter $formatter, Setup $setup)
- {
- if (!$setup->isSuccessful()) {
- if ($setup instanceof HookedSetup) {
- $this->handleHookCalls($formatter, $setup->getHookCallResults(), 'setup');
- }
- }
- }
-
- /**
- * {@inheritdoc}
- */
- public function printTeardown(Formatter $formatter, Teardown $teardown)
- {
- if (!$teardown->isSuccessful()) {
- if ($teardown instanceof HookedTeardown) {
- $this->handleHookCalls($formatter, $teardown->getHookCallResults(), 'teardown');
- }
- }
- }
-
- /**
- * @param Formatter $formatter
- * @param CallResults $results
- * @param string $messageType
- */
- private function handleHookCalls(Formatter $formatter, CallResults $results, $messageType)
- {
- /** @var CallResult $hookCallResult */
- foreach ($results as $hookCallResult) {
- if ($hookCallResult->hasException()) {
- /** @var HookCall $call */
- $call = $hookCallResult->getCall();
- $scope = $call->getScope();
- /** @var JUnitOutputPrinter $outputPrinter */
- $outputPrinter = $formatter->getOutputPrinter();
-
- $message = '';
- if ($scope instanceof StepScope) {
- $message .= $scope->getStep()->getKeyword() . ' ' . $scope->getStep()->getText() . ': ';
- }
- $message .= $this->exceptionPresenter->presentException($hookCallResult->getException());
-
- $attributes = array(
- 'message' => $message,
- 'type' => $messageType,
- );
-
- $outputPrinter->addTestcaseChild('failure', $attributes);
-
- }
- }
- }
-}