X-Git-Url: http://www.aleph1.co.uk/gitweb/?a=blobdiff_plain;f=vendor%2Fbehat%2Fbehat%2Fsrc%2FBehat%2FBehat%2FEventDispatcher%2FEvent%2FAfterStepTested.php;fp=vendor%2Fbehat%2Fbehat%2Fsrc%2FBehat%2FBehat%2FEventDispatcher%2FEvent%2FAfterStepTested.php;h=37b497bfaa21483500cbfb3087e1aacc10e0d95e;hb=1270d9129ce8f27c9b28b10518e32132c58e0aca;hp=0000000000000000000000000000000000000000;hpb=c27c0f0cdaa3f354b1fe54a56ae7e854be6e3f68;p=yaffs-website diff --git a/vendor/behat/behat/src/Behat/Behat/EventDispatcher/Event/AfterStepTested.php b/vendor/behat/behat/src/Behat/Behat/EventDispatcher/Event/AfterStepTested.php new file mode 100644 index 000000000..37b497bfa --- /dev/null +++ b/vendor/behat/behat/src/Behat/Behat/EventDispatcher/Event/AfterStepTested.php @@ -0,0 +1,154 @@ + + * + * 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\AfterTested; +use Behat\Testwork\Tester\Result\ExceptionResult; +use Behat\Testwork\Tester\Result\TestResult; +use Behat\Testwork\Tester\Setup\Teardown; + +/** + * Represents an event after step has been tested. + * + * @author Konstantin Kudryashov + */ +final class AfterStepTested extends StepTested implements AfterTested +{ + /** + * @var FeatureNode + */ + private $feature; + /** + * @var StepNode + */ + private $step; + /** + * @var StepResult + */ + private $result; + /** + * @var Teardown + */ + private $teardown; + + /** + * Initializes event. + * + * @param Environment $env + * @param FeatureNode $feature + * @param StepNode $step + * @param StepResult $result + * @param Teardown $teardown + */ + public function __construct( + Environment $env, + FeatureNode $feature, + StepNode $step, + StepResult $result, + Teardown $teardown + ) { + parent::__construct($env); + + $this->feature = $feature; + $this->step = $step; + $this->result = $result; + $this->teardown = $teardown; + } + + /** + * 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; + } + + /** + * Returns current test teardown. + * + * @return Teardown + */ + public function getTeardown() + { + return $this->teardown; + } + + /** + * Checks if step call, setup or teardown produced any output (stdOut or exception). + * + * @return Boolean + */ + public function hasOutput() + { + return $this->teardownHasOutput() || $this->resultHasException() || $this->resultCallHasOutput(); + } + + /** + * Checks if step teardown has output. + * + * @return Boolean + */ + private function teardownHasOutput() + { + return $this->teardown->hasOutput(); + } + + /** + * 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(); + } +}