X-Git-Url: http://www.aleph1.co.uk/gitweb/?a=blobdiff_plain;ds=sidebyside;f=vendor%2Fbehat%2Fbehat%2Fsrc%2FBehat%2FBehat%2FEventDispatcher%2FEvent%2FBeforeStepTeardown.php;fp=vendor%2Fbehat%2Fbehat%2Fsrc%2FBehat%2FBehat%2FEventDispatcher%2FEvent%2FBeforeStepTeardown.php;h=6d9b9c6e9aad21846610156429e86ead783826c5;hb=1270d9129ce8f27c9b28b10518e32132c58e0aca;hp=0000000000000000000000000000000000000000;hpb=c27c0f0cdaa3f354b1fe54a56ae7e854be6e3f68;p=yaffs-website diff --git a/vendor/behat/behat/src/Behat/Behat/EventDispatcher/Event/BeforeStepTeardown.php b/vendor/behat/behat/src/Behat/Behat/EventDispatcher/Event/BeforeStepTeardown.php new file mode 100644 index 000000000..6d9b9c6e9 --- /dev/null +++ b/vendor/behat/behat/src/Behat/Behat/EventDispatcher/Event/BeforeStepTeardown.php @@ -0,0 +1,126 @@ + + * + * For the full copyright and license information, please view the LICENSE + * file that was distributed with this source code. + */ + +namespace Behat\Behat\EventDispatcher\Event; + +use Behat\Behat\Tester\Result\ExecutedStepResult; +use Behat\Behat\Tester\Result\StepResult; +use Behat\Gherkin\Node\FeatureNode; +use Behat\Gherkin\Node\StepNode; +use Behat\Testwork\Environment\Environment; +use Behat\Testwork\EventDispatcher\Event\BeforeTeardown; +use Behat\Testwork\Tester\Result\ExceptionResult; +use Behat\Testwork\Tester\Result\TestResult; + +/** + * Represents an event before step teardown. + * + * @author Konstantin Kudryashov + */ +final class BeforeStepTeardown extends StepTested implements BeforeTeardown +{ + /** + * @var FeatureNode + */ + private $feature; + /** + * @var StepNode + */ + private $step; + /** + * @var StepResult + */ + private $result; + + /** + * Initializes event. + * + * @param Environment $env + * @param FeatureNode $feature + * @param StepNode $step + * @param StepResult $result + */ + public function __construct( + Environment $env, + FeatureNode $feature, + StepNode $step, + StepResult $result + ) { + parent::__construct($env); + + $this->feature = $feature; + $this->step = $step; + $this->result = $result; + } + + /** + * Returns feature. + * + * @return FeatureNode + */ + public function getFeature() + { + return $this->feature; + } + + /** + * Returns step node. + * + * @return StepNode + */ + public function getStep() + { + return $this->step; + } + + /** + * Returns current test result. + * + * @return TestResult + */ + public function getTestResult() + { + return $this->result; + } + + /** + * Checks if step call produced any output (stdOut or exception). + * + * @return Boolean + */ + public function hasOutput() + { + return $this->resultHasException() || $this->resultCallHasOutput(); + } + + /** + * Checks if result has produced exception. + * + * @return Boolean + */ + private function resultHasException() + { + return $this->result instanceof ExceptionResult && $this->result->getException(); + } + + /** + * Checks if result is executed and call result has produced exception or stdOut. + * + * @return Boolean + */ + private function resultCallHasOutput() + { + if (!$this->result instanceof ExecutedStepResult) { + return false; + } + + return $this->result->getCallResult()->hasStdOut() || $this->result->getCallResult()->hasException(); + } +}