/** * {@inheritdoc} */ public function tearDown(Environment $env, SpecificationIterator $iterator, $skip, TestResult $result) { $teardown = $this->baseTester->tearDown($env, $iterator, $skip, $result); if ($skip) { return $teardown; } $scope = new AfterSuiteScope($env, $iterator, $result); $hookCallResults = $this->hookDispatcher->dispatchScopeHooks($scope); return new HookedTeardown($teardown, $hookCallResults); }
/** * {@inheritdoc} */ public function tearDown(Environment $env, FeatureNode $feature, Scenario $scenario, $skip, TestResult $result) { $teardown = $this->baseTester->tearDown($env, $feature, $scenario, $skip, $result); if ($skip) { return $teardown; } $scope = new AfterScenarioScope($env, $feature, $scenario, $result); $hookCallResults = $this->hookDispatcher->dispatchScopeHooks($scope); return new HookedTeardown($teardown, $hookCallResults); }
/** * Helper function to create a term. * * @return object * The created term. */ public function termCreate($term) { // @todo this doesn't properly throw exceptions. $this->dispatcher->dispatchScopeHooks(new BeforeTermCreateScope($this->getDrupal()->getEnvironment(), $this, $term)); $saved = $this->getDriver()->createTerm($term); $this->dispatcher->dispatchScopeHooks(new AfterTermCreateScope($this->getDrupal()->getEnvironment(), $this, $saved)); $this->terms[] = $saved; return $saved; }
public function test(Environment $env, $feature, $skip) { $results = array(); foreach ($feature->getScenarios() as $scenario) { $isolatedEnvironment = $this->envManager->isolateEnvironment($env, $scenario); $block = new AroundHookScenarioBlock($scenario, $isolatedEnvironment, $feature, $skip, $this->scenarioTester, $this->outlineTester, $this->envManager); $scope = new AroundScenarioScope($isolatedEnvironment, $feature, $scenario, $block); $hookCallResults = $this->hookDispatcher->dispatchScopeHooks($scope); foreach ($hookCallResults as $callResult) { echo $callResult->getStdOut(); if ($callResult->hasException()) { throw $callResult->getException(); } } if (count($hookCallResults) == 0) { $block->call(); } $results = array_merge($results, $block->getResults()); } return new TestResults($results); }
/** * Dispatch scope hooks. * * @param string $scope * The entity scope to dispatch. * @param stdClass $entity * The entity. */ protected function dispatchHooks($scopeType, \stdClass $entity) { $fullScopeClass = 'Drupal\\DrupalExtension\\Hook\\Scope\\' . $scopeType; $scope = new $fullScopeClass($this->getDrupal()->getEnvironment(), $this, $entity); $callResults = $this->dispatcher->dispatchScopeHooks($scope); // The dispatcher suppresses exceptions, throw them here if there are any. foreach ($callResults as $result) { if ($result->hasException()) { $exception = $result->getException(); throw $exception; } } }