X-Git-Url: http://www.aleph1.co.uk/gitweb/?a=blobdiff_plain;ds=sidebyside;f=vendor%2Fbehat%2Fbehat%2Fsrc%2FBehat%2FBehat%2FEventDispatcher%2FTester%2FEventDispatchingOutlineTester.php;fp=vendor%2Fbehat%2Fbehat%2Fsrc%2FBehat%2FBehat%2FEventDispatcher%2FTester%2FEventDispatchingOutlineTester.php;h=13d257cef50cae36bac5dcc2c2ba706baa826400;hb=1270d9129ce8f27c9b28b10518e32132c58e0aca;hp=0000000000000000000000000000000000000000;hpb=c27c0f0cdaa3f354b1fe54a56ae7e854be6e3f68;p=yaffs-website diff --git a/vendor/behat/behat/src/Behat/Behat/EventDispatcher/Tester/EventDispatchingOutlineTester.php b/vendor/behat/behat/src/Behat/Behat/EventDispatcher/Tester/EventDispatchingOutlineTester.php new file mode 100644 index 000000000..13d257cef --- /dev/null +++ b/vendor/behat/behat/src/Behat/Behat/EventDispatcher/Tester/EventDispatchingOutlineTester.php @@ -0,0 +1,91 @@ + + * + * For the full copyright and license information, please view the LICENSE + * file that was distributed with this source code. + */ + +namespace Behat\Behat\EventDispatcher\Tester; + +use Behat\Behat\EventDispatcher\Event\AfterOutlineSetup; +use Behat\Behat\EventDispatcher\Event\AfterOutlineTested; +use Behat\Behat\EventDispatcher\Event\BeforeOutlineTeardown; +use Behat\Behat\EventDispatcher\Event\BeforeOutlineTested; +use Behat\Behat\Tester\OutlineTester; +use Behat\Gherkin\Node\FeatureNode; +use Behat\Gherkin\Node\OutlineNode; +use Behat\Testwork\Environment\Environment; +use Behat\Testwork\Tester\Result\TestResult; +use Symfony\Component\EventDispatcher\EventDispatcherInterface; + +/** + * Outline tester dispatching BEFORE/AFTER events during tests. + * + * @author Konstantin Kudryashov + */ +final class EventDispatchingOutlineTester implements OutlineTester +{ + /** + * @var OutlineTester + */ + private $baseTester; + /** + * @var EventDispatcherInterface + */ + private $eventDispatcher; + + /** + * Initializes tester. + * + * @param OutlineTester $baseTester + * @param EventDispatcherInterface $eventDispatcher + */ + public function __construct(OutlineTester $baseTester, EventDispatcherInterface $eventDispatcher) + { + $this->baseTester = $baseTester; + $this->eventDispatcher = $eventDispatcher; + } + + /** + * {@inheritdoc} + */ + public function setUp(Environment $env, FeatureNode $feature, OutlineNode $outline, $skip) + { + $event = new BeforeOutlineTested($env, $feature, $outline); + $this->eventDispatcher->dispatch($event::BEFORE, $event); + + $setup = $this->baseTester->setUp($env, $feature, $outline, $skip); + + $event = new AfterOutlineSetup($env, $feature, $outline, $setup); + $this->eventDispatcher->dispatch($event::AFTER_SETUP, $event); + + return $setup; + } + + /** + * {@inheritdoc} + */ + public function test(Environment $env, FeatureNode $feature, OutlineNode $outline, $skip) + { + return $this->baseTester->test($env, $feature, $outline, $skip); + } + + /** + * {@inheritdoc} + */ + public function tearDown(Environment $env, FeatureNode $feature, OutlineNode $outline, $skip, TestResult $result) + { + $event = new BeforeOutlineTeardown($env, $feature, $outline, $result); + $this->eventDispatcher->dispatch($event::BEFORE_TEARDOWN, $event); + + $teardown = $this->baseTester->tearDown($env, $feature, $outline, $skip, $result); + + $event = new AfterOutlineTested($env, $feature, $outline, $result, $teardown); + $this->eventDispatcher->dispatch($event::AFTER, $event); + + return $teardown; + } +}