+++ /dev/null
-<?php
-
-/*
- * This file is part of the Behat Testwork.
- * (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\Testwork\Hook;
-
-use Behat\Testwork\Call\CallCenter;
-use Behat\Testwork\Call\CallResult;
-use Behat\Testwork\Call\CallResults;
-use Behat\Testwork\Hook\Call\HookCall;
-use Behat\Testwork\Hook\Scope\HookScope;
-
-/**
- * Dispatches registered hooks for provided events.
- *
- * @author Konstantin Kudryashov <ever.zet@gmail.com>
- */
-final class HookDispatcher
-{
- /**
- * @var HookRepository
- */
- private $repository;
- /**
- * @var CallCenter
- */
- private $callCenter;
-
- /**
- * Initializes hook dispatcher.
- *
- * @param HookRepository $repository
- * @param CallCenter $callCenter
- */
- public function __construct(HookRepository $repository, CallCenter $callCenter)
- {
- $this->repository = $repository;
- $this->callCenter = $callCenter;
- }
-
- /**
- * Dispatches hooks for a specified event.
- *
- * @param HookScope $scope
- *
- * @return CallResults
- */
- public function dispatchScopeHooks(HookScope $scope)
- {
- $results = array();
- foreach ($this->repository->getScopeHooks($scope) as $hook) {
- $results[] = $this->dispatchHook($scope, $hook);
- }
-
- return new CallResults($results);
- }
-
- /**
- * Dispatches single event hook.
- *
- * @param HookScope $scope
- * @param Hook $hook
- *
- * @return CallResult
- */
- private function dispatchHook(HookScope $scope, Hook $hook)
- {
- return $this->callCenter->makeCall(new HookCall($scope, $hook));
- }
-}