Passed
Pull Request — master (#483)
by
unknown
03:16
created

Array2dTest::testBuildAll()   A

Complexity

Conditions 1
Paths 1

Size

Total Lines 6
Code Lines 4

Duplication

Lines 0
Ratio 0 %

Importance

Changes 0
Metric Value
cc 1
eloc 4
nc 1
nop 0
dl 0
loc 6
rs 10
c 0
b 0
f 0
1
<?php
2
3
declare(strict_types=1);
4
5
namespace PhpMyAdmin\SqlParser\Tests\Components;
6
7
use PhpMyAdmin\SqlParser\Components\Array2d;
8
use PhpMyAdmin\SqlParser\Components\ArrayObj;
9
use PhpMyAdmin\SqlParser\Parser;
10
use PhpMyAdmin\SqlParser\Tests\TestCase;
11
12
class Array2dTest extends TestCase
13
{
14
    public function testParse(): void
15
    {
16
        $parser = new Parser();
17
        $arrays = Array2d::parse($parser, $this->getTokensList('(1, 2) +'));
18
        $this->assertEquals(
19
            [
20
                1,
21
                2,
22
            ],
23
            $arrays[0]->values
24
        );
25
    }
26
27
    public function testBuildAll(): void
28
    {
29
        $arrays = Array2d::parse(new Parser(), $this->getTokensList('(1, 2), (3, 4), (5, 6)'));
30
        $this->assertEquals(
31
            '(1, 2), (3, 4), (5, 6)',
32
            ArrayObj::buildAll($arrays)
33
        );
34
    }
35
36
    public function testParseErr1(): void
37
    {
38
        $parser = new Parser();
39
        Array2d::parse($parser, $this->getTokensList('(1, 2 +'));
40
41
        $this->markTestIncomplete('This test has not been implemented yet.');
42
    }
43
44
    public function testParseErr2(): void
45
    {
46
        $parser = new Parser();
47
        Array2d::parse($parser, $this->getTokensList('(1, 2 TABLE'));
48
49
        $this->markTestIncomplete('This test has not been implemented yet.');
50
    }
51
52
    public function testParseErr3(): void
53
    {
54
        $parser = new Parser();
55
        Array2d::parse($parser, $this->getTokensList(')'));
56
        $this->assertCount(1, $parser->errors);
57
        $this->assertEquals(
58
            'An opening bracket followed by a set of values was expected.',
59
            $parser->errors[0]->getMessage()
60
        );
61
    }
62
63
    public function testParseErr4(): void
64
    {
65
        $parser = new Parser();
66
        Array2d::parse($parser, $this->getTokensList('TABLE'));
67
        $this->assertCount(1, $parser->errors);
68
        $this->assertEquals(
69
            'An opening bracket followed by a set of values was expected.',
70
            $parser->errors[0]->getMessage()
71
        );
72
    }
73
74
    public function testParseErr5(): void
75
    {
76
        $parser = new Parser();
77
        Array2d::parse($parser, $this->getTokensList('(1, 2),'));
78
        $this->assertCount(1, $parser->errors);
79
        $this->assertEquals(
80
            'An opening bracket followed by a set of values was expected.',
81
            $parser->errors[0]->getMessage()
82
        );
83
    }
84
85
    public function testParseErr6(): void
86
    {
87
        $parser = new Parser();
88
        Array2d::parse($parser, $this->getTokensList('(1, 2),(3)'));
89
        $this->assertCount(1, $parser->errors);
90
        $this->assertEquals(
91
            '2 values were expected, but found 1.',
92
            $parser->errors[0]->getMessage()
93
        );
94
    }
95
}
96