X-Git-Url: http://www.aleph1.co.uk/gitweb/?p=yaffs-website;a=blobdiff_plain;f=vendor%2Fbehat%2Fbehat%2Fsrc%2FBehat%2FTestwork%2FCall%2FCallResults.php;fp=vendor%2Fbehat%2Fbehat%2Fsrc%2FBehat%2FTestwork%2FCall%2FCallResults.php;h=f79ea0c9e723f095baa857ba9774eb9e766c2023;hp=0000000000000000000000000000000000000000;hb=1270d9129ce8f27c9b28b10518e32132c58e0aca;hpb=c27c0f0cdaa3f354b1fe54a56ae7e854be6e3f68 diff --git a/vendor/behat/behat/src/Behat/Testwork/Call/CallResults.php b/vendor/behat/behat/src/Behat/Testwork/Call/CallResults.php new file mode 100644 index 000000000..f79ea0c9e --- /dev/null +++ b/vendor/behat/behat/src/Behat/Testwork/Call/CallResults.php @@ -0,0 +1,114 @@ + + * + * For the full copyright and license information, please view the LICENSE + * file that was distributed with this source code. + */ + +namespace Behat\Testwork\Call; + +use ArrayIterator; +use Countable; +use Iterator; +use IteratorAggregate; + +/** + * Aggregates multiple call results into a collection and provides an informational API on top of that. + * + * @author Konstantin Kudryashov + */ +final class CallResults implements Countable, IteratorAggregate +{ + /** + * @var CallResult[] + */ + private $results; + + /** + * Initializes call results collection. + * + * @param CallResult[] $results + */ + public function __construct(array $results = array()) + { + $this->results = $results; + } + + /** + * Merges results from provided collection into the current one. + * + * @param CallResults $first + * @param CallResults $second + * + * @return CallResults + */ + public static function merge(CallResults $first, CallResults $second) + { + return new static(array_merge($first->toArray(), $second->toArray())); + } + + /** + * Checks if any call in collection throws an exception. + * + * @return Boolean + */ + public function hasExceptions() + { + foreach ($this->results as $result) { + if ($result->hasException()) { + return true; + } + } + + return false; + } + + /** + * Checks if any call in collection produces an output. + * + * @return Boolean + */ + public function hasStdOuts() + { + foreach ($this->results as $result) { + if ($result->hasStdOut()) { + return true; + } + } + + return false; + } + + /** + * Returns amount of results. + * + * @return integer + */ + public function count() + { + return count($this->results); + } + + /** + * Returns collection iterator. + * + * @return Iterator + */ + public function getIterator() + { + return new ArrayIterator($this->results); + } + + /** + * Returns call results array. + * + * @return CallResult[] + */ + public function toArray() + { + return $this->results; + } +}