Passed
Push — master ( a7a57c...9e99de )
by William
03:11 queued 12s
created

ExplainStatementTest   A

Complexity

Total Complexity 1

Size/Duplication

Total Lines 92
Duplicated Lines 0 %

Importance

Changes 1
Bugs 0 Features 0
Metric Value
eloc 61
dl 0
loc 92
rs 10
c 1
b 0
f 0
wmc 1

1 Method

Rating   Name   Duplication   Size   Complexity  
B testBuilder() 0 90 1
1
<?php
2
3
declare(strict_types=1);
4
5
namespace PhpMyAdmin\SqlParser\Tests\Builder;
6
7
use PhpMyAdmin\SqlParser\Parser;
8
use PhpMyAdmin\SqlParser\Tests\TestCase;
9
10
class ExplainStatementTest extends TestCase
11
{
12
    public function testBuilder(): void
13
    {
14
        /* Assertion 1 */
15
        $query = 'EXPLAIN SELECT * FROM test;';
16
        $parser = new Parser($query);
17
        $stmt = $parser->statements[0];
18
        $this->assertEquals(
19
            'EXPLAIN SELECT * FROM test',
20
            $stmt->build()
21
        );
22
23
        /* Assertion 2 */
24
        $query = 'EXPLAIN ANALYZE SELECT * FROM tablename;';
25
        $parser = new Parser($query);
26
        $stmt = $parser->statements[0];
27
        $this->assertEquals(
28
            'EXPLAIN ANALYZE SELECT * FROM tablename',
29
            $stmt->build()
30
        );
31
32
        /* Assertion 3 */
33
        $query = 'DESC ANALYZE SELECT * FROM tablename;';
34
        $parser = new Parser($query);
35
        $stmt = $parser->statements[0];
36
        $this->assertEquals(
37
            'DESC ANALYZE SELECT * FROM tablename',
38
            $stmt->build()
39
        );
40
41
        /* Assertion 4 */
42
        $query = 'ANALYZE SELECT * FROM tablename;';
43
        $parser = new Parser($query);
44
        $stmt = $parser->statements[0];
45
        $this->assertEquals(
46
            'ANALYZE SELECT * FROM tablename',
47
            $stmt->build()
48
        );
49
50
        /* Assertion 5 */
51
        $query = 'DESCRIBE tablename;';
52
        $parser = new Parser($query);
53
        $stmt = $parser->statements[0];
54
        $this->assertEquals(
55
            'DESCRIBE `tablename`',
56
            $stmt->build()
57
        );
58
59
        /* Assertion 6 */
60
        $query = 'DESC FOR CONNECTION 458';
61
        $parser = new Parser($query);
62
        $stmt = $parser->statements[0];
63
        $this->assertEquals(
64
            'DESC FOR CONNECTION 458',
65
            $stmt->build()
66
        );
67
68
        /* Assertion 7 */
69
        $query = 'EXPLAIN FORMAT=TREE SELECT * FROM db;';
70
        $parser = new Parser($query);
71
        $stmt = $parser->statements[0];
72
        $this->assertEquals(
73
            'EXPLAIN FORMAT=TREE SELECT * FROM db',
74
            $stmt->build()
75
        );
76
77
        /* Assertion 8 */
78
        $query = 'DESCRIBE tablename colname;';
79
        $parser = new Parser($query);
80
        $stmt = $parser->statements[0];
81
        $this->assertEquals(
82
            'DESCRIBE `tablename` `colname`',
83
            $stmt->build()
84
        );
85
86
        /* Assertion 9 */
87
        $query = 'DESCRIBE tablename \'col%me\';';
88
        $parser = new Parser($query);
89
        $stmt = $parser->statements[0];
90
        $this->assertEquals(
91
            'DESCRIBE `tablename` `col%me`',
92
            $stmt->build()
93
        );
94
95
        /* Assertion 9 */
96
        $query = 'DESCRIBE db.tablename \'col%me\';';
97
        $parser = new Parser($query);
98
        $stmt = $parser->statements[0];
99
        $this->assertEquals(
100
            'DESCRIBE `db`.`tablename` `col%me`',
101
            $stmt->build()
102
        );
103
    }
104
}
105