|
Server : Apache/2.4.62 System : FreeBSD fbsdweb2.web.rcn.net 14.1-RELEASE FreeBSD 14.1-RELEASE releng/14.1-n267679-10e31f0946d8 GENERIC amd64 User : www ( 80) PHP Version : 8.3.8 Disable Function : NONE Directory : /domains/irtiweb/CATS/vendor/behat/behat/src/Behat/Behat/Output/Node/Printer/ |
Upload File : |
<?php
/*
* This file is part of the Behat.
* (c) Konstantin Kudryashov <[email protected]>
*
* 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;
use Behat\Behat\Output\Node\Printer\Helper\ResultToStringConverter;
use Behat\Testwork\Output\Printer\OutputPrinter;
use Symfony\Component\Translation\TranslatorInterface;
/**
* Behat counter printer.
*
* @author Konstantin Kudryashov <[email protected]>
*/
final class CounterPrinter
{
/**
* @var ResultToStringConverter
*/
private $resultConverter;
/**
* @var TranslatorInterface
*/
private $translator;
/**
* Initializes printer.
*
* @param ResultToStringConverter $resultConverter
* @param TranslatorInterface $translator
*/
public function __construct(ResultToStringConverter $resultConverter, TranslatorInterface $translator)
{
$this->resultConverter = $resultConverter;
$this->translator = $translator;
}
/**
* Prints scenario and step counters.
*
* @param OutputPrinter $printer
* @param string $intro
* @param array $stats
*/
public function printCounters(OutputPrinter $printer, $intro, array $stats)
{
$stats = array_filter($stats, function ($count) { return 0 !== $count; });
if (0 === count($stats)) {
$totalCount = 0;
} else {
$totalCount = array_sum($stats);
}
$detailedStats = array();
foreach ($stats as $resultCode => $count) {
$style = $this->resultConverter->convertResultCodeToString($resultCode);
$transId = $style . '_count';
$message = $this->translator->transChoice($transId, $count, array('%1%' => $count), 'output');
$detailedStats[] = sprintf('{+%s}%s{-%s}', $style, $message, $style);
}
$message = $this->translator->transChoice($intro, $totalCount, array('%1%' => $totalCount), 'output');
$printer->write($message);
if (count($detailedStats)) {
$printer->write(sprintf(' (%s)', implode(', ', $detailedStats)));
}
$printer->writeln();
}
}