|
4 | 4 |
|
5 | 5 | namespace PhpMyAdmin\SqlParser\Tests\Builder; |
6 | 6 |
|
| 7 | +use Generator; |
7 | 8 | use PhpMyAdmin\SqlParser\Parser; |
8 | 9 | use PhpMyAdmin\SqlParser\Tests\TestCase; |
9 | 10 |
|
@@ -114,18 +115,41 @@ public function testBuilderEventWithDefiner(): void |
114 | 115 | $this->assertEquals($query, $stmt->build()); |
115 | 116 | } |
116 | 117 |
|
117 | | - |
118 | | - public function testBuilderRenameColumn(): void |
| 118 | + /** |
| 119 | + * @return Generator<string, array{string}> |
| 120 | + */ |
| 121 | + public static function provideBuilderForRenameColumn(): Generator |
119 | 122 | { |
120 | | - $query = 'ALTER TABLE myTable RENAME COLUMN a TO b;'; |
121 | | - $parser = new Parser($query); |
122 | | - $stmt = $parser->statements[0]; |
123 | | - $this->assertEquals($query, $stmt->build()); |
| 123 | + $query = 'ALTER TABLE myTable RENAME COLUMN a TO b'; |
| 124 | + |
| 125 | + yield 'Single RENAME COLUMN' => [$query]; |
| 126 | + |
| 127 | + $query = 'ALTER TABLE myTable RENAME COLUMN a TO b, RENAME COLUMN b TO a'; |
| 128 | + |
| 129 | + yield 'Multiple RENAME COLUMN' => [$query]; |
| 130 | + |
| 131 | + $query = 'ALTER TABLE myTable ' . |
| 132 | + 'RENAME COLUMN a TO b, ' . |
| 133 | + 'RENAME COLUMN b TO a, ' . |
| 134 | + 'RENAME INDEX oldIndex TO newIndex, ' . |
| 135 | + 'RENAME TO newTable'; |
| 136 | + |
| 137 | + yield 'Mixed RENAME COLUMN + RENAME INDEX + RENAME table' => [$query]; |
| 138 | + |
| 139 | + $query = 'ALTER TABLE myTable ' . |
| 140 | + 'RENAME TO newTable, ' . |
| 141 | + 'RENAME INDEX oldIndex TO newIndex, ' . |
| 142 | + 'RENAME COLUMN b TO a, ' . |
| 143 | + 'RENAME COLUMN a TO b'; |
| 144 | + |
| 145 | + yield 'Mixed RENAME table + RENAME INDEX + RENAME COLUMNS' => [$query]; |
124 | 146 | } |
125 | 147 |
|
126 | | - public function testBuilderRenameColumns(): void |
| 148 | + /** |
| 149 | + * @dataProvider provideBuilderForRenameColumn |
| 150 | + */ |
| 151 | + public function testBuilderRenameColumn(string $query): void |
127 | 152 | { |
128 | | - $query = 'ALTER TABLE myTable RENAME COLUMN a TO b, RENAME COLUMN b TO a;'; |
129 | 153 | $parser = new Parser($query); |
130 | 154 | $stmt = $parser->statements[0]; |
131 | 155 | $this->assertEquals($query, $stmt->build()); |
|
0 commit comments