4 * This file is part of the Behat.
5 * (c) Konstantin Kudryashov <ever.zet@gmail.com>
7 * For the full copyright and license information, please view the LICENSE
8 * file that was distributed with this source code.
11 namespace Behat\Behat\Definition;
13 use Behat\Behat\Definition\Printer\DefinitionPrinter;
14 use Behat\Testwork\Environment\EnvironmentManager;
15 use Behat\Testwork\Suite\Suite;
18 * Prints definitions using provided printer.
20 * @author Konstantin Kudryashov <ever.zet@gmail.com>
22 final class DefinitionWriter
25 * @var EnvironmentManager
27 private $environmentManager;
29 * @var DefinitionRepository
36 * @param EnvironmentManager $environmentManager
37 * @param DefinitionRepository $repository
39 public function __construct(EnvironmentManager $environmentManager, DefinitionRepository $repository)
41 $this->environmentManager = $environmentManager;
42 $this->repository = $repository;
46 * Prints definitions for provided suite using printer.
48 * @param DefinitionPrinter $printer
51 public function printSuiteDefinitions(DefinitionPrinter $printer, $suite)
53 $environment = $this->environmentManager->buildEnvironment($suite);
54 $definitions = $this->repository->getEnvironmentDefinitions($environment);
56 $printer->printDefinitions($suite, $definitions);