Passed
Push — master ( e9fa3d...22a26f )
by William
03:07
created

AlterStatementTest::testBuilderCompressed()   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
c 0
b 0
f 0
nc 1
nop 0
dl 0
loc 6
rs 10
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 AlterStatementTest extends TestCase
11
{
12
    public function testBuilder(): void
13
    {
14
        $query = 'ALTER TABLE `actor` ' .
15
            'ADD PRIMARY KEY (`actor_id`), ' .
16
            'ADD KEY `idx_actor_last_name` (`last_name`)';
17
18
        $parser = new Parser($query);
19
        $stmt = $parser->statements[0];
20
21
        $this->assertEquals($query, $stmt->build());
22
    }
23
24
    public function testBuilderCompressed(): void
25
    {
26
        $query = 'ALTER TABLE `user` CHANGE `message` `message` TEXT COMPRESSED';
27
        $parser = new Parser($query);
28
        $stmt = $parser->statements[0];
29
        $this->assertEquals($query, $stmt->build());
30
    }
31
32
    public function testBuilderPartitions(): void
33
    {
34
        $parser = new Parser('ALTER TABLE t1 PARTITION BY HASH(id) PARTITIONS 8');
35
        $stmt = $parser->statements[0];
36
37
        $this->assertEquals('ALTER TABLE t1 PARTITION BY  HASH(id) PARTITIONS 8 ', $stmt->build());
38
39
        $parser = new Parser('ALTER TABLE t1 ADD PARTITION (PARTITION p3 VALUES LESS THAN (2002))');
40
        $stmt = $parser->statements[0];
41
42
        $this->assertEquals(
43
            "ALTER TABLE t1 ADD PARTITION (\n" .
44
            "PARTITION p3 VALUES LESS THAN (2002)\n" .
45
            ')',
46
            $stmt->build()
47
        );
48
49
        $parser = new Parser('ALTER TABLE p PARTITION BY LINEAR KEY ALGORITHM=2 (id) PARTITIONS 32;');
50
        $stmt = $parser->statements[0];
51
52
        $this->assertEquals(
53
            'ALTER TABLE p PARTITION BY  LINEAR KEY ALGORITHM=2 (id) PARTITIONS 32 ',
54
            $stmt->build()
55
        );
56
57
        $parser = new Parser('ALTER TABLE t1 DROP PARTITION p0, p1;');
58
        $stmt = $parser->statements[0];
59
60
        $this->assertEquals(
61
            'ALTER TABLE t1 DROP PARTITION  p0, p1 ',
62
            $stmt->build()
63
        );
64
    }
65
}
66