X-Git-Url: http://www.aleph1.co.uk/gitweb/?p=yaffs-website;a=blobdiff_plain;f=vendor%2Fbehat%2Fbehat%2Fsrc%2FBehat%2FTestwork%2FOrdering%2FOrderer%2FReverseOrderer.php;fp=vendor%2Fbehat%2Fbehat%2Fsrc%2FBehat%2FTestwork%2FOrdering%2FOrderer%2FReverseOrderer.php;h=9a23a4dc7abbaf4775e2e4343ffe6186e617af96;hp=0000000000000000000000000000000000000000;hb=1270d9129ce8f27c9b28b10518e32132c58e0aca;hpb=c27c0f0cdaa3f354b1fe54a56ae7e854be6e3f68 diff --git a/vendor/behat/behat/src/Behat/Testwork/Ordering/Orderer/ReverseOrderer.php b/vendor/behat/behat/src/Behat/Testwork/Ordering/Orderer/ReverseOrderer.php new file mode 100644 index 000000000..9a23a4dc7 --- /dev/null +++ b/vendor/behat/behat/src/Behat/Testwork/Ordering/Orderer/ReverseOrderer.php @@ -0,0 +1,70 @@ + + * + * For the full copyright and license information, please view the LICENSE + * file that was distributed with this source code. + */ + +namespace Behat\Testwork\Ordering\Orderer; + +use Behat\Testwork\Specification\SpecificationArrayIterator; +use Behat\Testwork\Specification\SpecificationIterator; + +/** + * Prioritises Suites and Features into reverse order + * + * @author Ciaran McNulty + */ +final class ReverseOrderer implements Orderer +{ + /** + * @param SpecificationIterator[] $scenarioIterators + * @return SpecificationIterator[] + */ + public function order(array $scenarioIterators) + { + $orderedFeatures = $this->orderFeatures($scenarioIterators); + $orderedSuites = $this->orderSuites($orderedFeatures); + + return $orderedSuites; + } + + /** + * @param array $scenarioIterators + * @return array + */ + private function orderFeatures(array $scenarioIterators) + { + $orderedSuites = array(); + + foreach ($scenarioIterators as $scenarioIterator) { + $orderedSpecifications = array_reverse(iterator_to_array($scenarioIterator)); + $orderedSuites[] = new SpecificationArrayIterator( + $scenarioIterator->getSuite(), + $orderedSpecifications + ); + } + + return $orderedSuites; + } + + /** + * @param $orderedSuites + * @return array + */ + private function orderSuites($orderedSuites) + { + return array_reverse($orderedSuites); + } + + /** + * @return string + */ + public function getName() + { + return 'reverse'; + } +}