Passed
Pull Request — master (#7885)
by Šimon
05:58
created

GetIterableTester   A

Complexity

Total Complexity 3

Size/Duplication

Total Lines 23
Duplicated Lines 0 %

Importance

Changes 1
Bugs 0 Features 0
Metric Value
eloc 7
c 1
b 0
f 0
dl 0
loc 23
rs 10
wmc 3

2 Methods

Rating   Name   Duplication   Size   Complexity  
A assertResultsAreTheSame() 0 11 1
A iterableToArray() 0 3 2
1
<?php
2
3
declare(strict_types=1);
4
5
namespace Doctrine\Tests;
6
7
use Doctrine\ORM\AbstractQuery;
8
use Doctrine\ORM\Query;
9
use PHPUnit\Framework\Assert;
10
use function is_array;
11
use function iterator_to_array;
12
13
final class GetIterableTester
14
{
15
    public static function assertResultsAreTheSame(Query $query) : void
16
    {
17
        $result   = $query->getResult();
18
        $iterable = $query->getIterable();
19
20
        Assert::assertSame($result, self::iterableToArray($iterable));
21
22
        $result   = $query->getResult(AbstractQuery::HYDRATE_ARRAY);
23
        $iterable = $query->getIterable(null, AbstractQuery::HYDRATE_ARRAY);
24
25
        Assert::assertSame($result, self::iterableToArray($iterable));
26
    }
27
28
    /**
29
     * Copy the iterable into an array. If the iterable is already an array, return it.
30
     *
31
     * @return mixed[]
32
     */
33
    public static function iterableToArray(iterable $iterable) : array
34
    {
35
        return is_array($iterable) ? $iterable : iterator_to_array($iterable, true);
36
    }
37
}
38