Passed
Push — master ( 66c616...00643e )
by Eugene
03:07
created

SqlQueryResultTest::testGetFirst()   A

Complexity

Conditions 1
Paths 1

Size

Total Lines 5
Code Lines 2

Duplication

Lines 0
Ratio 0 %

Importance

Changes 1
Bugs 0 Features 0
Metric Value
cc 1
eloc 2
nc 1
nop 0
dl 0
loc 5
rs 10
c 1
b 0
f 0
1
<?php
2
3
/**
4
 * This file is part of the Tarantool Client package.
5
 *
6
 * (c) Eugene Leonovich <[email protected]>
7
 *
8
 * For the full copyright and license information, please view the LICENSE
9
 * file that was distributed with this source code.
10
 */
11
12
declare(strict_types=1);
13
14
namespace Tarantool\Client\Tests\Unit;
15
16
use PHPUnit\Framework\TestCase;
17
use Tarantool\Client\SqlQueryResult;
18
19
final class SqlQueryResultTest extends TestCase
20
{
21
    private const DATA = [
22
        [1, 'foo'],
23
        [2, 'bar'],
24
    ];
25
26
    private const METADATA = [
27
        ['column1', 'integer'],
28
        ['column2', 'string'],
29
    ];
30
31
    public function testGetData() : void
32
    {
33
        $result = new SqlQueryResult(self::DATA, self::METADATA);
34
35
        self::assertSame(self::DATA, $result->getData());
36
        self::assertSame(self::METADATA, $result->getMetadata());
37
    }
38
39
    public function testGetMetadata() : void
40
    {
41
        $result = new SqlQueryResult(self::DATA, self::METADATA);
42
43
        self::assertSame(self::METADATA, $result->getMetadata());
44
    }
45
46
    public function testIsEmptyReturnsTrue() : void
47
    {
48
        $result = new SqlQueryResult([], []);
49
50
        self::assertTrue($result->isEmpty());
51
    }
52
53
    public function testIsEmptyReturnsFalse() : void
54
    {
55
        $result = new SqlQueryResult(self::DATA, self::METADATA);
56
57
        self::assertFalse($result->isEmpty());
58
    }
59
60
    public function testGetFirst() : void
61
    {
62
        $result = new SqlQueryResult(self::DATA, self::METADATA);
63
64
        self::assertSame(['column1' => 1, 'column2' => 'foo'], $result->getFirst());
65
    }
66
67
    public function testGetFirstReturnsNull() : void
68
    {
69
        $result = new SqlQueryResult([], []);
70
71
        self::assertNull($result->getFirst());
72
    }
73
74
    public function testGetLast() : void
75
    {
76
        $result = new SqlQueryResult(self::DATA, self::METADATA);
77
78
        self::assertSame(['column1' => 2, 'column2' => 'bar'], $result->getLast());
79
    }
80
81
    public function testGetLastReturnsNull() : void
82
    {
83
        $result = new SqlQueryResult([], []);
84
85
        self::assertNull($result->getLast());
86
    }
87
88
    public function testIterable() : void
89
    {
90
        $result = new SqlQueryResult(self::DATA, self::METADATA);
91
92
        self::assertIsIterable($result);
93
94
        $count = 0;
95
        foreach ($result as $item) {
96
            self::assertSame([
97
                self::METADATA[0][0] => self::DATA[$count][0],
98
                self::METADATA[1][0] => self::DATA[$count][1],
99
            ], $item);
100
            ++$count;
101
        }
102
103
        self::assertSame(2, $count);
104
    }
105
106
    public function testCountable() : void
107
    {
108
        $result = new SqlQueryResult(self::DATA, self::METADATA);
109
110
        self::assertSame(2, count($result));
111
    }
112
}
113