Passed
Pull Request — master (#381)
by William
03:22
created

AlterStatementTest::testBuilder()   A

Complexity

Conditions 1
Paths 1

Size

Total Lines 10
Code Lines 6

Duplication

Lines 0
Ratio 0 %

Importance

Changes 0
Metric Value
cc 1
eloc 6
nc 1
nop 0
dl 0
loc 10
rs 10
c 0
b 0
f 0
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 testBuilderPartitions(): void
25
    {
26
        $parser = new Parser('ALTER TABLE t1 PARTITION BY HASH(id) PARTITIONS 8');
27
        $stmt = $parser->statements[0];
28
29
        $this->assertEquals('ALTER TABLE t1 PARTITION BY  HASH(id) PARTITIONS 8 ', $stmt->build());
30
31
        $parser = new Parser('ALTER TABLE t1 ADD PARTITION (PARTITION p3 VALUES LESS THAN (2002))');
32
        $stmt = $parser->statements[0];
33
34
        $this->assertEquals(
35
            "ALTER TABLE t1 ADD PARTITION (\n" .
36
            "PARTITION p3 VALUES LESS THAN (2002)\n" .
37
            ')',
38
            $stmt->build()
39
        );
40
41
        $parser = new Parser('ALTER TABLE p PARTITION BY LINEAR KEY ALGORITHM=2 (id) PARTITIONS 32;');
42
        $stmt = $parser->statements[0];
43
44
        $this->assertEquals(
45
            'ALTER TABLE p PARTITION BY  LINEAR KEY ALGORITHM=2 (id) PARTITIONS 32 ',
46
            $stmt->build()
47
        );
48
49
        $parser = new Parser('ALTER TABLE t1 DROP PARTITION p0, p1;');
50
        $stmt = $parser->statements[0];
51
52
        $this->assertEquals(
53
            'ALTER TABLE t1 DROP PARTITION  p0, p1 ',
54
            $stmt->build()
55
        );
56
    }
57
}
58